From c99b31435fb7901e3d46c20ed9ace4934ece65e5 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Mon, 26 Jun 2023 16:47:42 +0000 Subject: [PATCH 01/65] TYCHON Inital Agent Upload --- packages/tychon/LICENSE.txt | 93 ++++++++++ packages/tychon/_dev/build/build.yml | 3 + packages/tychon/changelog.yml | 6 + .../tychon_cve/agent/stream/stream.yml.hbs | 22 +++ .../elasticsearch/ingest_pipeline/default.yml | 50 +++++ .../data_stream/tychon_cve/fields/agent.yml | 169 +++++++++++++++++ .../tychon_cve/fields/base-fields.yml | 18 ++ .../data_stream/tychon_cve/fields/ecs.yml | 58 ++++++ .../data_stream/tychon_cve/fields/fields.yml | 58 ++++++ .../data_stream/tychon_cve/manifest.yml | 42 +++++ .../data_stream/tychon_cve/sample_event.json | 8 + .../tychon_epp/agent/stream/stream.yml.hbs | 22 +++ .../elasticsearch/ingest_pipeline/default.yml | 35 ++++ .../data_stream/tychon_epp/fields/agent.yml | 169 +++++++++++++++++ .../tychon_epp/fields/base-fields.yml | 18 ++ .../data_stream/tychon_epp/fields/ecs.yml | 46 +++++ .../data_stream/tychon_epp/fields/fields.yml | 86 +++++++++ .../data_stream/tychon_epp/manifest.yml | 41 +++++ .../data_stream/tychon_epp/sample_event.json | 13 ++ .../tychon_stig/agent/stream/stream.yml.hbs | 22 +++ .../elasticsearch/ingest_pipeline/default.yml | 44 +++++ .../data_stream/tychon_stig/fields/agent.yml | 169 +++++++++++++++++ .../tychon_stig/fields/base-fields.yml | 18 ++ .../data_stream/tychon_stig/fields/ecs.yml | 48 +++++ .../data_stream/tychon_stig/fields/fields.yml | 96 ++++++++++ .../data_stream/tychon_stig/manifest.yml | 41 +++++ .../data_stream/tychon_stig/sample_event.json | 13 ++ packages/tychon/docs/README.md | 143 +++++++++++++++ packages/tychon/img/TychonLogo.svg | 59 ++++++ packages/tychon/img/TychonScreenshot.png | Bin 0 -> 337235 bytes packages/tychon/img/tychon-color.png | Bin 0 -> 8355 bytes ...db40-d137-11e9-a2af-693b633cf871-stig.json | 120 ++++++++++++ ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 114 ++++++++++++ ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 171 ++++++++++++++++++ ...bb1a0-112a-11ee-af86-538da1394f27-log.json | 85 +++++++++ .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 23 +++ .../78931842-dc88-45d7-a6ee-d79fb9f615bd.json | 23 +++ .../df491fbb-3f09-4ab0-995a-c2c549a9bc21.json | 23 +++ .../ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json | 23 +++ ...0359860-1139-11ee-af86-538da1394f27_1.json | 67 +++++++ ...e5a7e20-1137-11ee-af86-538da1394f27_1.json | 80 ++++++++ ...e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 67 +++++++ ...67e3450-1139-11ee-af86-538da1394f27_1.json | 64 +++++++ ...34a39a0-1138-11ee-af86-538da1394f27_1.json | 65 +++++++ packages/tychon/manifest.yml | 35 ++++ 45 files changed, 2570 insertions(+) create mode 100644 packages/tychon/LICENSE.txt create mode 100644 packages/tychon/_dev/build/build.yml create mode 100644 packages/tychon/changelog.yml create mode 100644 packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_cve/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_cve/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_cve/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_cve/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_cve/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_cve/sample_event.json create mode 100644 packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_epp/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_epp/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_epp/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_epp/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_epp/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_epp/sample_event.json create mode 100644 packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_stig/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_stig/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_stig/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_stig/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_stig/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_stig/sample_event.json create mode 100644 packages/tychon/docs/README.md create mode 100644 packages/tychon/img/TychonLogo.svg create mode 100644 packages/tychon/img/TychonScreenshot.png create mode 100644 packages/tychon/img/tychon-color.png create mode 100644 packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json create mode 100644 packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json create mode 100644 packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json create mode 100644 packages/tychon/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json create mode 100644 packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json create mode 100644 packages/tychon/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json create mode 100644 packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json create mode 100644 packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json create mode 100644 packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/manifest.yml diff --git a/packages/tychon/LICENSE.txt b/packages/tychon/LICENSE.txt new file mode 100644 index 00000000000..809108b857f --- /dev/null +++ b/packages/tychon/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. diff --git a/packages/tychon/_dev/build/build.yml b/packages/tychon/_dev/build/build.yml new file mode 100644 index 00000000000..08d85edcf9a --- /dev/null +++ b/packages/tychon/_dev/build/build.yml @@ -0,0 +1,3 @@ +dependencies: + ecs: + reference: git@1.12 diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml new file mode 100644 index 00000000000..65dcf422976 --- /dev/null +++ b/packages/tychon/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.0.10" + changes: + - description: Fixed incorrect types in field.yml and cleaned up formatting + type: enhancement + link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..10abd0996dd --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -0,0 +1,22 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +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}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..5185211cbc1 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,50 @@ +--- +description: Pipeline for parsing TYCHON Vulnerability Scan Results +processors: + - set: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'host.id' + value: '{{tychon.id}}' + - remove: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'tychon' + - set: + field: '_id' + value: '{{id}}' + - set: + field: '@timestamp' + value: '{{_ingest.timestamp}}' + - set: + field: ecs.version + value: '8.5.1' + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: vulnerability + - set: + field: vulnerability.scanner.vendor + value: tychon + - set: + field: vulnerability.category + value: oval + - set: + field: vulnerability.classification + value: cvss + - set: + field: vulnerability.enumeration + value: CVE + - set: + field: event.outcome + value: '{{vulnerability.result}}' + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' +on_failure: + - set: + field: error.message + value: '{{ _ingest.on_failure_message }}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml new file mode 100644 index 00000000000..b016157d3d2 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -0,0 +1,169 @@ +- 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: 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: id + type: keyword + - name: biossn + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + type: keyword + - name: ipv6 + type: keyword + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + type: keyword + - name: uptime + type: long + - name: workgroup + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + type: keyword + - name: model + type: keyword + - name: os + type: group + fields: + - name: build + type: keyword + - name: description + type: keyword + - name: family + type: keyword + - name: name + type: keyword + - name: organization + type: keyword + - name: version + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + type: keyword + - name: version + type: keyword + - name: cpu + type: group + fields: + - name: caption + type: keyword + - name: manufacturer + type: keyword + - name: owner + type: keyword + - name: serial_number + type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml new file mode 100644 index 00000000000..12f19913146 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml @@ -0,0 +1,18 @@ +- name: input.type + type: keyword +- name: log.offset + type: long +- 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: keyword + description: Event module +- name: '@timestamp' + type: date diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml new file mode 100644 index 00000000000..414a6a25272 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -0,0 +1,58 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml new file mode 100644 index 00000000000..6ffcf805e90 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -0,0 +1,58 @@ +- name: script + type: group + fields: + - name: current_duration + type: long + - name: current_time + type: date + - name: name + type: keyword + - name: start + type: date + - name: type + type: keyword + - name: version + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + type: keyword + - name: snapshot + type: boolean + - name: version + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + type: keyword + - name: iava + type: keyword + - name: iava_severity + type: keyword + - name: result + type: keyword + - name: score.base + type: float + - name: title + type: keyword + - name: version + type: keyword + - name: year + type: long +- name: event + type: group + fields: + - name: created + type: date + - name: ingested + type: date +- name: host.containerized + type: boolean +- name: host.os.codename + type: keyword +- name: id + type: keyword +- name: message + type: match_only_text diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml new file mode 100644 index 00000000000..a9d9750abec --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -0,0 +1,42 @@ +title: Vulnerabilites +type: logs +streams: + - input: logfile + title: Vulnerabilites + description: Vulnerabilites + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Vulnerability Results + multi: true + required: true + show_user: true + default: + - /root/systemInfo/data/tychon_cve_info.json + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cve_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-cve + - 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/tychon/data_stream/tychon_cve/sample_event.json b/packages/tychon/data_stream/tychon_cve/sample_event.json new file mode 100644 index 00000000000..cd07585f2b8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/sample_event.json @@ -0,0 +1,8 @@ +{ + "tychon.id": "564D3240-42F3-6AE9-5634-12D3BB4842E5", + "tychon.campaign": "bd31e9ba-1756-4fd5-b463-ec712ce4dd8e", + "tychon.realm": "TYC742586751BDC4383A8388F974883333E", + "vulnerability.id": "CVE-2022-25315", + "event.outcome": "fail", + "event.created": "2023-02-07 16:28:07" +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..10abd0996dd --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs @@ -0,0 +1,22 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +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}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..e373c16af3c --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,35 @@ +--- +description: Pipeline for EPP +processors: + - set: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'host.id' + value: '{{tychon.id}}' + - remove: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'tychon' + - set: + field: '_id' + value: '{{id}}' + - set: + field: '@timestamp' + value: '{{_ingest.timestamp}}' + - set: + field: ecs.version + value: '8.5.1' + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' +on_failure: + - set: + field: error.message + value: '{{ _ingest.on_failure_message }}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml new file mode 100644 index 00000000000..b016157d3d2 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -0,0 +1,169 @@ +- 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: 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: id + type: keyword + - name: biossn + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + type: keyword + - name: ipv6 + type: keyword + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + type: keyword + - name: uptime + type: long + - name: workgroup + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + type: keyword + - name: model + type: keyword + - name: os + type: group + fields: + - name: build + type: keyword + - name: description + type: keyword + - name: family + type: keyword + - name: name + type: keyword + - name: organization + type: keyword + - name: version + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + type: keyword + - name: version + type: keyword + - name: cpu + type: group + fields: + - name: caption + type: keyword + - name: manufacturer + type: keyword + - name: owner + type: keyword + - name: serial_number + type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml new file mode 100644 index 00000000000..12f19913146 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml @@ -0,0 +1,18 @@ +- name: input.type + type: keyword +- name: log.offset + type: long +- 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: keyword + description: Event module +- name: '@timestamp' + type: date diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml new file mode 100644 index 00000000000..6973ee9ac08 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -0,0 +1,46 @@ +- external: ecs + name: package.description +- external: ecs + name: package.name +- external: ecs + name: package.reference +- external: ecs + name: package.type +- external: ecs + name: package.build_version +- external: ecs + name: event.kind +- external: ecs + name: ecs.version +- external: ecs + name: event.category +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.dataset +- external: ecs + name: event.timezone +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml new file mode 100644 index 00000000000..3433a1eee83 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -0,0 +1,86 @@ +- name: id + type: keyword +- name: script + type: group + fields: + - name: current_duration + type: long + - name: current_time + type: date + - name: name + type: keyword + - name: start + type: date + - name: type + type: keyword + - name: version + type: keyword +- name: windows_defender + group: 2 + type: group + fields: + - name: service + type: group + fields: + - name: behavior_monitor.status + type: keyword + - name: ioav_protection.status + type: keyword + - name: on_access_protection.status + type: keyword + - name: real_time_protection.status + type: keyword + - name: antimalware + type: group + fields: + - name: engine_version + type: keyword + - name: product_version + type: keyword + - name: signature_version + type: keyword + - name: status + type: keyword + - name: antispyware + type: group + fields: + - name: signature_version + type: keyword + - name: status + type: keyword + - name: antivirus + type: group + fields: + - name: full_scan.signature_version + type: keyword + - name: quick_scan.signature_version + type: keyword + - name: status + type: keyword + - name: nis + type: group + fields: + - name: engine_version + type: keyword + - name: signature_version + type: keyword + - name: status + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + type: keyword + - name: snapshot + type: boolean + - name: version + type: keyword +- name: event + type: group + fields: + - name: created + type: date + - name: ingested + type: date +- name: message + type: match_only_text diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml new file mode 100644 index 00000000000..d995ce56e22 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -0,0 +1,41 @@ +title: Windows EPP Info +type: logs +streams: + - input: logfile + title: Windows EPP Info + description: Windows EPP Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows EPP Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_epp_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-epp-info + - 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/tychon/data_stream/tychon_epp/sample_event.json b/packages/tychon/data_stream/tychon_epp/sample_event.json new file mode 100644 index 00000000000..4b3beb399a0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/sample_event.json @@ -0,0 +1,13 @@ +{ + "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", + "package.product": "MicrosoftDefenderAntivirus", + "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", + "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", + "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", + "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", + "package.revision": 200, + "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", + "": "Succeeded", + "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", + "package.installed": "2023-01-3009:21:18" +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..7b2e95976fa --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs @@ -0,0 +1,22 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +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}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..0ef19f821c9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,44 @@ +--- +description: Pipeline for parsing TYCHON Windows Patches +processors: + - set: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'host.id' + value: '{{tychon.id}}' + - remove: + if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + field: 'tychon' + - set: + if: "!(ctx.containsKey('id'))" + field: 'id' + value: '{{host.id}}' + - set: + field: '_id' + value: '{{id}}' + - set: + field: '@timestamp' + value: '{{_ingest.timestamp}}' + - set: + field: 'rule.result' + value: '{{rule.test_result}}' + - remove: + field: 'rule.test_result' + - set: + field: ecs.version + value: '8.5.1' + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' +on_failure: + - set: + field: error.message + value: '{{ _ingest.on_failure_message }}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml new file mode 100644 index 00000000000..b016157d3d2 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -0,0 +1,169 @@ +- 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: 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: id + type: keyword + - name: biossn + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + type: keyword + - name: ipv6 + type: keyword + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + type: keyword + - name: uptime + type: long + - name: workgroup + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + type: keyword + - name: model + type: keyword + - name: os + type: group + fields: + - name: build + type: keyword + - name: description + type: keyword + - name: family + type: keyword + - name: name + type: keyword + - name: organization + type: keyword + - name: version + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + type: keyword + - name: version + type: keyword + - name: cpu + type: group + fields: + - name: caption + type: keyword + - name: manufacturer + type: keyword + - name: owner + type: keyword + - name: serial_number + type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml new file mode 100644 index 00000000000..12f19913146 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml @@ -0,0 +1,18 @@ +- name: input.type + type: keyword +- name: log.offset + type: long +- 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: keyword + description: Event module +- name: '@timestamp' + type: date diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml new file mode 100644 index 00000000000..ee9115003a9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -0,0 +1,48 @@ +- external: ecs + name: package.description +- external: ecs + name: package.name +- external: ecs + name: package.reference +- external: ecs + name: package.type +- external: ecs + name: package.build_version +- external: ecs + name: rule.name +- external: ecs + name: event.kind +- external: ecs + name: ecs.version +- external: ecs + name: event.category +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.dataset +- external: ecs + name: event.timezone +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml new file mode 100644 index 00000000000..8b93caa8af6 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -0,0 +1,96 @@ +- name: id + type: keyword +- name: benchmark + type: group + fields: + - name: guid + type: keyword + - name: generated_utc + type: keyword + - name: hash + type: keyword + - name: name + type: keyword + - name: title + type: keyword + - name: version + type: keyword + - name: list + type: keyword + - name: count + type: long +- name: oval + type: group + fields: + - name: id + type: keyword + - name: class + type: keyword + - name: refid + type: keyword +- name: rule + type: group + fields: + - name: id + type: keyword + - name: finding_id + type: keyword + - name: severity + type: keyword + - name: result + type: keyword + - name: title + type: keyword + - name: weight + type: float + - name: benchmark + type: group + fields: + - name: guid + type: keyword + - name: profile.id + type: keyword + - name: title + type: keyword + - name: oval + type: group + fields: + - name: id + type: keyword + - name: class + type: keyword + - name: refid + type: keyword +- name: script + type: group + fields: + - name: current_time + type: date + - name: current_duration + type: long + - name: name + type: keyword + - name: start + type: date + - name: type + type: keyword + - name: version + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + type: keyword + - name: snapshot + type: boolean + - name: version + type: keyword +- name: event + type: group + fields: + - name: created + type: date + - name: ingested + type: date +- name: error.message + type: match_only_text diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml new file mode 100644 index 00000000000..03e33073008 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -0,0 +1,41 @@ +title: Windows STIG Info +type: logs +streams: + - input: logfile + title: Windows STIG Info + description: Windows STIG Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows Patches Results + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_stig_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-stig-info + - 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/tychon/data_stream/tychon_stig/sample_event.json b/packages/tychon/data_stream/tychon_stig/sample_event.json new file mode 100644 index 00000000000..4b3beb399a0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/sample_event.json @@ -0,0 +1,13 @@ +{ + "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", + "package.product": "MicrosoftDefenderAntivirus", + "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", + "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", + "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", + "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", + "package.revision": 200, + "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", + "": "Succeeded", + "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", + "package.installed": "2023-01-3009:21:18" +} \ No newline at end of file diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md new file mode 100644 index 00000000000..081e0decad3 --- /dev/null +++ b/packages/tychon/docs/README.md @@ -0,0 +1,143 @@ +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. + + +## Returned Data Fields +### Asset Identification + +TYCHON identifies an endpoint's operating system and returns the system details. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +|host.biossn | TYCHON Endpoint Identifer. | keyword | +|host.domain | Endpoint Domain. | ecs | +|host.hardware.bios.name | Basic Input/Output System Name. | keyword | +|host.hardware.bios.version | Basic Input/Output System Version. | keyword | +|host.hardware.cpu.caption | Central Processing Unit Caption. | keyword | +|host.hardware.manufacturer | Hardware Manufacturer. | keyword | +|host.hardware.owner | Hardware Owner. | keyword | +|host.hardware.serial_number | Hardware Serial Number. | keyword | +|host.hostname | Host Name. | ecs | +|host.id | Host Identifier. | ecs | +|host.ip | Host IP Address. | ecs | +|host.ipv4 | Host IPV4 Address. | keyword | +|host.ipv6 | Host IPV6 Address. | keyword | +|host.mac | Host MAC Address. | ecs | +|host.oem.manufacturer | Original Equipment Manufacturer Name. | keyword | +|host.oem.model | Original Equipment Manufacturer Model. | keyword | +|host.os.build | Operating System Build. | keyword | +|host.os.description | Operating System Description. | keyword | +|host.os.family | Operating System Family. | ecs | +|host.os.name | Operating System Name. | ecs | +|host.os.organization | Operating System Organization. | keyword | +|host.os.version | Operating System Version. | ecs | +|host.type | Host Type. | ecs | +|host.uptime | Host Uptime. | ecs | +|host.workgroup | Host Workgroup Name. | keyword | + +### Vulnerablities + +TYCHON scans for endpoint vulenrabilites and returns the results. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| tychon.realm | TYCHON Customer Identifer. | keyword | +| tychon.id | TYCHON Endpoint Identifier. | keyword | +| tychon.campaign | TYCHON Campaign Identifer. | keyword | +| vulnerability.id | Common Vulnerabilities and Exposures Identifier of the Vulnerabliity Tested. | ecs | +| event.id | TYCHON Unique Identifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | ecs | +| vulnerability.result | Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. | keyword | +| vulnerability.reference | Reference Details of the Vulnerablity. | ecs | +| vulnerability.score.base | National Vulnerability Database Score of the Vulnerabilty. | ecs | +| vulnerability.score.version | National Vulnerability Database Score Version. | ecs | +| vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | +| vulnerability.severity | National Vulnerability Database Vulnerability Severity. | ecs | +| vulnerability.iava | Information Assurance Vulneraiblity Alert Identifier. | keyword | +| vulnerability.iava_severity | Information Assurance Vulnerability Alert Severity. | keyword | +| vulnerability.year | Common Vulnerabilities and Exposures Year. | long | +| vulnerability.version | Version Number of the Scan. | keyword | +| vulnerability.scanner.vendor | Open Vulnerabilities and Assessment Language Scanner Vendor. | ecs | +| vulnerability.classification | Common Vulnerabilities and Exposures Scoring. | ecs | +| script.name | Scanner Script Name. | keyword | +| script.version | Scanner Script Version. | keyword | +| script.current_duration | Scanner Script Duration. | long | +| script.type | Scanner Script Type. | keyword | + + +### Endpoint Protection Platform + +TYCHON scans the endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| tychon.realm | The TYCHON Customer Identifer. | keyword | +| tychon.id | TYCHON Endpoint Identifier. | keyword | +| tychon.campaign | TYCHON Campaign Identifer. | keyword | +| windows_defender.service.antimalware.status | Windows Defender Antimailware Status. | keyword | +| windows_defender.service.antimalware.signature_version | Windows Defender Antimailware Signature Version. | keyword | +| windows_defender.service.antimalware.engine_version | Windows Defender Antimailware Engine Version. | keyword | +| windows_defender.service.antispyware.status | Windows Defender Antispyware Status. | keyword | +| windows_defender.service.antispyware.signature_version | Windows Defender Antispyware Signature Version. | keyword | +| windows_defender.service.antivirus.status | Windows Defender Antivirus Status. | keyword | +| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Antivirus Signature Status. | keyword | +| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Antivirus Signature Version. | keyword | +| windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | +| windows_defender.service.nis.signature_version | Windows Defender Network Inspection System Signature Version. | keyword | +| windows_defender.service.nis.engine_version | Windows Defender Network Inspection System Version. | keyword | +| windows_defender.service.behavior_monitor.status | Windows Defender Behavior Monitor Status. | keyword | +| windows_defender.service.ioav_protection.status | Windows Defender iOffice Antivirus Protection Status. | keyword | +| windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | +| script.name | Scanner Script Name. | keyword | +| script.version | Scanner Script Version. | keyword | +| script.current_duration | Scanner Script Duration. | long | +| script.type | Scanner Script Type. | keyword | + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| tychon.realm | The TYCHON Customer Identifer. | keyword | +| tychon.id | TYCHON Endpoint Identifier | keyword | +| tychon.campaign | TYCHON Campaign Identifer. | keyword | +| id | TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | keyword | +| rule.oval.id | Open Vulnerabilities and Assessment Language Rule Identifier. | keyword | +| rule.finding_id | Open Vulnerabilities and Assessment Language Rule Finding Identifier. | keyword | +| rule.id | Benchmark Rule Identifier. | ecs | +| rule.result | Benchmark Test Results. | keyword | +| rule.severity | Benchmark Severity Status. | keyword | +| rule.weight | Benchmark Rule Weight. | keyword | +| benchmark.name | Benchmark Name. | keyword | +| benchmark.version | Benchmark Version. | keyword | +| benchmark.generated_utc | Benchmark UTC. | date | +| benchmark.hash | Benchmark SHA256 Hash | SHA256 | +| rule.benchmark.guid | Benchmark Rule GUID. | keyword | +| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | +| benchmark.title | Benchmark Title. | keyword | +| rule.benchmark.title | Benchmark Rule Title. | keyword | +| rule.oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | +| rule.oval.class | Open Vulnerabilities and Assessment Language Rule Class. | keyword | +| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | +| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | +| oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | +| script.name | Scanner Script Name. | keyword | +| script.version | Scanner Script Version. | keyword | +| script.current_duration | Scanner Script Duration. | long | +| script.type | Scanner Script Type. | keyword | diff --git a/packages/tychon/img/TychonLogo.svg b/packages/tychon/img/TychonLogo.svg new file mode 100644 index 00000000000..47b482d3444 --- /dev/null +++ b/packages/tychon/img/TychonLogo.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/tychon/img/TychonScreenshot.png b/packages/tychon/img/TychonScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9207bbeac5834424fca597f59310f490b6c33deb GIT binary patch literal 337235 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

qS=DWB5*0!vNBQLx&0pnkm^)J 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
Bbtzmy!bOu@nqo>O7W{f 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 A4FCWD literal 0 HcmV?d00001 diff --git a/packages/tychon/img/tychon-color.png b/packages/tychon/img/tychon-color.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2c6d9f1d5022d1a93366f1cad641740a2ff0bc GIT binary patch literal 8355 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 Date: Wed, 28 Jun 2023 07:19:40 -0400 Subject: [PATCH 02/65] Update packages/tychon/changelog.yml Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com> --- packages/tychon/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 65dcf422976..511662349ab 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,5 +1,5 @@ # newer versions go on top -- version: "0.0.10" +- version: "0.0.1" changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement From 9bc9902e9f22d4e333bbe48269791deaaf177c64 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 07:19:48 -0400 Subject: [PATCH 03/65] Update packages/tychon/_dev/build/build.yml Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com> --- packages/tychon/_dev/build/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tychon/_dev/build/build.yml b/packages/tychon/_dev/build/build.yml index 08d85edcf9a..875463aaf47 100644 --- a/packages/tychon/_dev/build/build.yml +++ b/packages/tychon/_dev/build/build.yml @@ -1,3 +1,3 @@ dependencies: ecs: - reference: git@1.12 + reference: git@8.8 From ed2c9c19ad31d25452ff7634b3acc9988b6404da Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 07:19:57 -0400 Subject: [PATCH 04/65] Update packages/tychon/changelog.yml Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com> --- packages/tychon/changelog.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 511662349ab..e9ee6438459 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -3,4 +3,4 @@ changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement - link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link + link: https://github.com/elastic/integrations/pull/6701 From 4a0fa02cf887f9b362175e7eb6c305946055fa63 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 07:24:24 -0400 Subject: [PATCH 05/65] Update packages/tychon/manifest.yml Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com> --- packages/tychon/manifest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 36bfcaf60e4..d2455eea0ce 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -32,4 +32,4 @@ policy_templates: title: Tychon description: Tychon owner: - github: elastic/integrations + github: elastic/security-external-integrations From bb3ea075bde8bb6728530a57940212cb83395594 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:19:05 +0000 Subject: [PATCH 06/65] Please delete this file. It is not needed since the file in the root of the repo cover the code here --- packages/tychon/LICENSE.txt | 93 ------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 packages/tychon/LICENSE.txt diff --git a/packages/tychon/LICENSE.txt b/packages/tychon/LICENSE.txt deleted file mode 100644 index 809108b857f..00000000000 --- a/packages/tychon/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Elastic License 2.0 - -URL: https://www.elastic.co/licensing/elastic-license - -## Acceptance - -By using the software, you agree to all of the terms and conditions below. - -## Copyright License - -The licensor grants you a non-exclusive, royalty-free, worldwide, -non-sublicensable, non-transferable license to use, copy, distribute, make -available, and prepare derivative works of the software, in each case subject to -the limitations and conditions below. - -## Limitations - -You may not provide the software to third parties as a hosted or managed -service, where the service provides users with access to any substantial set of -the features or functionality of the software. - -You may not move, change, disable, or circumvent the license key functionality -in the software, and you may not remove or obscure any functionality in the -software that is protected by the license key. - -You may not alter, remove, or obscure any licensing, copyright, or other notices -of the licensor in the software. Any use of the licensor’s trademarks is subject -to applicable law. - -## Patents - -The licensor grants you a license, under any patent claims the licensor can -license, or becomes able to license, to make, have made, use, sell, offer for -sale, import and have imported the software, in each case subject to the -limitations and conditions in this license. This license does not cover any -patent claims that you cause to be infringed by modifications or additions to -the software. If you or your company make any written claim that the software -infringes or contributes to infringement of any patent, your patent license for -the software granted under these terms ends immediately. If your company makes -such a claim, your patent license ends immediately for work on behalf of your -company. - -## Notices - -You must ensure that anyone who gets a copy of any part of the software from you -also gets a copy of these terms. - -If you modify the software, you must include in any modified copies of the -software prominent notices stating that you have modified the software. - -## No Other Rights - -These terms do not imply any licenses other than those expressly granted in -these terms. - -## Termination - -If you use the software in violation of these terms, such use is not licensed, -and your licenses will automatically terminate. If the licensor provides you -with a notice of your violation, and you cease all violation of this license no -later than 30 days after you receive that notice, your licenses will be -reinstated retroactively. However, if you violate these terms after such -reinstatement, any additional violation of these terms will cause your licenses -to terminate automatically and permanently. - -## No Liability - -*As far as the law allows, the software comes as is, without any warranty or -condition, and the licensor will not be liable to you for any damages arising -out of these terms or the use or nature of the software, under any kind of -legal claim.* - -## Definitions - -The **licensor** is the entity offering these terms, and the **software** is the -software the licensor makes available under these terms, including any portion -of it. - -**you** refers to the individual or entity agreeing to these terms. - -**your company** is any legal entity, sole proprietorship, or other kind of -organization that you work for, plus all organizations that have control over, -are under the control of, or are under common control with that -organization. **control** means ownership of substantially all the assets of an -entity, or the power to direct its management and policies by vote, contract, or -otherwise. Control can be direct or indirect. - -**your licenses** are all the licenses granted to you for the software under -these terms. - -**use** means anything you do with the software requiring one of your licenses. - -**trademark** means trademarks, service marks, and similar rights. From 4e3ff95c99ee9755c9286b1fc292eaaa6c15e092 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:27:52 +0000 Subject: [PATCH 07/65] Removed file based on PR Request --- LICENSE.txt | 93 ----------------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 809108b857f..00000000000 --- a/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Elastic License 2.0 - -URL: https://www.elastic.co/licensing/elastic-license - -## Acceptance - -By using the software, you agree to all of the terms and conditions below. - -## Copyright License - -The licensor grants you a non-exclusive, royalty-free, worldwide, -non-sublicensable, non-transferable license to use, copy, distribute, make -available, and prepare derivative works of the software, in each case subject to -the limitations and conditions below. - -## Limitations - -You may not provide the software to third parties as a hosted or managed -service, where the service provides users with access to any substantial set of -the features or functionality of the software. - -You may not move, change, disable, or circumvent the license key functionality -in the software, and you may not remove or obscure any functionality in the -software that is protected by the license key. - -You may not alter, remove, or obscure any licensing, copyright, or other notices -of the licensor in the software. Any use of the licensor’s trademarks is subject -to applicable law. - -## Patents - -The licensor grants you a license, under any patent claims the licensor can -license, or becomes able to license, to make, have made, use, sell, offer for -sale, import and have imported the software, in each case subject to the -limitations and conditions in this license. This license does not cover any -patent claims that you cause to be infringed by modifications or additions to -the software. If you or your company make any written claim that the software -infringes or contributes to infringement of any patent, your patent license for -the software granted under these terms ends immediately. If your company makes -such a claim, your patent license ends immediately for work on behalf of your -company. - -## Notices - -You must ensure that anyone who gets a copy of any part of the software from you -also gets a copy of these terms. - -If you modify the software, you must include in any modified copies of the -software prominent notices stating that you have modified the software. - -## No Other Rights - -These terms do not imply any licenses other than those expressly granted in -these terms. - -## Termination - -If you use the software in violation of these terms, such use is not licensed, -and your licenses will automatically terminate. If the licensor provides you -with a notice of your violation, and you cease all violation of this license no -later than 30 days after you receive that notice, your licenses will be -reinstated retroactively. However, if you violate these terms after such -reinstatement, any additional violation of these terms will cause your licenses -to terminate automatically and permanently. - -## No Liability - -*As far as the law allows, the software comes as is, without any warranty or -condition, and the licensor will not be liable to you for any damages arising -out of these terms or the use or nature of the software, under any kind of -legal claim.* - -## Definitions - -The **licensor** is the entity offering these terms, and the **software** is the -software the licensor makes available under these terms, including any portion -of it. - -**you** refers to the individual or entity agreeing to these terms. - -**your company** is any legal entity, sole proprietorship, or other kind of -organization that you work for, plus all organizations that have control over, -are under the control of, or are under common control with that -organization. **control** means ownership of substantially all the assets of an -entity, or the power to direct its management and policies by vote, contract, or -otherwise. Control can be direct or indirect. - -**your licenses** are all the licenses granted to you for the software under -these terms. - -**use** means anything you do with the software requiring one of your licenses. - -**trademark** means trademarks, service marks, and similar rights. From 933b66b055f8663edf54f188d89bffbaa99a4982 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 07:29:06 -0400 Subject: [PATCH 08/65] Update packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs Co-authored-by: Dan Kortschak <90160302+efd6@users.noreply.github.com> --- .../tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index 10abd0996dd..f08cd0ef71d 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -6,7 +6,8 @@ tags: {{#if preserve_original_event}} - preserve_original_event {{/if}} -{{#each tags as |tag i|}} +{{#each tags as |tag|}} + - {{tag}} {{/each}} {{#contains "forwarded" tags}} From 3f2a74272d9e187c207348e5a0221765308c5648 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:34:26 +0000 Subject: [PATCH 09/65] adding TYCHON package to codeowners file --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d68b9c78c9b..484a0a43f36 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -215,6 +215,7 @@ /packages/trellix_epo_cloud @elastic/security-external-integrations /packages/trendmicro @elastic/security-external-integrations /packages/trend_micro_vision_one @elastic/security-external-integrations +/packages/tychon @elastic/security-external-integrations /packages/udp @elastic/security-external-integrations /packages/universal_profiling_agent @elastic/profiling /packages/universal_profiling_collector @elastic/profiling From be4c1001ca50bee0c94f701de9339a0e915ddff7 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:31:04 -0400 Subject: [PATCH 10/65] Update stream.yml.hbs Changed {{#each paths as |path i|}} to {{#each paths as |path|}} per efd6 request --- .../data_stream/tychon_cve/agent/stream/stream.yml.hbs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index f08cd0ef71d..5f9476deba2 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -1,5 +1,5 @@ paths: -{{#each paths as |path i|}} +{{#each paths as |path|}} - {{path}} {{/each}} tags: @@ -7,7 +7,6 @@ tags: - preserve_original_event {{/if}} {{#each tags as |tag|}} - - {{tag}} {{/each}} {{#contains "forwarded" tags}} @@ -20,4 +19,4 @@ processors: {{/if}} json: keys_under_root: true - expand_keys: true \ No newline at end of file + expand_keys: true From 8c23a3bb7bfc95ec342768e9e9828b3a7eb2a43d Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:35:09 -0400 Subject: [PATCH 11/65] Update stream.yml.hbs Added new line to end per efd6 request. From f109f9388351992752e1b70cabc47e23f773e441 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:38:24 -0400 Subject: [PATCH 12/65] Update default.yml Updated ecs.version per efd6 request --- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 5185211cbc1..61361230822 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -16,7 +16,7 @@ processors: value: '{{_ingest.timestamp}}' - set: field: ecs.version - value: '8.5.1' + value: '8.8.0' - set: field: event.kind value: state @@ -47,4 +47,4 @@ processors: on_failure: - set: field: error.message - value: '{{ _ingest.on_failure_message }}' \ No newline at end of file + value: '{{ _ingest.on_failure_message }}' From 1ec186511801f79ec1d5f5b1d3a3f1edb04a2002 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:39:37 -0400 Subject: [PATCH 13/65] Update default.yml Added new line to end per efd6 request --- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 61361230822..afb6c8cfb43 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -48,3 +48,4 @@ on_failure: - set: field: error.message value: '{{ _ingest.on_failure_message }}' + From 32d77c6d9ee10779843605f7b9ea9ced323d5eb7 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 08:40:17 -0400 Subject: [PATCH 14/65] Update stream.yml.hbs --- .../tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index 5f9476deba2..4ffa1421cc1 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -20,3 +20,4 @@ processors: json: keys_under_root: true expand_keys: true + From e0bad7ad3f0daa47b7435740ff975a0799a22197 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 10:47:55 -0400 Subject: [PATCH 15/65] Update fields.yml Added descriptions to names. --- .../data_stream/tychon_cve/fields/fields.yml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 6ffcf805e90..3b2dfaaeff5 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -2,57 +2,80 @@ type: group fields: - name: current_duration + description: Scanner Script Duration. type: long - name: current_time + description: Current datetime. type: date - name: name + description: Scanner Script Name. type: keyword - name: start + description: Scanner Start datetime. type: date - name: type + description: Scanner Script Type. type: keyword - name: version + description: Scanner Script Version. type: keyword - name: elastic_agent type: group fields: - name: id + description: Elastic Agent Id. type: keyword - name: snapshot + description: Elastic Agent snapshot. type: boolean - name: version + description: Elastic Agent Version. type: keyword - name: vulnerability type: group fields: - name: definition + description: National Vulnerability Database Vulnerability Definition. type: keyword - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. type: keyword - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. type: keyword - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. type: keyword - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. type: float - name: title + description: Common Vulnerabilities and Exposures Description and Title. type: keyword - name: version + description: Version Number of the Scan. type: keyword - name: year + description: Common Vulnerabilities and Exposures Year. type: long - name: event type: group fields: - name: created + description: Event creation datetime. type: date - name: ingested + description: Event ingestion datetime. type: date - name: host.containerized + description: Is Host Containerized. type: boolean - name: host.os.codename + description: Host OS codename. type: keyword - name: id + description: Vulnerability Id. type: keyword - name: message + description: Message content. type: match_only_text From 6035366cb917388ba0aca5db6f3a5392851507de Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 10:59:41 -0400 Subject: [PATCH 16/65] Update README.md Removed Asset Identification and updated exported field for tychon_cve --- packages/tychon/docs/README.md | 60 +--------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 081e0decad3..76a9de2c733 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -10,70 +10,12 @@ ## Returned Data Fields -### Asset Identification - -TYCHON identifies an endpoint's operating system and returns the system details. - -**Exported fields** - -| Field | Description | Type | -|---|---|---| -|host.biossn | TYCHON Endpoint Identifer. | keyword | -|host.domain | Endpoint Domain. | ecs | -|host.hardware.bios.name | Basic Input/Output System Name. | keyword | -|host.hardware.bios.version | Basic Input/Output System Version. | keyword | -|host.hardware.cpu.caption | Central Processing Unit Caption. | keyword | -|host.hardware.manufacturer | Hardware Manufacturer. | keyword | -|host.hardware.owner | Hardware Owner. | keyword | -|host.hardware.serial_number | Hardware Serial Number. | keyword | -|host.hostname | Host Name. | ecs | -|host.id | Host Identifier. | ecs | -|host.ip | Host IP Address. | ecs | -|host.ipv4 | Host IPV4 Address. | keyword | -|host.ipv6 | Host IPV6 Address. | keyword | -|host.mac | Host MAC Address. | ecs | -|host.oem.manufacturer | Original Equipment Manufacturer Name. | keyword | -|host.oem.model | Original Equipment Manufacturer Model. | keyword | -|host.os.build | Operating System Build. | keyword | -|host.os.description | Operating System Description. | keyword | -|host.os.family | Operating System Family. | ecs | -|host.os.name | Operating System Name. | ecs | -|host.os.organization | Operating System Organization. | keyword | -|host.os.version | Operating System Version. | ecs | -|host.type | Host Type. | ecs | -|host.uptime | Host Uptime. | ecs | -|host.workgroup | Host Workgroup Name. | keyword | - ### Vulnerablities TYCHON scans for endpoint vulenrabilites and returns the results. **Exported fields** - -| Field | Description | Type | -|---|---|---| -| tychon.realm | TYCHON Customer Identifer. | keyword | -| tychon.id | TYCHON Endpoint Identifier. | keyword | -| tychon.campaign | TYCHON Campaign Identifer. | keyword | -| vulnerability.id | Common Vulnerabilities and Exposures Identifier of the Vulnerabliity Tested. | ecs | -| event.id | TYCHON Unique Identifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | ecs | -| vulnerability.result | Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. | keyword | -| vulnerability.reference | Reference Details of the Vulnerablity. | ecs | -| vulnerability.score.base | National Vulnerability Database Score of the Vulnerabilty. | ecs | -| vulnerability.score.version | National Vulnerability Database Score Version. | ecs | -| vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | -| vulnerability.severity | National Vulnerability Database Vulnerability Severity. | ecs | -| vulnerability.iava | Information Assurance Vulneraiblity Alert Identifier. | keyword | -| vulnerability.iava_severity | Information Assurance Vulnerability Alert Severity. | keyword | -| vulnerability.year | Common Vulnerabilities and Exposures Year. | long | -| vulnerability.version | Version Number of the Scan. | keyword | -| vulnerability.scanner.vendor | Open Vulnerabilities and Assessment Language Scanner Vendor. | ecs | -| vulnerability.classification | Common Vulnerabilities and Exposures Scoring. | ecs | -| script.name | Scanner Script Name. | keyword | -| script.version | Scanner Script Version. | keyword | -| script.current_duration | Scanner Script Duration. | long | -| script.type | Scanner Script Type. | keyword | - +{{fields "tychon_cve"}} ### Endpoint Protection Platform From c6660a2d342dc68260c058dc1552b16ad4d970a8 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 28 Jun 2023 19:05:50 +0000 Subject: [PATCH 17/65] Update README.md and Fields. --- packages/tychon/_dev/build/docs/README.md | 32 +++++++ .../data_stream/tychon_cve/fields/fields.yml | 70 +++++++-------- .../data_stream/tychon_epp/fields/fields.yml | 30 ++++++- .../data_stream/tychon_stig/fields/fields.yml | 40 ++++++++- packages/tychon/docs/README.md | 85 ------------------- 5 files changed, 130 insertions(+), 127 deletions(-) create mode 100644 packages/tychon/_dev/build/docs/README.md delete mode 100644 packages/tychon/docs/README.md diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md new file mode 100644 index 00000000000..b43876f6f78 --- /dev/null +++ b/packages/tychon/_dev/build/docs/README.md @@ -0,0 +1,32 @@ +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. + + +## Returned Data Fields +### Vulnerablities + +TYCHON scans for endpoint vulenrabilites and returns the results. + +**Exported fields** +{{fields "tychon_cve"}} + +### Endpoint Protection Platform + +TYCHON scans the endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** +{{fields "tychon_epp"}} + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_stig"}} diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 3b2dfaaeff5..dafc7b54ae8 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -1,3 +1,33 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long - name: script type: group fields: @@ -31,51 +61,15 @@ - name: version description: Elastic Agent Version. type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long - name: event type: group fields: - name: created - description: Event creation datetime. + description: Event Creation Datetime. type: date - name: ingested - description: Event ingestion datetime. + description: Event Ingestion Datetime. type: date -- name: host.containerized - description: Is Host Containerized. - type: boolean -- name: host.os.codename - description: Host OS codename. - type: keyword -- name: id - description: Vulnerability Id. - type: keyword - name: message description: Message content. type: match_only_text diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 3433a1eee83..8e86a26faa1 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -1,19 +1,26 @@ - name: id + description: TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. type: keyword - name: script type: group fields: - name: current_duration + description: Current Scanner Script Duration. type: long - name: current_time + description: Current Script datetime. type: date - name: name + description: Scanner Script Name. type: keyword - name: start + description: Scanner Start datetime. type: date - name: type + description: Scanner Script Type. type: keyword - name: version + description: Scanner Script Version. type: keyword - name: windows_defender group: 2 @@ -23,64 +30,83 @@ type: group fields: - name: behavior_monitor.status + description: Windows Defender Behavior Monitor Status. type: keyword - name: ioav_protection.status + description: Windows Defender iOffice Antivirus Protection Status. type: keyword - name: on_access_protection.status + description: Windows Defender On Access Protection Status. type: keyword - name: real_time_protection.status + description: Windows Defender Real-time Procection Status. type: keyword - name: antimalware type: group fields: - name: engine_version - type: keyword - - name: product_version + description: Windows Defender Antimalware Engine Version. type: keyword - name: signature_version + description: Windows Defender Antimalware Signature Version. type: keyword - name: status + description: Windows Defender Antimalware Status. type: keyword - name: antispyware type: group fields: - name: signature_version + description: Windows Defender Antispyware Signature Version. type: keyword - name: status + description: Windows Defender Antispyware Status. type: keyword - name: antivirus type: group fields: - name: full_scan.signature_version + description: Windows Defender Antivirus Full Scan Version. type: keyword - name: quick_scan.signature_version + description: Windows Defender Antivirus Signature Version. type: keyword - name: status + description: Windows Defender Antivirus Status. type: keyword - name: nis type: group fields: - name: engine_version + description: Windows Defender Network Inspection System Engine Version. type: keyword - name: signature_version + description: Windows Defender Network Inspection System Signature Version. type: keyword - name: status + description: Windows Defender Network Inspection System Status. type: keyword - name: elastic_agent type: group fields: - name: id + description: Elastic Agent Id. type: keyword - name: snapshot + description: Elastic Agent snapshot. type: boolean - name: version + description: Elastic Agent Version. type: keyword - name: event type: group fields: - name: created + description: Event Creation Datetime. type: date - name: ingested + description: Event Ingestion Datetime. type: date - name: message + description: Message content. type: match_only_text diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 8b93caa8af6..6f0664b13fb 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -1,96 +1,132 @@ - name: id + description: Tychon Unique Stig Id. type: keyword - name: benchmark type: group fields: - name: guid + description: Benchmark GUID. type: keyword - name: generated_utc + description: Benchmark UTC. type: keyword - name: hash + description: Benchmark SHA256 Hash type: keyword - name: name + description: Benchmark Name. type: keyword - name: title + description: Benchmark Title. type: keyword - name: version + description: Benchmark Version. type: keyword - name: list + description: Benchmark Summary Name List. type: keyword - name: count + description: Benchmark Summary Name List Item Count. type: long - name: oval type: group fields: - name: id + description: Open Vulnerabilities and Assessment Language Identifier. type: keyword - name: class + description: Open Vulnerabilities and Assessment Language Class. type: keyword - name: refid + description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. type: keyword - name: rule type: group fields: - name: id + description: Benchmark Rule Identifier. type: keyword - name: finding_id + description: Benchmark Rule Finding Identifier. type: keyword - name: severity + description: Benchmark Severity Status. type: keyword - name: result + description: Benchmark Test Results. type: keyword - name: title + description: Benchmark Rule Title. type: keyword - name: weight + description: Benchmark Rule Weight. type: float - name: benchmark type: group fields: - name: guid + description: Benchmark Rule GUID. type: keyword - name: profile.id + description: Benchmark Rule Profile Identifier. type: keyword - name: title + description: Benchmark Rule Title. type: keyword - name: oval type: group fields: - name: id + description: Open Vulnerabilities and Assessment Language Identifier. type: keyword - name: class + description: Open Vulnerabilities and Assessment Language Class. type: keyword - name: refid + description: Open Vulnerabilities and Assessment Language Reference Identifier. type: keyword - name: script type: group fields: - - name: current_time - type: date - name: current_duration + description: Scanner Script Duration. type: long + - name: current_time + description: Current datetime. + type: date - name: name + description: Scanner Script Name. type: keyword - name: start + description: Scanner Start datetime. type: date - name: type + description: Scanner Script Type. type: keyword - name: version + description: Scanner Script Version. type: keyword - name: elastic_agent type: group fields: - name: id + description: Elastic Agent Id. type: keyword - name: snapshot + description: Elastic Agent snapshot. type: boolean - name: version + description: Elastic Agent Version. type: keyword - name: event type: group fields: - name: created + description: Event Creation Datetime. type: date - name: ingested + description: Event Ingestion Datetime. type: date - name: error.message + description: Error Message Content. type: match_only_text diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md deleted file mode 100644 index 76a9de2c733..00000000000 --- a/packages/tychon/docs/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# TYCHON Agentless - -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) - -## Compatibility - -* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. -* This integration requires a TYCHON Agentless license. -* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. - - -## Returned Data Fields -### Vulnerablities - -TYCHON scans for endpoint vulenrabilites and returns the results. - -**Exported fields** -{{fields "tychon_cve"}} - -### Endpoint Protection Platform - -TYCHON scans the endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** - -| Field | Description | Type | -|---|---|---| -| tychon.realm | The TYCHON Customer Identifer. | keyword | -| tychon.id | TYCHON Endpoint Identifier. | keyword | -| tychon.campaign | TYCHON Campaign Identifer. | keyword | -| windows_defender.service.antimalware.status | Windows Defender Antimailware Status. | keyword | -| windows_defender.service.antimalware.signature_version | Windows Defender Antimailware Signature Version. | keyword | -| windows_defender.service.antimalware.engine_version | Windows Defender Antimailware Engine Version. | keyword | -| windows_defender.service.antispyware.status | Windows Defender Antispyware Status. | keyword | -| windows_defender.service.antispyware.signature_version | Windows Defender Antispyware Signature Version. | keyword | -| windows_defender.service.antivirus.status | Windows Defender Antivirus Status. | keyword | -| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Antivirus Signature Status. | keyword | -| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Antivirus Signature Version. | keyword | -| windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | -| windows_defender.service.nis.signature_version | Windows Defender Network Inspection System Signature Version. | keyword | -| windows_defender.service.nis.engine_version | Windows Defender Network Inspection System Version. | keyword | -| windows_defender.service.behavior_monitor.status | Windows Defender Behavior Monitor Status. | keyword | -| windows_defender.service.ioav_protection.status | Windows Defender iOffice Antivirus Protection Status. | keyword | -| windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | -| script.name | Scanner Script Name. | keyword | -| script.version | Scanner Script Version. | keyword | -| script.current_duration | Scanner Script Duration. | long | -| script.type | Scanner Script Type. | keyword | - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** - -| Field | Description | Type | -|---|---|---| -| tychon.realm | The TYCHON Customer Identifer. | keyword | -| tychon.id | TYCHON Endpoint Identifier | keyword | -| tychon.campaign | TYCHON Campaign Identifer. | keyword | -| id | TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | keyword | -| rule.oval.id | Open Vulnerabilities and Assessment Language Rule Identifier. | keyword | -| rule.finding_id | Open Vulnerabilities and Assessment Language Rule Finding Identifier. | keyword | -| rule.id | Benchmark Rule Identifier. | ecs | -| rule.result | Benchmark Test Results. | keyword | -| rule.severity | Benchmark Severity Status. | keyword | -| rule.weight | Benchmark Rule Weight. | keyword | -| benchmark.name | Benchmark Name. | keyword | -| benchmark.version | Benchmark Version. | keyword | -| benchmark.generated_utc | Benchmark UTC. | date | -| benchmark.hash | Benchmark SHA256 Hash | SHA256 | -| rule.benchmark.guid | Benchmark Rule GUID. | keyword | -| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | -| benchmark.title | Benchmark Title. | keyword | -| rule.benchmark.title | Benchmark Rule Title. | keyword | -| rule.oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | -| rule.oval.class | Open Vulnerabilities and Assessment Language Rule Class. | keyword | -| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | -| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | -| oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | -| script.name | Scanner Script Name. | keyword | -| script.version | Scanner Script Version. | keyword | -| script.current_duration | Scanner Script Duration. | long | -| script.type | Scanner Script Type. | keyword | From b8f8608247f5a10299197950d351227a0287134f Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Thu, 29 Jun 2023 14:05:01 +0000 Subject: [PATCH 18/65] Update missing descriptions --- .../data_stream/tychon_cve/fields/agent.yml | 21 +++++++++++++++++++ .../tychon_cve/fields/base-fields.yml | 5 ++++- .../data_stream/tychon_epp/fields/agent.yml | 21 +++++++++++++++++++ .../tychon_epp/fields/base-fields.yml | 5 ++++- .../data_stream/tychon_epp/fields/fields.yml | 3 +++ .../data_stream/tychon_stig/fields/agent.yml | 21 +++++++++++++++++++ .../tychon_stig/fields/base-fields.yml | 5 ++++- 7 files changed, 78 insertions(+), 3 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index b016157d3d2..5c48fd15007 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -86,8 +86,10 @@ type: group fields: - name: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. type: keyword - name: biossn + description: Host BIOS Serial Number. type: keyword - name: domain level: extended @@ -110,8 +112,10 @@ type: ip description: Host ip addresses. - name: ipv4 + description: Host IPv4. type: keyword - name: ipv6 + description: Host IPv6. type: keyword - name: mac level: core @@ -119,32 +123,43 @@ ignore_above: 1024 description: Host mac addresses. - name: type + 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. type: keyword - name: uptime + description: Seconds the host has been up. type: long - name: workgroup + description: Host Workgroup Network Name. type: keyword - name: oem type: group fields: - name: manufacturer + description: Host OEM Manufacturer. type: keyword - name: model + description: Host OEM Model. type: keyword - name: os type: group fields: - name: build + description: Host OS Build. type: keyword - name: description + description: Host OS Description. type: keyword - name: family + description: OS family (such as redhat, debian, freebsd, windows). type: keyword - name: name + description: Operating system name, without the version. type: keyword - name: organization + description: Host OS Organization. type: keyword - name: version + description: Operating system version as a raw string. type: keyword - name: hardware type: group @@ -153,17 +168,23 @@ type: group fields: - name: name + description: Host BIOS Name. type: keyword - name: version + description: Host BIOS Version. type: keyword - name: cpu type: group fields: - name: caption + description: Host CPU Caption. type: keyword - name: manufacturer + description: Host BIOS Manufacturer. type: keyword - name: owner + description: Host BIOS Owner. type: keyword - name: serial_number + description: Host BIOS Serial Number. type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml index 12f19913146..44a26fd137a 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml @@ -1,6 +1,8 @@ - name: input.type + description: Source file type. type: keyword - name: log.offset + description: Source file current offset. type: long - name: data_stream.type type: constant_keyword @@ -13,6 +15,7 @@ description: Data stream namespace. - name: event.module type: keyword - description: Event module + description: Event module. - name: '@timestamp' + description: Event timestamp. type: date diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index b016157d3d2..5c48fd15007 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -86,8 +86,10 @@ type: group fields: - name: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. type: keyword - name: biossn + description: Host BIOS Serial Number. type: keyword - name: domain level: extended @@ -110,8 +112,10 @@ type: ip description: Host ip addresses. - name: ipv4 + description: Host IPv4. type: keyword - name: ipv6 + description: Host IPv6. type: keyword - name: mac level: core @@ -119,32 +123,43 @@ ignore_above: 1024 description: Host mac addresses. - name: type + 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. type: keyword - name: uptime + description: Seconds the host has been up. type: long - name: workgroup + description: Host Workgroup Network Name. type: keyword - name: oem type: group fields: - name: manufacturer + description: Host OEM Manufacturer. type: keyword - name: model + description: Host OEM Model. type: keyword - name: os type: group fields: - name: build + description: Host OS Build. type: keyword - name: description + description: Host OS Description. type: keyword - name: family + description: OS family (such as redhat, debian, freebsd, windows). type: keyword - name: name + description: Operating system name, without the version. type: keyword - name: organization + description: Host OS Organization. type: keyword - name: version + description: Operating system version as a raw string. type: keyword - name: hardware type: group @@ -153,17 +168,23 @@ type: group fields: - name: name + description: Host BIOS Name. type: keyword - name: version + description: Host BIOS Version. type: keyword - name: cpu type: group fields: - name: caption + description: Host CPU Caption. type: keyword - name: manufacturer + description: Host BIOS Manufacturer. type: keyword - name: owner + description: Host BIOS Owner. type: keyword - name: serial_number + description: Host BIOS Serial Number. type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml index 12f19913146..44a26fd137a 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml @@ -1,6 +1,8 @@ - name: input.type + description: Source file type. type: keyword - name: log.offset + description: Source file current offset. type: long - name: data_stream.type type: constant_keyword @@ -13,6 +15,7 @@ description: Data stream namespace. - name: event.module type: keyword - description: Event module + description: Event module. - name: '@timestamp' + description: Event timestamp. type: date diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 8e86a26faa1..9629bdb81c9 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -47,6 +47,9 @@ - name: engine_version description: Windows Defender Antimalware Engine Version. type: keyword + - name: product_version + description: Windows Defender Antimalware Product Version. + type: keyword - name: signature_version description: Windows Defender Antimalware Signature Version. type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index b016157d3d2..5c48fd15007 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -86,8 +86,10 @@ type: group fields: - name: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. type: keyword - name: biossn + description: Host BIOS Serial Number. type: keyword - name: domain level: extended @@ -110,8 +112,10 @@ type: ip description: Host ip addresses. - name: ipv4 + description: Host IPv4. type: keyword - name: ipv6 + description: Host IPv6. type: keyword - name: mac level: core @@ -119,32 +123,43 @@ ignore_above: 1024 description: Host mac addresses. - name: type + 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. type: keyword - name: uptime + description: Seconds the host has been up. type: long - name: workgroup + description: Host Workgroup Network Name. type: keyword - name: oem type: group fields: - name: manufacturer + description: Host OEM Manufacturer. type: keyword - name: model + description: Host OEM Model. type: keyword - name: os type: group fields: - name: build + description: Host OS Build. type: keyword - name: description + description: Host OS Description. type: keyword - name: family + description: OS family (such as redhat, debian, freebsd, windows). type: keyword - name: name + description: Operating system name, without the version. type: keyword - name: organization + description: Host OS Organization. type: keyword - name: version + description: Operating system version as a raw string. type: keyword - name: hardware type: group @@ -153,17 +168,23 @@ type: group fields: - name: name + description: Host BIOS Name. type: keyword - name: version + description: Host BIOS Version. type: keyword - name: cpu type: group fields: - name: caption + description: Host CPU Caption. type: keyword - name: manufacturer + description: Host BIOS Manufacturer. type: keyword - name: owner + description: Host BIOS Owner. type: keyword - name: serial_number + description: Host BIOS Serial Number. type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml index 12f19913146..44a26fd137a 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml @@ -1,6 +1,8 @@ - name: input.type + description: Source file type. type: keyword - name: log.offset + description: Source file current offset. type: long - name: data_stream.type type: constant_keyword @@ -13,6 +15,7 @@ description: Data stream namespace. - name: event.module type: keyword - description: Event module + description: Event module. - name: '@timestamp' + description: Event timestamp. type: date From 782a7fc39cf83aca24cbff535aff83f576df6a16 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Thu, 29 Jun 2023 14:12:30 +0000 Subject: [PATCH 19/65] Put License back --- packages/tychon/LICENSE.txt | 93 +++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 packages/tychon/LICENSE.txt diff --git a/packages/tychon/LICENSE.txt b/packages/tychon/LICENSE.txt new file mode 100644 index 00000000000..809108b857f --- /dev/null +++ b/packages/tychon/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. From ee83a6c2dc34aba7548a5de9d2cafce455be03d1 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Thu, 29 Jun 2023 16:22:11 +0000 Subject: [PATCH 20/65] Added pipeline tests --- .../tychon_cve/_dev/test-common-config.yml | 4 + .../_dev/test/pipeline/test-generated.json | 8 + .../test-generated.json-expected.json | 126 +++++++++++++++ .../_dev/test/pipeline/test-common-config.yml | 4 + .../_dev/test/pipeline/test-generated.json | 8 + .../test/test-generated.json-expected.json | 143 ++++++++++++++++++ .../_dev/test/pipeline/test-generated.json | 8 + .../test-generated.json-expected.json | 138 +++++++++++++++++ .../_dev/test/test-common-config.yml | 4 + 9 files changed, 443 insertions(+) create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json create mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml new file mode 100644 index 00000000000..f7c11099fd8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml @@ -0,0 +1,4 @@ +fields: + "@timestamp": "2023-06-29T15:00:58.875284827Z" + tags: + - preserve_original_event diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json new file mode 100644 index 00000000000..9b0a58f259b --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json @@ -0,0 +1,8 @@ +{ + "events": [ + { + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "message": "{\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.domain\":\"\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.hardware.bios.version\":\"6.00\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"host.hardware.owner\":\"dcuser\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"host.ipv4\":\"10.1.9.112\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"host.oem.manufacturer\":\"\",\"host.oem.model\":\"\",\"host.os.build\":\"22000\",\"host.os.description\":\"\",\"host.os.family\":\"Windows\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"host.os.organization\":\"\",\"host.os.version\":\"10.0.22000\",\"host.type\":\"Workstation\",\"host.uptime\":145287,\"host.workgroup\":\"WORKGROUP\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900\",\"script.current_duration\":\"315381.28\",\"script.current_time\":\"2023-06-15T21:58:02Z\",\"script.name\":\"Invoke-CveScan.ps1\",\"script.start\":\"2023-06-15T21:52:47Z\",\"script.type\":\"powershell\",\"script.version\":\"0.1.0\",\"vulnerability.classification\":\"vulnerability\",\"vulnerability.iava\":\"2013-A-0227\",\"vulnerability.iava_severity\":\"CAT II\",\"vulnerability.id\":\"CVE-2013-3900\",\"vulnerability.reference\":\"https://www.scaprepo.com/view.jsp?id=CVE-2013-3900\",\"vulnerability.result\":\"fail\",\"vulnerability.scanner.vendor\":\"TYCHON\",\"vulnerability.score.base\":\"7.60\",\"vulnerability.score.version\":\"2.0\",\"vulnerability.severity\":\"HIGH\",\"vulnerability.title\":\"The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does \",\"vulnerability.version\":1,\"vulnerability.year\":\"2013\"}" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json new file mode 100644 index 00000000000..56d7815e73e --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json @@ -0,0 +1,126 @@ +{ + "expected": [ + { + "agent": { + "name": "DESKTOP-TIUKL1R", + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "type": "filebeat", + "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", + "version": "8.6.2" + }, + "log": { + "file": { + "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_cve_info.json" + }, + "offset": 0 + }, + "elastic_agent": { + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "version": "8.6.2", + "snapshot": false + }, + "vulnerability": { + "severity": "HIGH", + "year": "2013", + "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "classification": "cvss", + "version": 1, + "result": "fail", + "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "score": { + "version": "2.0", + "base": "7.60" + }, + "iava": "2013-A-0227", + "iava_severity": "CAT II", + "scanner": { + "vendor": "tychon" + }, + "id": "CVE-2013-3900", + "category": "oval", + "enumeration": "CVE" + }, + "script": { + "current_duration": "34477.13", + "name": "Invoke-CveScan.ps1", + "start": "2023-06-29T15:00:06Z", + "type": "powershell", + "version": "0.1.0", + "current_time": "2023-06-29T15:00:41Z" + }, + "tags": [ + "tychon-cve" + ], + "input": { + "type": "log" + }, + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "ecs": { + "version": "8.8.0" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "tychon.tychon_cve" + }, + "host": { + "workgroup": "WORKGROUP", + "os": { + "build": "22000.2057", + "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", + "organization": "", + "name": "Windows 11 Education N", + "description": "", + "type": "windows", + "family": "windows", + "version": "10.0", + "platform": "windows" + }, + "ip": [ + "fe80::40d1:5287:42b9:5645", + "10.1.9.112" + ], + "type": "Workstation", + "mac": [ + "00-0C-29-EF-9A-EB" + ], + "uptime": 764025, + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "hostname": "DESKTOP-TIUKL1R", + "ipv4": "10.1.9.112", + "oem": { + "model": "", + "manufacturer": "" + }, + "ipv6": "fe80::40d1:5287:42b9:5645", + "domain": "", + "name": "DESKTOP-TIUKL1R", + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", + "hardware": { + "owner": "dcuser", + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "manufacturer": "VMware, Inc." + }, + "architecture": "x86_64" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "event": { + "agent_id_status": "verified", + "ingested": "2023-06-29T15:00:58Z", + "timezone": "-04:00", + "kind": "state", + "module": "tychon", + "category": "vulnerability", + "dataset": "tychon.tychon_cve", + "outcome": "fail" + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml new file mode 100644 index 00000000000..f7c11099fd8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml @@ -0,0 +1,4 @@ +fields: + "@timestamp": "2023-06-29T15:00:58.875284827Z" + tags: + - preserve_original_event diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json new file mode 100644 index 00000000000..17d2ce35ef7 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json @@ -0,0 +1,8 @@ +{ + "events": [ + { + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "message": "{\"windows_defender.service.antimalware.status\":\"Enabled\",\"windows_defender.service.real_time_protection.status\":\"Enabled\",\"windows_defender.service.antispyware.signature_version\":\"1.391.1546.0\",\"script.type\":\"powershell\",\"host.os.build\":\"22000\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"windows_defender.service.antivirus.quick_scan.signature_version\":\"1.391.1470.0\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"windows_defender.service.antivirus.status\":\"Enabled\",\"script.start\":\"2023-06-15T20:13:03Z\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"host.os.organization\":\"\",\"host.hardware.owner\":\"dcuser\",\"windows_defender.service.antispyware.status\":\"Enabled\",\"host.workgroup\":\"WORKGROUP\",\"host.ipv4\":\"10.1.9.112\",\"host.os.version\":\"10.0.22000\",\"windows_defender.service.antivirus.full_scan.signature_version\":\"\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.type\":\"Workstation\",\"windows_defender.service.behavior_monitor.status\":\"Enabled\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"host.oem.model\":\"\",\"host.uptime\":\"139304\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"windows_defender.service.antimalware.product_version\":\"4.18.23050.5\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"windows_defender.service.ioav_protection.status\":\"Enabled\",\"windows_defender.service.on_access_protection.status\":\"Enabled\",\"script.name\":\"Get-TychonEppSetting.ps1\",\"windows_defender.service.antimalware.engine_version\":\"1.1.23050.3\",\"windows_defender.service.nis.engine_version\":\"1.1.23050.3\",\"script.version\":\"0.1.0\",\"host.oem.manufacturer\":\"\",\"host.os.description\":\"\",\"script.current_duration\":\"1129.20\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"script.current_time\":\"2023-06-15T20:13:04Z\",\"windows_defender.service.nis.signature_version\":\"1.391.1546.0\",\"host.hardware.bios.version\":\"6.00\",\"windows_defender.service.nis.status\":\"Enabled\",\"host.domain\":\"\",\"host.os.family\":\"Windows\"}" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json new file mode 100644 index 00000000000..b228b308fb3 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json @@ -0,0 +1,143 @@ +{ + "expected": [ + { + "agent": { + "name": "DESKTOP-TIUKL1R", + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "type": "filebeat", + "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", + "version": "8.6.2" + }, + "windows_defender": { + "service": { + "on_access_protection": { + "status": "Enabled" + }, + "antivirus": { + "quick_scan": { + "signature_version": "1.391.2951.0" + }, + "full_scan": { + "signature_version": "" + }, + "status": "Enabled" + }, + "behavior_monitor": { + "status": "Enabled" + }, + "antispyware": { + "signature_version": "1.391.3001.0", + "status": "Enabled" + }, + "nis": { + "signature_version": "1.391.3001.0", + "engine_version": "1.1.23050.3", + "status": "Enabled" + }, + "antimalware": { + "product_version": "4.18.23050.5", + "engine_version": "1.1.23050.3", + "status": "Enabled" + }, + "real_time_protection": { + "status": "Enabled" + }, + "ioav_protection": { + "status": "Enabled" + } + } + }, + "log": { + "file": { + "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_epp_info.json" + }, + "offset": 0 + }, + "elastic_agent": { + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "version": "8.6.2", + "snapshot": false + }, + "script": { + "current_duration": "1286.30", + "name": "Get-TychonEppSetting.ps1", + "start": "2023-06-29T14:36:19Z", + "type": "powershell", + "version": "0.1.0", + "current_time": "2023-06-29T14:36:20Z" + }, + "tags": [ + "tychon-epp-info" + ], + "input": { + "type": "log" + }, + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "ecs": { + "version": "8.5.1" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "tychon.tychon_epp" + }, + "host": { + "workgroup": "WORKGROUP", + "os": { + "build": "22000.2057", + "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", + "organization": "", + "name": "Windows 11 Education N", + "description": "", + "type": "windows", + "family": "windows", + "version": "10.0", + "platform": "windows" + }, + "ip": [ + "fe80::40d1:5287:42b9:5645", + "10.1.9.112" + ], + "type": "Workstation", + "mac": [ + "00-0C-29-EF-9A-EB" + ], + "uptime": "762599", + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "hostname": "DESKTOP-TIUKL1R", + "ipv4": "10.1.9.112", + "oem": { + "model": "", + "manufacturer": "" + }, + "ipv6": "fe80::40d1:5287:42b9:5645", + "domain": "", + "name": "DESKTOP-TIUKL1R", + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", + "architecture": "x86_64", + "hardware": { + "owner": "dcuser", + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "manufacturer": "VMware, Inc." + } + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "event": { + "agent_id_status": "verified", + "ingested": "2023-06-29T15:01:01Z", + "timezone": "-04:00", + "kind": "state", + "module": "tychon", + "category": "host", + "dataset": "tychon.tychon_epp" + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json new file mode 100644 index 00000000000..c6ce9c888a9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json @@ -0,0 +1,8 @@ +{ + "events": [ + { + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "message": "{\"rule.benchmark.profile.id\":\"xccdf_mil.disa.stig_profile_Disable_Slow_Rules\",\"benchmark.name\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.weight\":\"10.0\",\"rule.title\":\"\",\"rule.id\":\"\",\"rule.oval.refid\":\"\",\"script.type\":\"powershell\",\"host.os.build\":\"22000\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"rule.name\":\"xccdf_mil.disa.stig_rule_SV-253254r828846_rule\",\"script.version\":\"0.1.0\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"benchmark.guid\":\"\",\"script.start\":\"2023-06-15T20:14:11Z\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379\",\"rule.test_result\":\"not applicable\",\"host.os.organization\":\"\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"benchmark.hash\":\"B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379\",\"host.hardware.owner\":\"dcuser\",\"host.workgroup\":\"WORKGROUP\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"host.ipv4\":\"10.1.9.112\",\"host.os.version\":\"10.0.22000\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.type\":\"Workstation\",\"script.name\":\"Invoke-TychonStigBenchmarkScan.ps1\",\"oval.id\":\"oval:mil.disa.stig.windows11:def:253254\",\"rule.finding_id\":\"\",\"rule.oval.class\":\"compliance\",\"rule.benchmark.title\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.benchmark.guid\":\"\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"oval.class\":\"compliance\",\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"oval.refid\":\"\",\"rule.severity\":\"medium\",\"host.oem.model\":\"\",\"host.uptime\":\"139370\",\"benchmark.version\":\"1.2\",\"script.current_time\":\"2023-06-15T20:19:35Z\",\"benchmark.title\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.oval.id\":\"oval:mil.disa.stig.windows11:def:253254\",\"benchmark.generated_utc\":\"2023-03-28T17:40:48\",\"host.oem.manufacturer\":\"\",\"host.os.description\":\"\",\"script.current_duration\":\"324194.34\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"host.hardware.bios.version\":\"6.00\",\"host.domain\":\"\",\"host.os.family\":\"Windows\"}" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json new file mode 100644 index 00000000000..55f85bd25f3 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json @@ -0,0 +1,138 @@ +{ + "expected": [ + { + "agent": { + "name": "DESKTOP-TIUKL1R", + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "type": "filebeat", + "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", + "version": "8.6.2" + }, + "log": { + "file": { + "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_stig_info.json" + }, + "offset": 712779 + }, + "oval": { + "id": "oval:mil.disa.stig.windows11:def:253254", + "refid": "", + "class": "compliance" + }, + "elastic_agent": { + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "version": "8.6.2", + "snapshot": false + }, + "rule": { + "severity": "medium", + "result": "not applicable", + "finding_id": "", + "oval": { + "refid": "", + "id": "oval:mil.disa.stig.windows11:def:253254", + "class": "compliance" + }, + "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "weight": "10.0", + "id": "", + "title": "", + "benchmark": { + "profile": { + "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" + }, + "guid": "", + "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" + } + }, + "script": { + "current_duration": "347397.53", + "name": "Invoke-TychonStigBenchmarkScan.ps1", + "start": "2023-06-23T03:05:45Z", + "type": "powershell", + "version": "0.1.0", + "current_time": "2023-06-23T03:11:33Z" + }, + "benchmark": { + "generated_utc": "2023-03-28T17:40:48", + "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "guid": "", + "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "version": "1.2", + "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379" + }, + "tags": [ + "tychon-stig-info" + ], + "input": { + "type": "log" + }, + "@timestamp": "2023-06-29T15:00:58.875284827Z", + "ecs": { + "version": "8.5.1" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "tychon.tychon_stig" + }, + "host": { + "workgroup": "WORKGROUP", + "os": { + "build": "22000.2057", + "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", + "organization": "", + "name": "Windows 11 Education N", + "description": "", + "type": "windows", + "family": "windows", + "version": "10.0", + "platform": "windows" + }, + "ip": [ + "fe80::40d1:5287:42b9:5645", + "10.1.9.112" + ], + "type": "Workstation", + "mac": [ + "00-0C-29-EF-9A-EB" + ], + "uptime": "202779", + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "hostname": "DESKTOP-TIUKL1R", + "ipv4": "10.1.9.112", + "oem": { + "model": "", + "manufacturer": "" + }, + "ipv6": "fe80::40d1:5287:42b9:5645", + "domain": "", + "name": "DESKTOP-TIUKL1R", + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", + "hardware": { + "owner": "dcuser", + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "manufacturer": "VMware, Inc." + }, + "architecture": "x86_64" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "event": { + "agent_id_status": "verified", + "ingested": "2023-06-29T15:01:05Z", + "timezone": "-04:00", + "kind": "state", + "module": "tychon", + "category": "host", + "dataset": "tychon.tychon_stig" + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml b/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml new file mode 100644 index 00000000000..f7c11099fd8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml @@ -0,0 +1,4 @@ +fields: + "@timestamp": "2023-06-29T15:00:58.875284827Z" + tags: + - preserve_original_event From 8e83866732466d41689cde8a543dee7d28864f2a Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Thu, 6 Jul 2023 19:24:40 +0000 Subject: [PATCH 21/65] Updated pipeline tests --- packages/tychon/_dev/build/build.yml | 2 +- .../tychon_cve/_dev/test-common-config.yml | 4 - .../_dev/test/pipeline/test-cve.json | 51 +++++ .../test/pipeline/test-cve.json-expected.json | 91 +++++++++ .../_dev/test/pipeline/test-generated.json | 8 - .../test-generated.json-expected.json | 126 ------------ .../_dev/test/test-cve.json-config.yml | 3 + .../elasticsearch/ingest_pipeline/default.yml | 57 ++++-- .../_dev/test/pipeline/test-common-config.yml | 4 - .../_dev/test/pipeline/test-epp.json | 53 +++++ .../test/pipeline/test-epp.json-config.yml | 3 + .../test/pipeline/test-epp.json-expected.json | 106 ++++++++++ .../_dev/test/pipeline/test-generated.json | 8 - .../test/test-generated.json-expected.json | 143 -------------- .../elasticsearch/ingest_pipeline/default.yml | 15 +- .../tychon_stig/_dev/test-stig.json | 60 ++++++ .../_dev/test/pipeline/test-generated.json | 8 - .../test/pipeline/test-stig.json-config.yml | 3 + ...cted.json => test-stig.json-expected.json} | 181 +++++++----------- .../_dev/test/test-common-config.yml | 4 - .../elasticsearch/ingest_pipeline/default.yml | 28 ++- .../data_stream/tychon_stig/fields/fields.yml | 2 +- 22 files changed, 518 insertions(+), 442 deletions(-) delete mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json delete mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test-stig.json delete mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json create mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml rename packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/{test-generated.json-expected.json => test-stig.json-expected.json} (51%) delete mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml diff --git a/packages/tychon/_dev/build/build.yml b/packages/tychon/_dev/build/build.yml index 875463aaf47..074278e5b1f 100644 --- a/packages/tychon/_dev/build/build.yml +++ b/packages/tychon/_dev/build/build.yml @@ -1,3 +1,3 @@ dependencies: ecs: - reference: git@8.8 + reference: git@v8.8.0 diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml deleted file mode 100644 index f7c11099fd8..00000000000 --- a/packages/tychon/data_stream/tychon_cve/_dev/test-common-config.yml +++ /dev/null @@ -1,4 +0,0 @@ -fields: - "@timestamp": "2023-06-29T15:00:58.875284827Z" - tags: - - preserve_original_event diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json new file mode 100644 index 00000000000..a968a6c9bcd --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -0,0 +1,51 @@ +{ + "events": [ + { + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.domain": "", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.hardware.bios.version": "6.00", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.owner": "dcuser", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.hostname": "DESKTOP-TIUKL1R", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "host.ipv4": "10.1.9.112", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.manufacturer": "", + "host.oem.model": "", + "host.os.build": "22000", + "host.os.description": "", + "host.os.family": "Windows", + "host.os.name": "Microsoft Windows 11 Education N", + "host.os.organization": "", + "host.os.version": "10.0.22000", + "host.type": "Workstation", + "host.uptime": 145287, + "host.workgroup": "WORKGROUP", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script.current_duration": "315381.28", + "script.current_time": "2023-06-15T21:58:02Z", + "script.name": "Invoke-CveScan.ps1", + "script.start": "2023-06-15T21:52:47Z", + "script.type": "powershell", + "script.version": "0.1.0", + "vulnerability.classification": "vulnerability", + "vulnerability.iava": "2013-A-0227", + "vulnerability.iava_severity": "CAT II", + "vulnerability.id": "CVE-2013-3900", + "vulnerability.reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "vulnerability.result": "fail", + "vulnerability.scanner.vendor": "TYCHON", + "vulnerability.score.base": "7.60", + "vulnerability.score.version": "2.0", + "vulnerability.severity": "HIGH", + "vulnerability.title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "vulnerability.version": 1, + "vulnerability.year": "2013" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json new file mode 100644 index 00000000000..c19e2ff771b --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -0,0 +1,91 @@ +{ + "expected": [ + { + "@timestamp": "2023-07-05T13:31:28.772195022Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "vulnerability" + ], + "ingested": "2023-07-05T13:31:28.772195022Z", + "kind": "state", + "module": "tychon", + "outcome": "failure" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": [ + "10.1.9.112", + "fe80::40d1:5287:42b9:5645" + ], + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00:0C:29:EF:9A:EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 145287, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script": { + "current_duration": 315381.28, + "current_time": "2023-06-15T21:58:02Z", + "name": "Invoke-CveScan.ps1", + "start": "2023-06-15T21:52:47Z", + "type": "powershell", + "version": "0.1.0" + }, + "vulnerability": { + "category": [ + "oval" + ], + "classification": "cvss", + "enumeration": "CVE", + "iava": "2013-A-0227", + "iava_severity": "CAT II", + "id": "CVE-2013-3900", + "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "result": "fail", + "scanner": { + "vendor": "tychon" + }, + "score": { + "base": 7.6, + "version": "2.0" + }, + "severity": "HIGH", + "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "version": "1", + "year": 2013 + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json deleted file mode 100644 index 9b0a58f259b..00000000000 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "events": [ - { - "@timestamp": "2023-06-29T15:00:58.875284827Z", - "message": "{\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.domain\":\"\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.hardware.bios.version\":\"6.00\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"host.hardware.owner\":\"dcuser\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"host.ipv4\":\"10.1.9.112\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"host.oem.manufacturer\":\"\",\"host.oem.model\":\"\",\"host.os.build\":\"22000\",\"host.os.description\":\"\",\"host.os.family\":\"Windows\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"host.os.organization\":\"\",\"host.os.version\":\"10.0.22000\",\"host.type\":\"Workstation\",\"host.uptime\":145287,\"host.workgroup\":\"WORKGROUP\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900\",\"script.current_duration\":\"315381.28\",\"script.current_time\":\"2023-06-15T21:58:02Z\",\"script.name\":\"Invoke-CveScan.ps1\",\"script.start\":\"2023-06-15T21:52:47Z\",\"script.type\":\"powershell\",\"script.version\":\"0.1.0\",\"vulnerability.classification\":\"vulnerability\",\"vulnerability.iava\":\"2013-A-0227\",\"vulnerability.iava_severity\":\"CAT II\",\"vulnerability.id\":\"CVE-2013-3900\",\"vulnerability.reference\":\"https://www.scaprepo.com/view.jsp?id=CVE-2013-3900\",\"vulnerability.result\":\"fail\",\"vulnerability.scanner.vendor\":\"TYCHON\",\"vulnerability.score.base\":\"7.60\",\"vulnerability.score.version\":\"2.0\",\"vulnerability.severity\":\"HIGH\",\"vulnerability.title\":\"The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does \",\"vulnerability.version\":1,\"vulnerability.year\":\"2013\"}" - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json deleted file mode 100644 index 56d7815e73e..00000000000 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-generated.json-expected.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "expected": [ - { - "agent": { - "name": "DESKTOP-TIUKL1R", - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "type": "filebeat", - "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", - "version": "8.6.2" - }, - "log": { - "file": { - "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_cve_info.json" - }, - "offset": 0 - }, - "elastic_agent": { - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "version": "8.6.2", - "snapshot": false - }, - "vulnerability": { - "severity": "HIGH", - "year": "2013", - "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", - "classification": "cvss", - "version": 1, - "result": "fail", - "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "score": { - "version": "2.0", - "base": "7.60" - }, - "iava": "2013-A-0227", - "iava_severity": "CAT II", - "scanner": { - "vendor": "tychon" - }, - "id": "CVE-2013-3900", - "category": "oval", - "enumeration": "CVE" - }, - "script": { - "current_duration": "34477.13", - "name": "Invoke-CveScan.ps1", - "start": "2023-06-29T15:00:06Z", - "type": "powershell", - "version": "0.1.0", - "current_time": "2023-06-29T15:00:41Z" - }, - "tags": [ - "tychon-cve" - ], - "input": { - "type": "log" - }, - "@timestamp": "2023-06-29T15:00:58.875284827Z", - "ecs": { - "version": "8.8.0" - }, - "data_stream": { - "namespace": "default", - "type": "logs", - "dataset": "tychon.tychon_cve" - }, - "host": { - "workgroup": "WORKGROUP", - "os": { - "build": "22000.2057", - "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", - "organization": "", - "name": "Windows 11 Education N", - "description": "", - "type": "windows", - "family": "windows", - "version": "10.0", - "platform": "windows" - }, - "ip": [ - "fe80::40d1:5287:42b9:5645", - "10.1.9.112" - ], - "type": "Workstation", - "mac": [ - "00-0C-29-EF-9A-EB" - ], - "uptime": 764025, - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "hostname": "DESKTOP-TIUKL1R", - "ipv4": "10.1.9.112", - "oem": { - "model": "", - "manufacturer": "" - }, - "ipv6": "fe80::40d1:5287:42b9:5645", - "domain": "", - "name": "DESKTOP-TIUKL1R", - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", - "hardware": { - "owner": "dcuser", - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "manufacturer": "VMware, Inc." - }, - "architecture": "x86_64" - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", - "event": { - "agent_id_status": "verified", - "ingested": "2023-06-29T15:00:58Z", - "timezone": "-04:00", - "kind": "state", - "module": "tychon", - "category": "vulnerability", - "dataset": "tychon.tychon_cve", - "outcome": "fail" - } - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml new file mode 100644 index 00000000000..3187160a159 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index afb6c8cfb43..f9c16f5402d 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -1,22 +1,24 @@ --- description: Pipeline for parsing TYCHON Vulnerability Scan Results processors: + - dot_expander: + field: "*" - set: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" - field: 'host.id' - value: '{{tychon.id}}' + if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") + field: host.id + value: "{{tychon.id}}" - remove: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" + if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") field: 'tychon' - set: - field: '_id' - value: '{{id}}' + field: _id + value: "{{id}}" - set: - field: '@timestamp' - value: '{{_ingest.timestamp}}' + field: "@timestamp" + value: "{{_ingest.timestamp}}" - set: field: ecs.version - value: '8.8.0' + value: 8.8.0 - set: field: event.kind value: state @@ -25,13 +27,36 @@ processors: value: tychon - set: field: event.category - value: vulnerability + value: [vulnerability] + - split: + field: host.ip + separator: "," + - script: + source: if(ctx.vulnerability.result == 'fail'){ + ctx.event.outcome = "failure" + }else if(ctx.vulnerability.result == 'pass'){ + ctx.event.outcome = "success" + }else{ + ctx.event.outcome = "unknown" + } + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - convert: + field: script.current_duration + type: float + - convert: + field: vulnerability.score.base + type: float + - convert: + field: vulnerability.year + type: long - set: field: vulnerability.scanner.vendor value: tychon - set: field: vulnerability.category - value: oval + value: [oval] - set: field: vulnerability.classification value: cvss @@ -39,13 +64,9 @@ processors: field: vulnerability.enumeration value: CVE - set: - field: event.outcome - value: '{{vulnerability.result}}' - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' + field: vulnerability.version + value: "{{vulnerability.version}}" on_failure: - set: field: error.message - value: '{{ _ingest.on_failure_message }}' - + value: "{{ _ingest.on_failure_message }}" \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml deleted file mode 100644 index f7c11099fd8..00000000000 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-common-config.yml +++ /dev/null @@ -1,4 +0,0 @@ -fields: - "@timestamp": "2023-06-29T15:00:58.875284827Z" - tags: - - preserve_original_event diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json new file mode 100644 index 00000000000..c2f3d10314c --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -0,0 +1,53 @@ +{ + "events": [ + { + "windows_defender.service.antimalware.status": "Enabled", + "windows_defender.service.real_time_protection.status": "Enabled", + "windows_defender.service.antispyware.signature_version": "1.391.1546.0", + "script.type": "powershell", + "host.os.build": "22000", + "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "windows_defender.service.antivirus.quick_scan.signature_version": "1.391.1470.0", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "windows_defender.service.antivirus.status": "Enabled", + "script.start": "2023-06-15T20:13:03Z", + "host.os.name": "Microsoft Windows 11 Education N", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "dcuser", + "windows_defender.service.antispyware.status": "Enabled", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.112", + "host.os.version": "10.0.22000", + "windows_defender.service.antivirus.full_scan.signature_version": "", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "windows_defender.service.behavior_monitor.status": "Enabled", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.model": "", + "host.uptime": "139304", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "windows_defender.service.antimalware.product_version": "4.18.23050.5", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "windows_defender.service.ioav_protection.status": "Enabled", + "windows_defender.service.on_access_protection.status": "Enabled", + "script.name": "Get-TychonEppSetting.ps1", + "windows_defender.service.antimalware.engine_version": "1.1.23050.3", + "windows_defender.service.nis.engine_version": "1.1.23050.3", + "script.version": "0.1.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "1129.20", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "script.current_time": "2023-06-15T20:13:04Z", + "windows_defender.service.nis.signature_version": "1.391.1546.0", + "host.hardware.bios.version": "6.00", + "windows_defender.service.nis.status": "Enabled", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json new file mode 100644 index 00000000000..0c75f73167c --- /dev/null +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -0,0 +1,106 @@ +{ + "expected": [ + { + "@timestamp": "2023-07-06T19:09:34.495470581Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "ingested": "2023-07-06T19:09:34.495470581Z", + "kind": "state", + "module": "tychon" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": [ + "10.1.9.112", + "fe80::40d1:5287:42b9:5645" + ], + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00:0C:29:EF:9A:EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 139304, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "script": { + "current_duration": 1129.2, + "current_time": "2023-06-15T20:13:04Z", + "name": "Get-TychonEppSetting.ps1", + "start": "2023-06-15T20:13:03Z", + "type": "powershell", + "version": "0.1.0" + }, + "windows_defender": { + "service": { + "antimalware": { + "engine_version": "1.1.23050.3", + "product_version": "4.18.23050.5", + "status": "Enabled" + }, + "antispyware": { + "signature_version": "1.391.1546.0", + "status": "Enabled" + }, + "antivirus": { + "full_scan": { + "signature_version": "" + }, + "quick_scan": { + "signature_version": "1.391.1470.0" + }, + "status": "Enabled" + }, + "behavior_monitor": { + "status": "Enabled" + }, + "ioav_protection": { + "status": "Enabled" + }, + "nis": { + "engine_version": "1.1.23050.3", + "signature_version": "1.391.1546.0", + "status": "Enabled" + }, + "on_access_protection": { + "status": "Enabled" + }, + "real_time_protection": { + "status": "Enabled" + } + } + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json deleted file mode 100644 index 17d2ce35ef7..00000000000 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-generated.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "events": [ - { - "@timestamp": "2023-06-29T15:00:58.875284827Z", - "message": "{\"windows_defender.service.antimalware.status\":\"Enabled\",\"windows_defender.service.real_time_protection.status\":\"Enabled\",\"windows_defender.service.antispyware.signature_version\":\"1.391.1546.0\",\"script.type\":\"powershell\",\"host.os.build\":\"22000\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"windows_defender.service.antivirus.quick_scan.signature_version\":\"1.391.1470.0\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"windows_defender.service.antivirus.status\":\"Enabled\",\"script.start\":\"2023-06-15T20:13:03Z\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"host.os.organization\":\"\",\"host.hardware.owner\":\"dcuser\",\"windows_defender.service.antispyware.status\":\"Enabled\",\"host.workgroup\":\"WORKGROUP\",\"host.ipv4\":\"10.1.9.112\",\"host.os.version\":\"10.0.22000\",\"windows_defender.service.antivirus.full_scan.signature_version\":\"\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.type\":\"Workstation\",\"windows_defender.service.behavior_monitor.status\":\"Enabled\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"host.oem.model\":\"\",\"host.uptime\":\"139304\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"windows_defender.service.antimalware.product_version\":\"4.18.23050.5\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"windows_defender.service.ioav_protection.status\":\"Enabled\",\"windows_defender.service.on_access_protection.status\":\"Enabled\",\"script.name\":\"Get-TychonEppSetting.ps1\",\"windows_defender.service.antimalware.engine_version\":\"1.1.23050.3\",\"windows_defender.service.nis.engine_version\":\"1.1.23050.3\",\"script.version\":\"0.1.0\",\"host.oem.manufacturer\":\"\",\"host.os.description\":\"\",\"script.current_duration\":\"1129.20\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"script.current_time\":\"2023-06-15T20:13:04Z\",\"windows_defender.service.nis.signature_version\":\"1.391.1546.0\",\"host.hardware.bios.version\":\"6.00\",\"windows_defender.service.nis.status\":\"Enabled\",\"host.domain\":\"\",\"host.os.family\":\"Windows\"}" - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json deleted file mode 100644 index b228b308fb3..00000000000 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/test-generated.json-expected.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "expected": [ - { - "agent": { - "name": "DESKTOP-TIUKL1R", - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "type": "filebeat", - "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", - "version": "8.6.2" - }, - "windows_defender": { - "service": { - "on_access_protection": { - "status": "Enabled" - }, - "antivirus": { - "quick_scan": { - "signature_version": "1.391.2951.0" - }, - "full_scan": { - "signature_version": "" - }, - "status": "Enabled" - }, - "behavior_monitor": { - "status": "Enabled" - }, - "antispyware": { - "signature_version": "1.391.3001.0", - "status": "Enabled" - }, - "nis": { - "signature_version": "1.391.3001.0", - "engine_version": "1.1.23050.3", - "status": "Enabled" - }, - "antimalware": { - "product_version": "4.18.23050.5", - "engine_version": "1.1.23050.3", - "status": "Enabled" - }, - "real_time_protection": { - "status": "Enabled" - }, - "ioav_protection": { - "status": "Enabled" - } - } - }, - "log": { - "file": { - "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_epp_info.json" - }, - "offset": 0 - }, - "elastic_agent": { - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "version": "8.6.2", - "snapshot": false - }, - "script": { - "current_duration": "1286.30", - "name": "Get-TychonEppSetting.ps1", - "start": "2023-06-29T14:36:19Z", - "type": "powershell", - "version": "0.1.0", - "current_time": "2023-06-29T14:36:20Z" - }, - "tags": [ - "tychon-epp-info" - ], - "input": { - "type": "log" - }, - "@timestamp": "2023-06-29T15:00:58.875284827Z", - "ecs": { - "version": "8.5.1" - }, - "data_stream": { - "namespace": "default", - "type": "logs", - "dataset": "tychon.tychon_epp" - }, - "host": { - "workgroup": "WORKGROUP", - "os": { - "build": "22000.2057", - "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", - "organization": "", - "name": "Windows 11 Education N", - "description": "", - "type": "windows", - "family": "windows", - "version": "10.0", - "platform": "windows" - }, - "ip": [ - "fe80::40d1:5287:42b9:5645", - "10.1.9.112" - ], - "type": "Workstation", - "mac": [ - "00-0C-29-EF-9A-EB" - ], - "uptime": "762599", - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "hostname": "DESKTOP-TIUKL1R", - "ipv4": "10.1.9.112", - "oem": { - "model": "", - "manufacturer": "" - }, - "ipv6": "fe80::40d1:5287:42b9:5645", - "domain": "", - "name": "DESKTOP-TIUKL1R", - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", - "architecture": "x86_64", - "hardware": { - "owner": "dcuser", - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "manufacturer": "VMware, Inc." - } - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "event": { - "agent_id_status": "verified", - "ingested": "2023-06-29T15:01:01Z", - "timezone": "-04:00", - "kind": "state", - "module": "tychon", - "category": "host", - "dataset": "tychon.tychon_epp" - } - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index e373c16af3c..dd6d4f55c5b 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -1,6 +1,8 @@ --- description: Pipeline for EPP processors: + - dot_expander: + field: "*" - set: if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" field: 'host.id' @@ -11,12 +13,15 @@ processors: - set: field: '_id' value: '{{id}}' + - split: + field: host.ip + separator: "," - set: field: '@timestamp' value: '{{_ingest.timestamp}}' - set: field: ecs.version - value: '8.5.1' + value: '8.8.0' - set: field: event.kind value: state @@ -25,10 +30,16 @@ processors: value: tychon - set: field: event.category - value: host + value: [host] - set: field: event.ingested value: '{{_ingest.timestamp}}' + - convert: + field: host.uptime + type: long + - convert: + field: script.current_duration + type: float on_failure: - set: field: error.message diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json new file mode 100644 index 00000000000..a57731c428a --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json @@ -0,0 +1,60 @@ +{ + "events": [ + { + "rule.benchmark.profile.id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules", + "benchmark.name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.weight": "10.0", + "rule.title": "", + "rule.id": "", + "rule.oval.refid": "", + "script.type": "powershell", + "host.os.build": "22000", + "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "rule.name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "script.version": "0.1.0", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "benchmark.guid": "", + "script.start": "2023-06-15T20:14:11Z", + "host.os.name": "Microsoft Windows 11 Education N", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "rule.test_result": "not applicable", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "benchmark.hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "host.hardware.owner": "dcuser", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.ipv4": "10.1.9.112", + "host.os.version": "10.0.22000", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "script.name": "Invoke-TychonStigBenchmarkScan.ps1", + "oval.id": "oval:mil.disa.stig.windows11:def:253254", + "rule.finding_id": "", + "rule.oval.class": "compliance", + "rule.benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.benchmark.guid": "", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "oval.class": "compliance", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "oval.refid": "", + "rule.severity": "medium", + "host.oem.model": "", + "host.uptime": "139370", + "benchmark.version": "1.2", + "script.current_time": "2023-06-15T20:19:35Z", + "benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.oval.id": "oval:mil.disa.stig.windows11:def:253254", + "benchmark.generated_utc": "2023-03-28T17:40:48", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "324194.34", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json deleted file mode 100644 index c6ce9c888a9..00000000000 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "events": [ - { - "@timestamp": "2023-06-29T15:00:58.875284827Z", - "message": "{\"rule.benchmark.profile.id\":\"xccdf_mil.disa.stig_profile_Disable_Slow_Rules\",\"benchmark.name\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.weight\":\"10.0\",\"rule.title\":\"\",\"rule.id\":\"\",\"rule.oval.refid\":\"\",\"script.type\":\"powershell\",\"host.os.build\":\"22000\",\"host.ip\":\"10.1.9.112,fe80::40d1:5287:42b9:5645\",\"rule.name\":\"xccdf_mil.disa.stig_rule_SV-253254r828846_rule\",\"script.version\":\"0.1.0\",\"host.hostname\":\"DESKTOP-TIUKL1R\",\"host.hardware.manufacturer\":\"VMware, Inc.\",\"benchmark.guid\":\"\",\"script.start\":\"2023-06-15T20:14:11Z\",\"host.os.name\":\"Microsoft Windows 11 Education N\",\"id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379\",\"rule.test_result\":\"not applicable\",\"host.os.organization\":\"\",\"host.hardware.cpu.caption\":\"Intel64 Family 6 Model 45 Stepping 7\",\"benchmark.hash\":\"B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379\",\"host.hardware.owner\":\"dcuser\",\"host.workgroup\":\"WORKGROUP\",\"host.hardware.serial_number\":\"VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb\",\"host.ipv4\":\"10.1.9.112\",\"host.os.version\":\"10.0.22000\",\"host.hardware.bios.name\":\"Phoenix Technologies LTD\",\"host.type\":\"Workstation\",\"script.name\":\"Invoke-TychonStigBenchmarkScan.ps1\",\"oval.id\":\"oval:mil.disa.stig.windows11:def:253254\",\"rule.finding_id\":\"\",\"rule.oval.class\":\"compliance\",\"rule.benchmark.title\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.benchmark.guid\":\"\",\"host.id\":\"bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP\",\"oval.class\":\"compliance\",\"host.biossn\":\"1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB\",\"host.mac\":\"00:0C:29:EF:9A:EB\",\"oval.refid\":\"\",\"rule.severity\":\"medium\",\"host.oem.model\":\"\",\"host.uptime\":\"139370\",\"benchmark.version\":\"1.2\",\"script.current_time\":\"2023-06-15T20:19:35Z\",\"benchmark.title\":\"scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml\",\"rule.oval.id\":\"oval:mil.disa.stig.windows11:def:253254\",\"benchmark.generated_utc\":\"2023-03-28T17:40:48\",\"host.oem.manufacturer\":\"\",\"host.os.description\":\"\",\"script.current_duration\":\"324194.34\",\"host.ipv6\":\"fe80::40d1:5287:42b9:5645\",\"host.hardware.bios.version\":\"6.00\",\"host.domain\":\"\",\"host.os.family\":\"Windows\"}" - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json similarity index 51% rename from packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json rename to packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 55f85bd25f3..d79663e45aa 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-generated.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,116 +1,30 @@ { "expected": [ { - "agent": { - "name": "DESKTOP-TIUKL1R", - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "type": "filebeat", - "ephemeral_id": "f23ef062-3619-4369-976e-42d98f49ac86", - "version": "8.6.2" - }, - "log": { - "file": { - "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\tychon_stig_info.json" - }, - "offset": 712779 - }, - "oval": { - "id": "oval:mil.disa.stig.windows11:def:253254", - "refid": "", - "class": "compliance" - }, - "elastic_agent": { - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "version": "8.6.2", - "snapshot": false - }, - "rule": { - "severity": "medium", - "result": "not applicable", - "finding_id": "", - "oval": { - "refid": "", - "id": "oval:mil.disa.stig.windows11:def:253254", - "class": "compliance" - }, - "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", - "weight": "10.0", - "id": "", - "title": "", - "benchmark": { - "profile": { - "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" - }, - "guid": "", - "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" - } - }, - "script": { - "current_duration": "347397.53", - "name": "Invoke-TychonStigBenchmarkScan.ps1", - "start": "2023-06-23T03:05:45Z", - "type": "powershell", - "version": "0.1.0", - "current_time": "2023-06-23T03:11:33Z" - }, + "@timestamp": "2023-07-05T13:31:29.436209572Z", "benchmark": { "generated_utc": "2023-03-28T17:40:48", - "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", "guid": "", + "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "version": "1.2", - "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379" - }, - "tags": [ - "tychon-stig-info" - ], - "input": { - "type": "log" + "version": "1.2" }, - "@timestamp": "2023-06-29T15:00:58.875284827Z", "ecs": { - "version": "8.5.1" + "version": "8.8.0" }, - "data_stream": { - "namespace": "default", - "type": "logs", - "dataset": "tychon.tychon_stig" + "event": { + "category": [ + "host" + ], + "ingested": "2023-07-05T13:31:29.436209572Z", + "kind": "state", + "module": "tychon" }, "host": { - "workgroup": "WORKGROUP", - "os": { - "build": "22000.2057", - "kernel": "10.0.22000.2057 (WinBuild.160101.0800)", - "organization": "", - "name": "Windows 11 Education N", - "description": "", - "type": "windows", - "family": "windows", - "version": "10.0", - "platform": "windows" - }, - "ip": [ - "fe80::40d1:5287:42b9:5645", - "10.1.9.112" - ], - "type": "Workstation", - "mac": [ - "00-0C-29-EF-9A-EB" - ], - "uptime": "202779", "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "hostname": "DESKTOP-TIUKL1R", - "ipv4": "10.1.9.112", - "oem": { - "model": "", - "manufacturer": "" - }, - "ipv6": "fe80::40d1:5287:42b9:5645", "domain": "", - "name": "DESKTOP-TIUKL1R", - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", "hardware": { - "owner": "dcuser", "bios": { "name": "Phoenix Technologies LTD", "version": "6.00" @@ -118,20 +32,69 @@ "cpu": { "caption": "Intel64 Family 6 Model 45 Stepping 7" }, - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "manufacturer": "VMware, Inc." + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": [ + "10.1.9.112", + "fe80::40d1:5287:42b9:5645" + ], + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00:0C:29:EF:9A:EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" }, - "architecture": "x86_64" + "type": "Workstation", + "uptime": 139370, + "workgroup": "WORKGROUP" }, "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "event": { - "agent_id_status": "verified", - "ingested": "2023-06-29T15:01:05Z", - "timezone": "-04:00", - "kind": "state", - "module": "tychon", - "category": "host", - "dataset": "tychon.tychon_stig" + "oval": { + "class": "compliance", + "id": "oval:mil.disa.stig.windows11:def:253254", + "refid": "" + }, + "rule": { + "benchmark": { + "guid": "", + "profile": { + "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" + }, + "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" + }, + "finding_id": "", + "id": "", + "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "oval": { + "class": "compliance", + "id": "oval:mil.disa.stig.windows11:def:253254", + "refid": "" + }, + "result": "not applicable", + "severity": "medium", + "title": "", + "weight": 10.0 + }, + "script": { + "current_duration": 324194.34, + "current_time": "2023-06-15T20:19:35Z", + "name": "Invoke-TychonStigBenchmarkScan.ps1", + "start": "2023-06-15T20:14:11Z", + "type": "powershell", + "version": "0.1.0" } } ] diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml b/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml deleted file mode 100644 index f7c11099fd8..00000000000 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/test-common-config.yml +++ /dev/null @@ -1,4 +0,0 @@ -fields: - "@timestamp": "2023-06-29T15:00:58.875284827Z" - tags: - - preserve_original_event diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 0ef19f821c9..39e852c5d12 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -1,6 +1,8 @@ --- description: Pipeline for parsing TYCHON Windows Patches processors: + - dot_expander: + field: "*" - set: if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" field: 'host.id' @@ -10,22 +12,24 @@ processors: field: 'tychon' - set: if: "!(ctx.containsKey('id'))" - field: 'id' + field: id value: '{{host.id}}' - set: - field: '_id' + field: _id value: '{{id}}' - set: field: '@timestamp' value: '{{_ingest.timestamp}}' - set: - field: 'rule.result' + if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" + field: rule.result value: '{{rule.test_result}}' - remove: - field: 'rule.test_result' + if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" + field: rule.test_result - set: field: ecs.version - value: '8.5.1' + value: '8.8.0' - set: field: event.kind value: state @@ -34,10 +38,22 @@ processors: value: tychon - set: field: event.category - value: host + value: [host] - set: field: event.ingested value: '{{_ingest.timestamp}}' + - split: + field: host.ip + separator: "," + - convert: + field: host.uptime + type: long + - convert: + field: script.current_duration + type: float + - convert: + field: rule.weight + type: float on_failure: - set: field: error.message diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 6f0664b13fb..de898836fa7 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -53,7 +53,7 @@ description: Benchmark Severity Status. type: keyword - name: result - description: Benchmark Test Results. + description: Benchmark Rule Results. type: keyword - name: title description: Benchmark Rule Title. From 0890a32cf539e38a8864a7592509bb2d0ba43e03 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Fri, 7 Jul 2023 15:42:44 -0400 Subject: [PATCH 22/65] Moving LIcnese.txt to the root directory --- packages/tychon/LICENSE.txt => LICENSE.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/tychon/LICENSE.txt => LICENSE.txt (100%) diff --git a/packages/tychon/LICENSE.txt b/LICENSE.txt similarity index 100% rename from packages/tychon/LICENSE.txt rename to LICENSE.txt From 3113785c8320324a0a335c5b960e2ca7d9f287da Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:58:38 +0000 Subject: [PATCH 23/65] Update Changes from PR 6701 --- .../tychon_cve/_dev/test/pipeline/test-cve.json | 3 ++- .../test/pipeline/test-cve.json-expected.json | 9 +++++---- .../tychon_cve/_dev/test/test-cve.json-config.yml | 1 + .../elasticsearch/ingest_pipeline/default.yml | 12 +++++++++--- .../tychon/data_stream/tychon_cve/fields/ecs.yml | 7 +++++++ .../data_stream/tychon_cve/fields/fields.yml | 15 ++------------- .../tychon/data_stream/tychon_cve/manifest.yml | 8 -------- .../tychon_epp/_dev/test/pipeline/test-epp.json | 3 ++- .../_dev/test/pipeline/test-epp.json-config.yml | 1 + .../test/pipeline/test-epp.json-expected.json | 5 +++-- .../elasticsearch/ingest_pipeline/default.yml | 8 +++++++- .../tychon/data_stream/tychon_epp/fields/ecs.yml | 7 +++++++ .../data_stream/tychon_epp/fields/fields.yml | 13 +------------ .../tychon/data_stream/tychon_epp/manifest.yml | 10 +--------- .../data_stream/tychon_stig/_dev/test-stig.json | 3 ++- .../_dev/test/pipeline/test-stig.json-config.yml | 1 + .../test/pipeline/test-stig.json-expected.json | 9 +++++---- .../elasticsearch/ingest_pipeline/default.yml | 8 +++++++- .../tychon/data_stream/tychon_stig/fields/ecs.yml | 7 +++++++ .../data_stream/tychon_stig/fields/fields.yml | 13 +------------ .../tychon/data_stream/tychon_stig/manifest.yml | 10 +--------- 21 files changed, 72 insertions(+), 81 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json index a968a6c9bcd..48102616f71 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -48,4 +48,5 @@ "vulnerability.year": "2013" } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index c19e2ff771b..d0c4773dc27 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-05T13:31:28.772195022Z", + "@timestamp": "2023-07-06T19:09:34.276302828Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "vulnerability" ], - "ingested": "2023-07-05T13:31:28.772195022Z", + "ingested": "2023-07-06T19:09:34.276302828Z", "kind": "state", "module": "tychon", "outcome": "failure" @@ -37,7 +37,7 @@ ], "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", + "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", "model": "" @@ -88,4 +88,5 @@ } } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml index 3187160a159..cc4eab12c27 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index f9c16f5402d..52aeab81253 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -32,13 +32,15 @@ processors: field: host.ip separator: "," - script: - source: if(ctx.vulnerability.result == 'fail'){ + source: if(ctx.vulnerability?.result == 'fail'){ ctx.event.outcome = "failure" - }else if(ctx.vulnerability.result == 'pass'){ + }else if(ctx.vulnerability?.result == 'pass'){ ctx.event.outcome = "success" }else{ ctx.event.outcome = "unknown" } + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - set: field: event.ingested value: "{{_ingest.timestamp}}" @@ -68,5 +70,9 @@ processors: value: "{{vulnerability.version}}" on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: "{{ _ingest.on_failure_message }}" \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index 414a6a25272..f2dd36504fd 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -14,16 +14,22 @@ name: event.agent_id_status - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: event.dataset - external: ecs name: event.id +- external: ecs + name: event.ingested - external: ecs name: event.kind - external: ecs name: event.outcome - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.architecture - external: ecs @@ -56,3 +62,4 @@ name: vulnerability.score.version - external: ecs name: vulnerability.severity + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index dafc7b54ae8..c306c9656ea 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -33,7 +33,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: long + type: float - name: current_time description: Current datetime. type: date @@ -61,15 +61,4 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: message - description: Message content. - type: match_only_text + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index a9d9750abec..ab827e673ed 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -23,14 +23,6 @@ streams: show_user: false default: - tychon-cve - - 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 diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json index c2f3d10314c..56393dbe70c 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -50,4 +50,5 @@ "host.os.family": "Windows" } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml index 302199c74f9..e72281ddac3 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 0c75f73167c..ad268b5abb5 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -36,7 +36,7 @@ ], "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", + "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", "model": "" @@ -103,4 +103,5 @@ } } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index dd6d4f55c5b..a83bbb3146f 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -37,10 +37,16 @@ processors: - convert: field: host.uptime type: long + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - convert: field: script.current_duration type: float on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: '{{ _ingest.on_failure_message }}' \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index 6973ee9ac08..8fd10f807e4 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -14,10 +14,14 @@ name: ecs.version - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: agent.ephemeral_id - external: ecs name: agent.id +- external: ecs + name: event.ingested - external: ecs name: agent.name - external: ecs @@ -30,6 +34,8 @@ name: event.dataset - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.os.type - external: ecs @@ -44,3 +50,4 @@ name: host.os.kernel - external: ecs name: host.os.platform + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 9629bdb81c9..aba5a7a2daf 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -101,15 +101,4 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: message - description: Message content. - type: match_only_text + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index d995ce56e22..cfd691f4fd0 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -22,14 +22,6 @@ streams: show_user: false default: - tychon-epp-info - - 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 @@ -38,4 +30,4 @@ streams: 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. - + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json index a57731c428a..c62a5f5899a 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json @@ -57,4 +57,5 @@ "host.os.family": "Windows" } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml index 302199c74f9..e72281ddac3 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index d79663e45aa..7703aa69994 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-05T13:31:29.436209572Z", + "@timestamp": "2023-07-06T19:09:34.703782139Z", "benchmark": { "generated_utc": "2023-03-28T17:40:48", "guid": "", @@ -17,7 +17,7 @@ "category": [ "host" ], - "ingested": "2023-07-05T13:31:29.436209572Z", + "ingested": "2023-07-06T19:09:34.703782139Z", "kind": "state", "module": "tychon" }, @@ -44,7 +44,7 @@ ], "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", + "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", "model": "" @@ -98,4 +98,5 @@ } } ] -} \ No newline at end of file +} + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 39e852c5d12..42602dab138 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -48,6 +48,8 @@ processors: - convert: field: host.uptime type: long + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - convert: field: script.current_duration type: float @@ -56,5 +58,9 @@ processors: type: float on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: '{{ _ingest.on_failure_message }}' \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index ee9115003a9..7d0cb9f058c 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -16,10 +16,14 @@ name: ecs.version - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: agent.ephemeral_id - external: ecs name: agent.id +- external: ecs + name: event.ingested - external: ecs name: agent.name - external: ecs @@ -32,6 +36,8 @@ name: event.dataset - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.os.type - external: ecs @@ -46,3 +52,4 @@ name: host.os.kernel - external: ecs name: host.os.platform + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index de898836fa7..1b6ec9e9b6f 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -118,15 +118,4 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: error.message - description: Error Message Content. - type: match_only_text + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index 03e33073008..95baf5f1b36 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -22,14 +22,6 @@ streams: show_user: false default: - tychon-stig-info - - 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 @@ -38,4 +30,4 @@ streams: 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. - + \ No newline at end of file From 4bbed691dacdd078b86a044f4ef1a931771d79f5 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Tue, 11 Jul 2023 11:22:41 +0000 Subject: [PATCH 24/65] Several code recommendation changes based upon PR comments --- packages/tychon/_dev/build/docs/README.md | 64 +++---- .../{ => pipeline}/test-cve.json-config.yml | 3 +- .../test/pipeline/test-cve.json-expected.json | 178 +++++++++--------- .../tychon_cve/agent/stream/stream.yml.hbs | 7 +- .../elasticsearch/ingest_pipeline/default.yml | 12 +- .../data_stream/tychon_cve/fields/ecs.yml | 6 + .../data_stream/tychon_cve/fields/fields.yml | 14 +- .../data_stream/tychon_cve/manifest.yml | 8 - .../test/pipeline/test-epp.json-config.yml | 1 + .../test/pipeline/test-epp.json-expected.json | 2 +- .../tychon_epp/agent/stream/stream.yml.hbs | 3 +- .../elasticsearch/ingest_pipeline/default.yml | 8 +- .../data_stream/tychon_epp/fields/ecs.yml | 6 + .../data_stream/tychon_epp/fields/fields.yml | 12 -- .../data_stream/tychon_epp/manifest.yml | 8 - .../_dev/{ => test/pipeline}/test-stig.json | 0 .../pipeline/test-stig.json-expected.json | 6 +- .../elasticsearch/ingest_pipeline/default.yml | 8 +- .../data_stream/tychon_stig/fields/ecs.yml | 6 + .../data_stream/tychon_stig/fields/fields.yml | 12 -- .../data_stream/tychon_stig/manifest.yml | 8 - packages/tychon/manifest.yml | 2 +- 22 files changed, 176 insertions(+), 198 deletions(-) rename packages/tychon/data_stream/tychon_cve/_dev/test/{ => pipeline}/test-cve.json-config.yml (60%) rename packages/tychon/data_stream/tychon_stig/_dev/{ => test/pipeline}/test-stig.json (100%) diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index b43876f6f78..102f25dca8d 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -1,32 +1,32 @@ -# TYCHON Agentless - -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) - -## Compatibility - -* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. -* This integration requires a TYCHON Agentless license. -* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. - - -## Returned Data Fields -### Vulnerablities - -TYCHON scans for endpoint vulenrabilites and returns the results. - -**Exported fields** -{{fields "tychon_cve"}} - -### Endpoint Protection Platform - -TYCHON scans the endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** -{{fields "tychon_epp"}} - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** -{{fields "tychon_stig"}} +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. + + +## Returned Data Fields +### Vulnerablities + +TYCHON scans for endpoint vulenrabilites and returns the results. + +**Exported fields** +{{fields "tychon_cve"}} + +### Endpoint Protection Platform + +TYCHON scans the endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** +{{fields "tychon_epp"}} + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_stig"}} diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml similarity index 60% rename from packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml rename to packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml index 3187160a159..e72281ddac3 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" - event.ingested: ".*" + event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index c19e2ff771b..659c905aaa2 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,91 +1,91 @@ { - "expected": [ - { - "@timestamp": "2023-07-05T13:31:28.772195022Z", - "ecs": { - "version": "8.8.0" - }, - "event": { - "category": [ - "vulnerability" - ], - "ingested": "2023-07-05T13:31:28.772195022Z", - "kind": "state", - "module": "tychon", - "outcome": "failure" - }, - "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "domain": "", - "hardware": { - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" - }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": [ - "10.1.9.112", - "fe80::40d1:5287:42b9:5645" - ], - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", - "oem": { - "manufacturer": "", - "model": "" - }, - "os": { - "build": "22000", - "description": "", - "family": "Windows", - "name": "Microsoft Windows 11 Education N", - "organization": "", - "version": "10.0.22000" - }, - "type": "Workstation", - "uptime": 145287, - "workgroup": "WORKGROUP" - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", - "script": { - "current_duration": 315381.28, - "current_time": "2023-06-15T21:58:02Z", - "name": "Invoke-CveScan.ps1", - "start": "2023-06-15T21:52:47Z", - "type": "powershell", - "version": "0.1.0" - }, - "vulnerability": { - "category": [ - "oval" - ], - "classification": "cvss", - "enumeration": "CVE", - "iava": "2013-A-0227", - "iava_severity": "CAT II", - "id": "CVE-2013-3900", - "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "result": "fail", - "scanner": { - "vendor": "tychon" - }, - "score": { - "base": 7.6, - "version": "2.0" - }, - "severity": "HIGH", - "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", - "version": "1", - "year": 2013 - } - } - ] + "expected": [ + { + "@timestamp": "2023-07-06T19:09:34.276302828Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "vulnerability" + ], + "ingested": "2023-07-06T19:09:34.276302828Z", + "kind": "state", + "module": "tychon", + "outcome": "failure" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": [ + "10.1.9.112", + "fe80::40d1:5287:42b9:5645" + ], + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00-0C-29-EF-9A-EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 145287, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script": { + "current_duration": 315381.28, + "current_time": "2023-06-15T21:58:02Z", + "name": "Invoke-CveScan.ps1", + "start": "2023-06-15T21:52:47Z", + "type": "powershell", + "version": "0.1.0" + }, + "vulnerability": { + "category": [ + "oval" + ], + "classification": "cvss", + "enumeration": "CVE", + "iava": "2013-A-0227", + "iava_severity": "CAT II", + "id": "CVE-2013-3900", + "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "result": "fail", + "scanner": { + "vendor": "tychon" + }, + "score": { + "base": 7.6, + "version": "2.0" + }, + "severity": "HIGH", + "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "version": "1", + "year": 2013 + } + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index 4ffa1421cc1..10abd0996dd 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -1,12 +1,12 @@ paths: -{{#each paths as |path|}} +{{#each paths as |path i|}} - {{path}} {{/each}} tags: {{#if preserve_original_event}} - preserve_original_event {{/if}} -{{#each tags as |tag|}} +{{#each tags as |tag i|}} - {{tag}} {{/each}} {{#contains "forwarded" tags}} @@ -19,5 +19,4 @@ processors: {{/if}} json: keys_under_root: true - expand_keys: true - + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index f9c16f5402d..52aeab81253 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -32,13 +32,15 @@ processors: field: host.ip separator: "," - script: - source: if(ctx.vulnerability.result == 'fail'){ + source: if(ctx.vulnerability?.result == 'fail'){ ctx.event.outcome = "failure" - }else if(ctx.vulnerability.result == 'pass'){ + }else if(ctx.vulnerability?.result == 'pass'){ ctx.event.outcome = "success" }else{ ctx.event.outcome = "unknown" } + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - set: field: event.ingested value: "{{_ingest.timestamp}}" @@ -68,5 +70,9 @@ processors: value: "{{vulnerability.version}}" on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: "{{ _ingest.on_failure_message }}" \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index 414a6a25272..31ba2470b1f 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -14,16 +14,22 @@ name: event.agent_id_status - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: event.dataset - external: ecs name: event.id +- external: ecs + name: event.ingested - external: ecs name: event.kind - external: ecs name: event.outcome - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.architecture - external: ecs diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index dafc7b54ae8..73e3f26b98b 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -33,7 +33,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: long + type: float - name: current_time description: Current datetime. type: date @@ -61,15 +61,3 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: message - description: Message content. - type: match_only_text diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index a9d9750abec..ab827e673ed 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -23,14 +23,6 @@ streams: show_user: false default: - tychon-cve - - 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 diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml index 302199c74f9..bec4f152d4a 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 0c75f73167c..4770163a06e 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -36,7 +36,7 @@ ], "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", + "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs index 10abd0996dd..f08cd0ef71d 100644 --- a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs @@ -6,7 +6,8 @@ tags: {{#if preserve_original_event}} - preserve_original_event {{/if}} -{{#each tags as |tag i|}} +{{#each tags as |tag|}} + - {{tag}} {{/each}} {{#contains "forwarded" tags}} diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index dd6d4f55c5b..99544a8a444 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -37,10 +37,16 @@ processors: - convert: field: host.uptime type: long + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - convert: field: script.current_duration type: float on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: '{{ _ingest.on_failure_message }}' \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index 6973ee9ac08..05e44a34ee0 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -14,10 +14,14 @@ name: ecs.version - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: agent.ephemeral_id - external: ecs name: agent.id +- external: ecs + name: event.ingested - external: ecs name: agent.name - external: ecs @@ -30,6 +34,8 @@ name: event.dataset - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.os.type - external: ecs diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 9629bdb81c9..ca1d073a418 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -101,15 +101,3 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: message - description: Message content. - type: match_only_text diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index d995ce56e22..021373c406c 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -22,14 +22,6 @@ streams: show_user: false default: - tychon-epp-info - - 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 diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json similarity index 100% rename from packages/tychon/data_stream/tychon_stig/_dev/test-stig.json rename to packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index d79663e45aa..63f25a14017 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-05T13:31:29.436209572Z", + "@timestamp": "2023-07-06T19:09:34.703782139Z", "benchmark": { "generated_utc": "2023-03-28T17:40:48", "guid": "", @@ -17,7 +17,7 @@ "category": [ "host" ], - "ingested": "2023-07-05T13:31:29.436209572Z", + "ingested": "2023-07-06T19:09:34.703782139Z", "kind": "state", "module": "tychon" }, @@ -44,7 +44,7 @@ ], "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00:0C:29:EF:9A:EB", + "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 39e852c5d12..d85a5e978f7 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -48,6 +48,8 @@ processors: - convert: field: host.uptime type: long + - script: + source: ctx.host.mac = ctx.host.mac.replace(':','-') - convert: field: script.current_duration type: float @@ -56,5 +58,9 @@ processors: type: float on_failure: - set: + field: event.kind + value: pipeline_error + - append: field: error.message - value: '{{ _ingest.on_failure_message }}' \ No newline at end of file + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index ee9115003a9..7329d8fd21c 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -16,10 +16,14 @@ name: ecs.version - external: ecs name: event.category +- external: ecs + name: event.created - external: ecs name: agent.ephemeral_id - external: ecs name: agent.id +- external: ecs + name: event.ingested - external: ecs name: agent.name - external: ecs @@ -32,6 +36,8 @@ name: event.dataset - external: ecs name: event.timezone +- external: ecs + name: error.message - external: ecs name: host.os.type - external: ecs diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index de898836fa7..d4d28c0b766 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -118,15 +118,3 @@ - name: version description: Elastic Agent Version. type: keyword -- name: event - type: group - fields: - - name: created - description: Event Creation Datetime. - type: date - - name: ingested - description: Event Ingestion Datetime. - type: date -- name: error.message - description: Error Message Content. - type: match_only_text diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index 03e33073008..e4d2129d452 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -22,14 +22,6 @@ streams: show_user: false default: - tychon-stig-info - - 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 diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index d2455eea0ce..429b6843ba6 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.10 +version: 0.0.1 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From f67356bc643a2efd591309f12ec3b39b9eee9624 Mon Sep 17 00:00:00 2001 From: skidmoco Date: Tue, 11 Jul 2023 18:38:49 +0000 Subject: [PATCH 25/65] Removal of host.ip~, replaced with tychon.ip~. --- .../_dev/test/pipeline/test-cve.json-expected.json | 6 ++++-- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 6 ++++++ packages/tychon/data_stream/tychon_cve/fields/agent.yml | 6 ------ packages/tychon/data_stream/tychon_cve/fields/fields.yml | 9 +++++++++ .../_dev/test/pipeline/test-epp.json-expected.json | 6 ++++-- .../tychon_epp/elasticsearch/ingest_pipeline/default.yml | 6 ++++++ packages/tychon/data_stream/tychon_epp/fields/agent.yml | 6 ------ packages/tychon/data_stream/tychon_epp/fields/fields.yml | 9 +++++++++ .../_dev/test/pipeline/test-stig.json-expected.json | 8 +++++--- .../elasticsearch/ingest_pipeline/default.yml | 6 ++++++ packages/tychon/data_stream/tychon_stig/fields/agent.yml | 6 ------ .../tychon/data_stream/tychon_stig/fields/fields.yml | 9 +++++++++ 12 files changed, 58 insertions(+), 25 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index 659c905aaa2..d257f139cd7 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -35,8 +35,6 @@ "10.1.9.112", "fe80::40d1:5287:42b9:5645" ], - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", @@ -63,6 +61,10 @@ "type": "powershell", "version": "0.1.0" }, + "tychon": { + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645" + }, "vulnerability": { "category": [ "oval" diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 52aeab81253..621735453d2 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -13,6 +13,12 @@ processors: - set: field: _id value: "{{id}}" + - set: + field: tychon.ipv4 + value: "{{host.ipv4}}" + - set: + field: tychon.ipv6 + value: "{{host.ipv6}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index 5c48fd15007..e380f9c03e8 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -111,12 +111,6 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 - description: Host IPv4. - type: keyword - - name: ipv6 - description: Host IPv6. - type: keyword - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 73e3f26b98b..c3eb7390382 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -61,3 +61,12 @@ - name: version description: Elastic Agent Version. type: keyword +- name: tychon + type: group + fields: + - name: ipv4 + description: Ipv4 Address + type: ip + - name: ipv6 + description: Ipv6 Address + type: ip \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 4770163a06e..6fdd38e9ee3 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -34,8 +34,6 @@ "10.1.9.112", "fe80::40d1:5287:42b9:5645" ], - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", @@ -62,6 +60,10 @@ "type": "powershell", "version": "0.1.0" }, + "tychon": { + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645" + }, "windows_defender": { "service": { "antimalware": { diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 99544a8a444..75a45b36ddc 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -16,6 +16,12 @@ processors: - split: field: host.ip separator: "," + - set: + field: tychon.ipv4 + value: "{{host.ipv4}}" + - set: + field: tychon.ipv6 + value: "{{host.ipv6}}" - set: field: '@timestamp' value: '{{_ingest.timestamp}}' diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index 5c48fd15007..e380f9c03e8 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -111,12 +111,6 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 - description: Host IPv4. - type: keyword - - name: ipv6 - description: Host IPv6. - type: keyword - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index ca1d073a418..db5c5ab7cb4 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -101,3 +101,12 @@ - name: version description: Elastic Agent Version. type: keyword +- name: tychon + type: group + fields: + - name: ipv4 + description: Ipv4 Address + type: ip + - name: ipv6 + description: Ipv6 Address + type: ip diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 63f25a14017..a4908d5faa2 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -42,8 +42,6 @@ "10.1.9.112", "fe80::40d1:5287:42b9:5645" ], - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", "oem": { "manufacturer": "", @@ -95,7 +93,11 @@ "start": "2023-06-15T20:14:11Z", "type": "powershell", "version": "0.1.0" - } + }, + "tychon": { + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index d85a5e978f7..4e874ff0940 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -45,6 +45,12 @@ processors: - split: field: host.ip separator: "," + - set: + field: tychon.ipv4 + value: "{{host.ipv4}}" + - set: + field: tychon.ipv6 + value: "{{host.ipv6}}" - convert: field: host.uptime type: long diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index 5c48fd15007..e380f9c03e8 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -111,12 +111,6 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 - description: Host IPv4. - type: keyword - - name: ipv6 - description: Host IPv6. - type: keyword - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index d4d28c0b766..937f9ed5bde 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -118,3 +118,12 @@ - name: version description: Elastic Agent Version. type: keyword +- name: tychon + type: group + fields: + - name: ipv4 + description: Ipv4 Address + type: ip + - name: ipv6 + description: Ipv6 Address + type: ip From f6c27ea6cb4b01ef5d183e8ccdf015efd13d84e6 Mon Sep 17 00:00:00 2001 From: skidmoco Date: Tue, 11 Jul 2023 18:50:29 +0000 Subject: [PATCH 26/65] added removal of host.ip~ fields to pipeline for each category area --- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 6 ++++++ .../tychon_epp/elasticsearch/ingest_pipeline/default.yml | 6 ++++++ .../tychon_stig/elasticsearch/ingest_pipeline/default.yml | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 621735453d2..3d436425afe 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -19,6 +19,12 @@ processors: - set: field: tychon.ipv6 value: "{{host.ipv6}}" + - remove: + ignore_missing: true + field: host.ipv4 + - remove: + ignore_missing: true + field: host.ipv6 - set: field: "@timestamp" value: "{{_ingest.timestamp}}" diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 75a45b36ddc..3755254cfac 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -22,6 +22,12 @@ processors: - set: field: tychon.ipv6 value: "{{host.ipv6}}" + - remove: + ignore_missing: true + field: host.ipv4 + - remove: + ignore_missing: true + field: host.ipv6 - set: field: '@timestamp' value: '{{_ingest.timestamp}}' diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 4e874ff0940..7c49c153c69 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -51,6 +51,12 @@ processors: - set: field: tychon.ipv6 value: "{{host.ipv6}}" + - remove: + ignore_missing: true + field: host.ipv4 + - remove: + ignore_missing: true + field: host.ipv6 - convert: field: host.uptime type: long From 86439dbdfc53dbc9290b83a2f32fb059e71b8e98 Mon Sep 17 00:00:00 2001 From: skidmoco Date: Wed, 12 Jul 2023 13:21:10 +0000 Subject: [PATCH 27/65] Added requested final file carriage return --- .../tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index 10abd0996dd..aaaca095165 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -19,4 +19,5 @@ processors: {{/if}} json: keys_under_root: true - expand_keys: true \ No newline at end of file + expand_keys: true + \ No newline at end of file From f5734d8d4d7730584714984ada6e4103becb43e1 Mon Sep 17 00:00:00 2001 From: skidmoco Date: Thu, 13 Jul 2023 02:40:37 +0000 Subject: [PATCH 28/65] Remove iteration variable as recommended --- .../tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs | 4 ++-- .../tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs | 2 +- .../data_stream/tychon_stig/agent/stream/stream.yml.hbs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs index aaaca095165..a87e5c5ef98 100644 --- a/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs @@ -1,12 +1,12 @@ paths: -{{#each paths as |path i|}} +{{#each paths as |path|}} - {{path}} {{/each}} tags: {{#if preserve_original_event}} - preserve_original_event {{/if}} -{{#each tags as |tag i|}} +{{#each tags as |tag|}} - {{tag}} {{/each}} {{#contains "forwarded" tags}} diff --git a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs index f08cd0ef71d..90702aae1c6 100644 --- a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs @@ -1,5 +1,5 @@ paths: -{{#each paths as |path i|}} +{{#each paths as |path|}} - {{path}} {{/each}} tags: diff --git a/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs index 7b2e95976fa..9d64e35f110 100644 --- a/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs @@ -1,12 +1,12 @@ paths: -{{#each paths as |path i|}} +{{#each paths as |path|}} - {{path}} {{/each}} tags: {{#if preserve_original_event}} - preserve_original_event {{/if}} -{{#each tags as |tag i|}} +{{#each tags as |tag|}} - {{tag}} {{/each}} {{#contains "forwarded" tags}} From 1723f657278ee8fe38722549c807e5fe438949d8 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:24:17 +0000 Subject: [PATCH 29/65] Added ARF --- packages/tychon/changelog.yml | 9 +- .../_dev/test/pipeline/test-arf.json | 72 +++++++ .../test/pipeline/test-arf.json-expected.json | 72 +++++++ .../_dev/test/test-arf.json-config.yml | 3 + .../tychon_arf/agent/stream/stream.yml.hbs | 22 ++ .../elasticsearch/ingest_pipeline/default.yml | 37 ++++ .../data_stream/tychon_arf/fields/agent.yml | 190 ++++++++++++++++++ .../tychon_arf/fields/base-fields.yml | 21 ++ .../data_stream/tychon_arf/fields/ecs.yml | 2 + .../data_stream/tychon_arf/fields/fields.yml | 12 ++ .../data_stream/tychon_arf/manifest.yml | 41 ++++ .../_dev/test/pipeline/test-cve.json | 5 +- .../test/pipeline/test-cve.json-expected.json | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 3 - .../_dev/test/pipeline/test-epp.json | 5 +- .../test/pipeline/test-epp.json-expected.json | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../tychon_stig/_dev/test-stig.json | 5 +- .../pipeline/test-stig.json-expected.json | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- packages/tychon/manifest.yml | 4 +- 21 files changed, 501 insertions(+), 48 deletions(-) create mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json create mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_arf/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_arf/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_arf/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_arf/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_arf/manifest.yml diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index e9ee6438459..ca09744b732 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,6 +1,11 @@ # newer versions go on top -- version: "0.0.1" +- version: "0.0.11" + changes: + - description: Added ARF + type: enhancement + link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link +- version: "0.0.10" changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement - link: https://github.com/elastic/integrations/pull/6701 + link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json new file mode 100644 index 00000000000..eac148fc985 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json @@ -0,0 +1,72 @@ +{ + "events": [ + { + "agent": { + "name": "DESKTOP-TIUKL1R", + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "type": "filebeat", + "ephemeral_id": "2bf446f4-d97b-4bdd-a532-f0eec67823ca", + "version": "8.6.2" + }, + "log": { + "file": { + "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\arf\\tychon_mer_info-20230726T193909.xml" + }, + "offset": 0 + }, + "elastic_agent": { + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "version": "8.6.2", + "snapshot": false + }, + "message": "", + "tags": [ + "tychon-arf" + ], + "input": { + "type": "log" + }, + "@timestamp": "2023-07-28T17:51:27.156598630Z", + "ecs": { + "version": "8.8.0" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "tychon.tychon_arf" + }, + "host": { + "hostname": "DESKTOP-TIUKL1R", + "os": { + "build": "22000.2176", + "kernel": "10.0.22000.2176 (WinBuild.160101.0800)", + "name": "Windows 11 Education N", + "family": "windows", + "type": "windows", + "version": "10.0", + "platform": "windows" + }, + "ip": [ + "fe80::40d1:5287:42b9:5645", + "10.1.9.112" + ], + "name": "DESKTOP-TIUKL1R", + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", + "mac": [ + "00-0C-29-EF-9A-EB" + ], + "architecture": "x86_64" + }, + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0_tychon_mer_info-20230726T193909.xml", + "event": { + "agent_id_status": "verified", + "ingested": "2023-07-28T17:51:27Z", + "timezone": "-04:00", + "category": [ + "arf" + ], + "dataset": "tychon.tychon_arf" + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json new file mode 100644 index 00000000000..18ad86e21c1 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json @@ -0,0 +1,72 @@ +{ + "expected": [ + { + "agent": { + "name": "DESKTOP-TIUKL1R", + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "type": "filebeat", + "ephemeral_id": "2bf446f4-d97b-4bdd-a532-f0eec67823ca", + "version": "8.6.2" + }, + "log": { + "file": { + "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\arf\\tychon_mer_info-20230726T193909.xml" + }, + "offset": 0 + }, + "elastic_agent": { + "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", + "version": "8.6.2", + "snapshot": false + }, + "message": "", + "tags": [ + "tychon-arf" + ], + "input": { + "type": "log" + }, + "@timestamp": "2023-07-28T17:51:27.156598630Z", + "ecs": { + "version": "8.8.0" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "tychon.tychon_arf" + }, + "host": { + "hostname": "DESKTOP-TIUKL1R", + "os": { + "build": "22000.2176", + "kernel": "10.0.22000.2176 (WinBuild.160101.0800)", + "name": "Windows 11 Education N", + "family": "windows", + "type": "windows", + "version": "10.0", + "platform": "windows" + }, + "ip": [ + "fe80::40d1:5287:42b9:5645", + "10.1.9.112" + ], + "name": "DESKTOP-TIUKL1R", + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", + "mac": [ + "00-0C-29-EF-9A-EB" + ], + "architecture": "x86_64" + }, + "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0_tychon_mer_info-20230726T193909.xml", + "event": { + "agent_id_status": "verified", + "ingested": "2023-07-28T17:51:27Z", + "timezone": "-04:00", + "category": [ + "arf" + ], + "dataset": "tychon.tychon_arf" + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml b/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..067e06cfc36 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs @@ -0,0 +1,22 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +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}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..396d0d94bd4 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,37 @@ +--- +description: Pipeline for parsing TYCHON ARF Results +processors: + - dot_expander: + field: "*" + - set: + if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") + field: host.id + value: "{{tychon.id}}" + - remove: + if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") + field: 'tychon' + - script: + source: ctx.id=ctx.host.id + "_" + ctx.log.file.path.splitOnToken('\\')[5] + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.category + value: [arf] + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/fields/agent.yml b/packages/tychon/data_stream/tychon_arf/fields/agent.yml new file mode 100644 index 00000000000..5c48fd15007 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/fields/agent.yml @@ -0,0 +1,190 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + description: Host IPv4. + type: keyword + - name: ipv6 + description: Host IPv6. + type: keyword + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml b/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/data_stream/tychon_arf/fields/ecs.yml b/packages/tychon/data_stream/tychon_arf/fields/ecs.yml new file mode 100644 index 00000000000..32b642ce16c --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/fields/ecs.yml @@ -0,0 +1,2 @@ +- external: ecs + name: ecs.version diff --git a/packages/tychon/data_stream/tychon_arf/fields/fields.yml b/packages/tychon/data_stream/tychon_arf/fields/fields.yml new file mode 100644 index 00000000000..3467c3de3a2 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/fields/fields.yml @@ -0,0 +1,12 @@ +- name: id + description: Tychon Unique ARF Id. + type: keyword +- name: message + description: Message content. + type: match_only_text +- name: log.file.path + description: log file path + type: keyword +- name: tags + description: tags + type: keyword \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/manifest.yml b/packages/tychon/data_stream/tychon_arf/manifest.yml new file mode 100644 index 00000000000..9efe6432eba --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/manifest.yml @@ -0,0 +1,41 @@ +title: ARF Data +type: logs +streams: + - input: logfile + title: ARF Data + description: ARF Data + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: ARF Data + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\arf\*.xml + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-arf + - 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/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json index 48102616f71..c374a3da522 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -11,7 +11,7 @@ "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", "host.hostname": "DESKTOP-TIUKL1R", "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "host.ip": "10.1.9.112", "host.ipv4": "10.1.9.112", "host.ipv6": "fe80::40d1:5287:42b9:5645", "host.mac": "00:0C:29:EF:9A:EB", @@ -48,5 +48,4 @@ "vulnerability.year": "2013" } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index d0c4773dc27..9e0c2839baf 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-06T19:09:34.276302828Z", + "@timestamp": "2023-07-28T18:14:38.394883461Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "vulnerability" ], - "ingested": "2023-07-06T19:09:34.276302828Z", + "ingested": "2023-07-28T18:14:38.394883461Z", "kind": "state", "module": "tychon", "outcome": "failure" @@ -31,10 +31,7 @@ }, "hostname": "DESKTOP-TIUKL1R", "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": [ - "10.1.9.112", - "fe80::40d1:5287:42b9:5645" - ], + "ip": "10.1.9.112", "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", @@ -88,5 +85,4 @@ } } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 52aeab81253..d41c3f5800c 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -28,9 +28,6 @@ processors: - set: field: event.category value: [vulnerability] - - split: - field: host.ip - separator: "," - script: source: if(ctx.vulnerability?.result == 'fail'){ ctx.event.outcome = "failure" diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json index 56393dbe70c..0b8a26266de 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -6,7 +6,7 @@ "windows_defender.service.antispyware.signature_version": "1.391.1546.0", "script.type": "powershell", "host.os.build": "22000", - "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "host.ip": "10.1.9.112", "windows_defender.service.antivirus.quick_scan.signature_version": "1.391.1470.0", "host.hostname": "DESKTOP-TIUKL1R", "host.hardware.manufacturer": "VMware, Inc.", @@ -50,5 +50,4 @@ "host.os.family": "Windows" } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index ad268b5abb5..9eca4e0f51d 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-06T19:09:34.495470581Z", + "@timestamp": "2023-07-28T18:14:38.878742881Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "host" ], - "ingested": "2023-07-06T19:09:34.495470581Z", + "ingested": "2023-07-28T18:14:38.878742881Z", "kind": "state", "module": "tychon" }, @@ -30,10 +30,7 @@ }, "hostname": "DESKTOP-TIUKL1R", "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": [ - "10.1.9.112", - "fe80::40d1:5287:42b9:5645" - ], + "ip": "10.1.9.112", "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", @@ -103,5 +100,4 @@ } } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index a83bbb3146f..b58e313c779 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -13,9 +13,6 @@ processors: - set: field: '_id' value: '{{id}}' - - split: - field: host.ip - separator: "," - set: field: '@timestamp' value: '{{_ingest.timestamp}}' @@ -49,4 +46,4 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json index c62a5f5899a..d8b1adf8574 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test-stig.json @@ -9,7 +9,7 @@ "rule.oval.refid": "", "script.type": "powershell", "host.os.build": "22000", - "host.ip": "10.1.9.112,fe80::40d1:5287:42b9:5645", + "host.ip": "10.1.9.112", "rule.name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", "script.version": "0.1.0", "host.hostname": "DESKTOP-TIUKL1R", @@ -57,5 +57,4 @@ "host.os.family": "Windows" } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 7703aa69994..4837d4948a2 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-06T19:09:34.703782139Z", + "@timestamp": "2023-07-28T18:14:39.219921509Z", "benchmark": { "generated_utc": "2023-03-28T17:40:48", "guid": "", @@ -17,7 +17,7 @@ "category": [ "host" ], - "ingested": "2023-07-06T19:09:34.703782139Z", + "ingested": "2023-07-28T18:14:39.219921509Z", "kind": "state", "module": "tychon" }, @@ -38,10 +38,7 @@ }, "hostname": "DESKTOP-TIUKL1R", "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": [ - "10.1.9.112", - "fe80::40d1:5287:42b9:5645" - ], + "ip": "10.1.9.112", "ipv4": "10.1.9.112", "ipv6": "fe80::40d1:5287:42b9:5645", "mac": "00-0C-29-EF-9A-EB", @@ -98,5 +95,4 @@ } } ] -} - \ No newline at end of file +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 42602dab138..cc176a0e5e7 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -42,9 +42,6 @@ processors: - set: field: event.ingested value: '{{_ingest.timestamp}}' - - split: - field: host.ip - separator: "," - convert: field: host.uptime type: long @@ -63,4 +60,4 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file + \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index d2455eea0ce..e1d7b316894 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.10 +version: 0.0.11 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. @@ -32,4 +32,4 @@ policy_templates: title: Tychon description: Tychon owner: - github: elastic/security-external-integrations + github: elastic/integrations From c4404a80441369044095c1d83473a5ce1a373189 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Mon, 31 Jul 2023 11:20:32 +0000 Subject: [PATCH 30/65] Updating description of vulnerability ds --- packages/tychon/data_stream/tychon_cve/manifest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index ab827e673ed..c4ab3376931 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -3,7 +3,7 @@ type: logs streams: - input: logfile title: Vulnerabilites - description: Vulnerabilites + description: TYCHON reports on tens of thousands of Vulnerabilites, this data stream reads in the results as upserts to your Elastic database. template_path: stream.yml.hbs vars: - name: paths From 9a76695cfdc3a3de4337bad374e786743943f763 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:42:53 +0000 Subject: [PATCH 31/65] Converted pipeline method to gsub --- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 6 ++++-- .../tychon_epp/elasticsearch/ingest_pipeline/default.yml | 6 ++++-- .../tychon_stig/elasticsearch/ingest_pipeline/default.yml | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index d41c3f5800c..ddacab8ca67 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -36,8 +36,10 @@ processors: }else{ ctx.event.outcome = "unknown" } - - script: - source: ctx.host.mac = ctx.host.mac.replace(':','-') + - gsub: + field: host.mac + pattern: ":" + replacement: "-" - set: field: event.ingested value: "{{_ingest.timestamp}}" diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index b58e313c779..cb95027c45f 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -34,8 +34,10 @@ processors: - convert: field: host.uptime type: long - - script: - source: ctx.host.mac = ctx.host.mac.replace(':','-') + - gsub: + field: host.mac + pattern: ":" + replacement: "-" - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index cc176a0e5e7..d6031dc0855 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -45,8 +45,10 @@ processors: - convert: field: host.uptime type: long - - script: - source: ctx.host.mac = ctx.host.mac.replace(':','-') + - gsub: + field: host.mac + pattern: ":" + replacement: "-" - convert: field: script.current_duration type: float From f72e9add56e1e2a3947cde1cdac161419b0cc6be Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Tue, 8 Aug 2023 18:16:14 +0000 Subject: [PATCH 32/65] Updated script to yaml pipe syntax --- .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index ddacab8ca67..32e231b9bb3 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -29,7 +29,8 @@ processors: field: event.category value: [vulnerability] - script: - source: if(ctx.vulnerability?.result == 'fail'){ + source: | + if(ctx.vulnerability?.result == 'fail'){ ctx.event.outcome = "failure" }else if(ctx.vulnerability?.result == 'pass'){ ctx.event.outcome = "success" From 2b70820e13d90fb31f7e41ad25461093ec0768fb Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:12:51 +0000 Subject: [PATCH 33/65] Changes to be committed: modified: packages/tychon/changelog.yml modified: packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml modified: packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml modified: packages/tychon/data_stream/tychon_cve/fields/ecs.yml modified: packages/tychon/data_stream/tychon_cve/fields/fields.yml modified: packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml modified: packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml modified: packages/tychon/data_stream/tychon_epp/fields/ecs.yml modified: packages/tychon/data_stream/tychon_epp/fields/fields.yml modified: packages/tychon/data_stream/tychon_epp/manifest.yml modified: packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml modified: packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml modified: packages/tychon/data_stream/tychon_stig/fields/ecs.yml modified: packages/tychon/data_stream/tychon_stig/fields/fields.yml modified: packages/tychon/data_stream/tychon_stig/manifest.yml --- packages/tychon/changelog.yml | 2 +- .../data_stream/tychon_cve/_dev/test/test-cve.json-config.yml | 1 - .../tychon_cve/elasticsearch/ingest_pipeline/default.yml | 1 - packages/tychon/data_stream/tychon_cve/fields/ecs.yml | 1 - packages/tychon/data_stream/tychon_cve/fields/fields.yml | 1 - .../tychon_epp/_dev/test/pipeline/test-epp.json-config.yml | 1 - .../tychon_epp/elasticsearch/ingest_pipeline/default.yml | 1 - packages/tychon/data_stream/tychon_epp/fields/ecs.yml | 1 - packages/tychon/data_stream/tychon_epp/fields/fields.yml | 1 - packages/tychon/data_stream/tychon_epp/manifest.yml | 1 - .../tychon_stig/_dev/test/pipeline/test-stig.json-config.yml | 1 - .../tychon_stig/elasticsearch/ingest_pipeline/default.yml | 1 - packages/tychon/data_stream/tychon_stig/fields/ecs.yml | 1 - packages/tychon/data_stream/tychon_stig/fields/fields.yml | 1 - packages/tychon/data_stream/tychon_stig/manifest.yml | 1 - 15 files changed, 1 insertion(+), 15 deletions(-) diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index ca09744b732..f0e0bae3fd3 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -3,7 +3,7 @@ changes: - description: Added ARF type: enhancement - link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link + link: https://github.com/joeperuzzi/integrations/pull/5 # FIXME Replace with the real PR link - version: "0.0.10" changes: - description: Fixed incorrect types in field.yml and cleaned up formatting diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml index cc4eab12c27..3187160a159 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/test-cve.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 32e231b9bb3..6f75d685144 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -75,4 +75,3 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index f2dd36504fd..31ba2470b1f 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -62,4 +62,3 @@ name: vulnerability.score.version - external: ecs name: vulnerability.severity - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index c306c9656ea..73e3f26b98b 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -61,4 +61,3 @@ - name: version description: Elastic Agent Version. type: keyword - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml index e72281ddac3..302199c74f9 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index cb95027c45f..cb5c6ab2f5b 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -48,4 +48,3 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index 8fd10f807e4..05e44a34ee0 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -50,4 +50,3 @@ name: host.os.kernel - external: ecs name: host.os.platform - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index aba5a7a2daf..ca1d073a418 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -101,4 +101,3 @@ - name: version description: Elastic Agent Version. type: keyword - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index cfd691f4fd0..c7770ac7802 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -30,4 +30,3 @@ streams: 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. - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml index e72281ddac3..302199c74f9 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index d6031dc0855..03241eeb187 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -62,4 +62,3 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index 7d0cb9f058c..7329d8fd21c 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -52,4 +52,3 @@ name: host.os.kernel - external: ecs name: host.os.platform - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 1b6ec9e9b6f..d4d28c0b766 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -118,4 +118,3 @@ - name: version description: Elastic Agent Version. type: keyword - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index 95baf5f1b36..10c1782b32e 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -30,4 +30,3 @@ streams: 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. - \ No newline at end of file From 681f1f5d0abb7671c9301eed8c14ece195a202e4 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:21:44 +0000 Subject: [PATCH 34/65] Changes to be committed: modified: packages/tychon/data_stream/tychon_stig/manifest.yml --- packages/tychon/data_stream/tychon_stig/manifest.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index e4d2129d452..10c1782b32e 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -30,4 +30,3 @@ streams: 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. - From 7dc7b0fce15bece6b6eaea38a0021b7a5c4ce017 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:33:47 +0000 Subject: [PATCH 35/65] Changes to be committed: modified: packages/tychon/changelog.yml --- packages/tychon/changelog.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index f0e0bae3fd3..77e22bb4a15 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,11 +1,5 @@ -# newer versions go on top -- version: "0.0.11" - changes: - - description: Added ARF - type: enhancement - link: https://github.com/joeperuzzi/integrations/pull/5 # FIXME Replace with the real PR link - version: "0.0.10" changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement - link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link + link: https://github.com/joeperuzzi/integrations/pull/5 # FIXME Replace with the real PR link From cf48b301482f757bbb184b6f2af2b70d2c0adf8e Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:06:42 -0400 Subject: [PATCH 36/65] Delete test-arf.json-config.yml --- .../data_stream/tychon_arf/_dev/test/test-arf.json-config.yml | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml b/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml deleted file mode 100644 index 302199c74f9..00000000000 --- a/packages/tychon/data_stream/tychon_arf/_dev/test/test-arf.json-config.yml +++ /dev/null @@ -1,3 +0,0 @@ -dynamic_fields: - "@timestamp": ".*" - event.ingested: ".*" From a4803e3d6692c70fce4754fbca2a2d1913217767 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:08:00 -0400 Subject: [PATCH 37/65] Create test-arf.json-config.yml --- .../tychon_arf/_dev/test/pipeline/test-arf.json-config.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" From a9a38fc64a79060c58b39c4fae41bb43c349bfea Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:10:34 -0400 Subject: [PATCH 38/65] Update default.yml --- .../elasticsearch/ingest_pipeline/default.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index e63a11d4973..6f75d685144 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -13,18 +13,6 @@ processors: - set: field: _id value: "{{id}}" - - set: - field: tychon.ipv4 - value: "{{host.ipv4}}" - - set: - field: tychon.ipv6 - value: "{{host.ipv6}}" - - remove: - ignore_missing: true - field: host.ipv4 - - remove: - ignore_missing: true - field: host.ipv6 - set: field: "@timestamp" value: "{{_ingest.timestamp}}" From b20ed4b610028dc6c1413d6670e7623a8eabfa4a Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:11:11 -0400 Subject: [PATCH 39/65] Update default.yml --- .../elasticsearch/ingest_pipeline/default.yml | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 636835a30a7..cb5c6ab2f5b 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -13,18 +13,6 @@ processors: - set: field: '_id' value: '{{id}}' - - set: - field: tychon.ipv4 - value: "{{host.ipv4}}" - - set: - field: tychon.ipv6 - value: "{{host.ipv6}}" - - remove: - ignore_missing: true - field: host.ipv4 - - remove: - ignore_missing: true - field: host.ipv6 - set: field: '@timestamp' value: '{{_ingest.timestamp}}' @@ -46,15 +34,10 @@ processors: - convert: field: host.uptime type: long -<<<<<<< HEAD - - script: - source: ctx.host.mac = ctx.host.mac.replace(':','-') -======= - gsub: field: host.mac pattern: ":" replacement: "-" ->>>>>>> bruceUpdates - convert: field: script.current_duration type: float @@ -65,7 +48,3 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' -<<<<<<< HEAD - -======= ->>>>>>> bruceUpdates From 73b7b79dd6c266dfc610efa4310b298f602a488c Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:11:38 -0400 Subject: [PATCH 40/65] Update test-epp.json-expected.json --- .../test/pipeline/test-epp.json-expected.json | 204 +++++++++--------- 1 file changed, 100 insertions(+), 104 deletions(-) diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 1cdcfc71a9a..51130b21f3d 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -1,107 +1,103 @@ { - "expected": [ - { - "@timestamp": "2023-07-28T18:14:38.878742881Z", - "ecs": { - "version": "8.8.0" - }, - "event": { - "category": [ - "host" - ], - "ingested": "2023-07-28T18:14:38.878742881Z", - "kind": "state", - "module": "tychon" - }, - "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "domain": "", - "hardware": { - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" - }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", - "oem": { - "manufacturer": "", - "model": "" - }, - "os": { - "build": "22000", - "description": "", - "family": "Windows", - "name": "Microsoft Windows 11 Education N", - "organization": "", - "version": "10.0.22000" - }, - "type": "Workstation", - "uptime": 139304, - "workgroup": "WORKGROUP" - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "script": { - "current_duration": 1129.2, - "current_time": "2023-06-15T20:13:04Z", - "name": "Get-TychonEppSetting.ps1", - "start": "2023-06-15T20:13:03Z", - "type": "powershell", - "version": "0.1.0" - }, - "tychon": { + "expected": [ + { + "@timestamp": "2023-07-28T18:14:38.878742881Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "ingested": "2023-07-28T18:14:38.878742881Z", + "kind": "state", + "module": "tychon" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": "10.1.9.112", "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645" + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00-0C-29-EF-9A-EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 139304, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "script": { + "current_duration": 1129.2, + "current_time": "2023-06-15T20:13:04Z", + "name": "Get-TychonEppSetting.ps1", + "start": "2023-06-15T20:13:03Z", + "type": "powershell", + "version": "0.1.0" }, - "windows_defender": { - "service": { - "antimalware": { - "engine_version": "1.1.23050.3", - "product_version": "4.18.23050.5", - "status": "Enabled" - }, - "antispyware": { - "signature_version": "1.391.1546.0", - "status": "Enabled" - }, - "antivirus": { - "full_scan": { - "signature_version": "" - }, - "quick_scan": { - "signature_version": "1.391.1470.0" - }, - "status": "Enabled" - }, - "behavior_monitor": { - "status": "Enabled" - }, - "ioav_protection": { - "status": "Enabled" - }, - "nis": { - "engine_version": "1.1.23050.3", - "signature_version": "1.391.1546.0", - "status": "Enabled" - }, - "on_access_protection": { - "status": "Enabled" - }, - "real_time_protection": { - "status": "Enabled" - } - } - } - } - ] -} \ No newline at end of file + "windows_defender": { + "service": { + "antimalware": { + "engine_version": "1.1.23050.3", + "product_version": "4.18.23050.5", + "status": "Enabled" + }, + "antispyware": { + "signature_version": "1.391.1546.0", + "status": "Enabled" + }, + "antivirus": { + "full_scan": { + "signature_version": "" + }, + "quick_scan": { + "signature_version": "1.391.1470.0" + }, + "status": "Enabled" + }, + "behavior_monitor": { + "status": "Enabled" + }, + "ioav_protection": { + "status": "Enabled" + }, + "nis": { + "engine_version": "1.1.23050.3", + "signature_version": "1.391.1546.0", + "status": "Enabled" + }, + "on_access_protection": { + "status": "Enabled" + }, + "real_time_protection": { + "status": "Enabled" + } + } + } + } + ] +} From 63a0620e6f8ac7a760f495fa90f915e352ba9e83 Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:12:20 -0400 Subject: [PATCH 41/65] Update default.yml --- .../elasticsearch/ingest_pipeline/default.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index e615d180d7f..41c4482de43 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -42,21 +42,6 @@ processors: - set: field: event.ingested value: '{{_ingest.timestamp}}' - - split: - field: host.ip - separator: "," - - set: - field: tychon.ipv4 - value: "{{host.ipv4}}" - - set: - field: tychon.ipv6 - value: "{{host.ipv6}}" - - remove: - ignore_missing: true - field: host.ipv4 - - remove: - ignore_missing: true - field: host.ipv6 - convert: field: host.uptime type: long From c1ba00f48fa865066a1205ff965c2d0514630c2f Mon Sep 17 00:00:00 2001 From: tychon1 <137804838+tychon1@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:12:53 -0400 Subject: [PATCH 42/65] Update test-stig.json-expected.json --- .../pipeline/test-stig.json-expected.json | 194 +++++++++--------- 1 file changed, 95 insertions(+), 99 deletions(-) diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 75a15695565..8f7e9630636 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,102 +1,98 @@ { - "expected": [ - { - "@timestamp": "2023-07-28T18:14:39.219921509Z", - "benchmark": { - "generated_utc": "2023-03-28T17:40:48", - "guid": "", - "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "version": "1.2" - }, - "ecs": { - "version": "8.8.0" - }, - "event": { - "category": [ - "host" - ], - "ingested": "2023-07-28T18:14:39.219921509Z", - "kind": "state", - "module": "tychon" - }, - "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "domain": "", - "hardware": { - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" - }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", - "oem": { - "manufacturer": "", - "model": "" - }, - "os": { - "build": "22000", - "description": "", - "family": "Windows", - "name": "Microsoft Windows 11 Education N", - "organization": "", - "version": "10.0.22000" - }, - "type": "Workstation", - "uptime": 139370, - "workgroup": "WORKGROUP" - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "oval": { - "class": "compliance", - "id": "oval:mil.disa.stig.windows11:def:253254", - "refid": "" - }, - "rule": { - "benchmark": { - "guid": "", - "profile": { - "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" - }, - "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" - }, - "finding_id": "", - "id": "", - "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", - "oval": { - "class": "compliance", - "id": "oval:mil.disa.stig.windows11:def:253254", - "refid": "" - }, - "result": "not applicable", - "severity": "medium", - "title": "", - "weight": 10.0 - }, - "script": { - "current_duration": 324194.34, - "current_time": "2023-06-15T20:19:35Z", - "name": "Invoke-TychonStigBenchmarkScan.ps1", - "start": "2023-06-15T20:14:11Z", - "type": "powershell", - "version": "0.1.0" - }, - "tychon": { + "expected": [ + { + "@timestamp": "2023-07-28T18:14:39.219921509Z", + "benchmark": { + "generated_utc": "2023-03-28T17:40:48", + "guid": "", + "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "version": "1.2" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "ingested": "2023-07-28T18:14:39.219921509Z", + "kind": "state", + "module": "tychon" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": "10.1.9.112", "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645" + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00-0C-29-EF-9A-EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 139370, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "oval": { + "class": "compliance", + "id": "oval:mil.disa.stig.windows11:def:253254", + "refid": "" + }, + "rule": { + "benchmark": { + "guid": "", + "profile": { + "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" + }, + "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" + }, + "finding_id": "", + "id": "", + "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "oval": { + "class": "compliance", + "id": "oval:mil.disa.stig.windows11:def:253254", + "refid": "" + }, + "result": "not applicable", + "severity": "medium", + "title": "", + "weight": 10.0 + }, + "script": { + "current_duration": 324194.34, + "current_time": "2023-06-15T20:19:35Z", + "name": "Invoke-TychonStigBenchmarkScan.ps1", + "start": "2023-06-15T20:14:11Z", + "type": "powershell", + "version": "0.1.0" } - } - ] -} \ No newline at end of file + } + ] +} From 6256e4ce9137f9aa39db2ba52a45974fec5629e1 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Wed, 9 Aug 2023 14:07:17 -0400 Subject: [PATCH 43/65] updated fields --- .../tychon/data_stream/tychon_cve/fields/agent.yml | 8 ++++++++ .../tychon/data_stream/tychon_epp/fields/agent.yml | 8 ++++++++ .../tychon/data_stream/tychon_epp/fields/fields.yml | 6 ++++++ .../tychon/data_stream/tychon_stig/fields/agent.yml | 8 ++++++++ .../tychon/data_stream/tychon_stig/fields/fields.yml | 10 ++++++++-- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index e380f9c03e8..4542034fdd6 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -111,6 +111,14 @@ level: core type: ip description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index e380f9c03e8..4542034fdd6 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -111,6 +111,14 @@ level: core type: ip description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index ca1d073a418..4b80ceabc31 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -101,3 +101,9 @@ - name: version description: Elastic Agent Version. type: keyword +- name: host.epp.product + description: Epp products installed + type: keyword +- name: host.trellix.product + description: trellix products installed + type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index e380f9c03e8..4542034fdd6 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -111,6 +111,14 @@ level: core type: ip description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. - name: mac level: core type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index d4d28c0b766..864e77b3f8f 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -49,15 +49,21 @@ - name: finding_id description: Benchmark Rule Finding Identifier. type: keyword + - name: result + description: Benchmark Rule Results. + type: keyword - name: severity description: Benchmark Severity Status. type: keyword - - name: result - description: Benchmark Rule Results. + - name: stig_id + description: Stig rule id type: keyword - name: title description: Benchmark Rule Title. type: keyword + - name: vulnerability_id + description: Rule vulnerability id. + type: keyword - name: weight description: Benchmark Rule Weight. type: float From ad8c478a21f7345c67467d6887aa9782225bfe4c Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Wed, 9 Aug 2023 14:21:11 -0400 Subject: [PATCH 44/65] Removed ARF --- .../_dev/test/pipeline/test-arf.json | 72 ------- .../test/pipeline/test-arf.json-config.yml | 3 - .../test/pipeline/test-arf.json-expected.json | 72 ------- .../tychon_arf/agent/stream/stream.yml.hbs | 22 -- .../elasticsearch/ingest_pipeline/default.yml | 37 ---- .../data_stream/tychon_arf/fields/agent.yml | 190 ------------------ .../tychon_arf/fields/base-fields.yml | 21 -- .../data_stream/tychon_arf/fields/ecs.yml | 2 - .../data_stream/tychon_arf/fields/fields.yml | 12 -- .../data_stream/tychon_arf/manifest.yml | 41 ---- 10 files changed, 472 deletions(-) delete mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json delete mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/fields/agent.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/fields/base-fields.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/fields/fields.yml delete mode 100644 packages/tychon/data_stream/tychon_arf/manifest.yml diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json deleted file mode 100644 index eac148fc985..00000000000 --- a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "events": [ - { - "agent": { - "name": "DESKTOP-TIUKL1R", - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "type": "filebeat", - "ephemeral_id": "2bf446f4-d97b-4bdd-a532-f0eec67823ca", - "version": "8.6.2" - }, - "log": { - "file": { - "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\arf\\tychon_mer_info-20230726T193909.xml" - }, - "offset": 0 - }, - "elastic_agent": { - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "version": "8.6.2", - "snapshot": false - }, - "message": "", - "tags": [ - "tychon-arf" - ], - "input": { - "type": "log" - }, - "@timestamp": "2023-07-28T17:51:27.156598630Z", - "ecs": { - "version": "8.8.0" - }, - "data_stream": { - "namespace": "default", - "type": "logs", - "dataset": "tychon.tychon_arf" - }, - "host": { - "hostname": "DESKTOP-TIUKL1R", - "os": { - "build": "22000.2176", - "kernel": "10.0.22000.2176 (WinBuild.160101.0800)", - "name": "Windows 11 Education N", - "family": "windows", - "type": "windows", - "version": "10.0", - "platform": "windows" - }, - "ip": [ - "fe80::40d1:5287:42b9:5645", - "10.1.9.112" - ], - "name": "DESKTOP-TIUKL1R", - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", - "mac": [ - "00-0C-29-EF-9A-EB" - ], - "architecture": "x86_64" - }, - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0_tychon_mer_info-20230726T193909.xml", - "event": { - "agent_id_status": "verified", - "ingested": "2023-07-28T17:51:27Z", - "timezone": "-04:00", - "category": [ - "arf" - ], - "dataset": "tychon.tychon_arf" - } - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml deleted file mode 100644 index 302199c74f9..00000000000 --- a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-config.yml +++ /dev/null @@ -1,3 +0,0 @@ -dynamic_fields: - "@timestamp": ".*" - event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json b/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json deleted file mode 100644 index 18ad86e21c1..00000000000 --- a/packages/tychon/data_stream/tychon_arf/_dev/test/pipeline/test-arf.json-expected.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "expected": [ - { - "agent": { - "name": "DESKTOP-TIUKL1R", - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "type": "filebeat", - "ephemeral_id": "2bf446f4-d97b-4bdd-a532-f0eec67823ca", - "version": "8.6.2" - }, - "log": { - "file": { - "path": "C:\\ProgramData\\TYCHONCLOUD\\eventlogs\\arf\\tychon_mer_info-20230726T193909.xml" - }, - "offset": 0 - }, - "elastic_agent": { - "id": "1ce3ec61-ef09-43eb-a01b-ce85a1ca1203", - "version": "8.6.2", - "snapshot": false - }, - "message": "", - "tags": [ - "tychon-arf" - ], - "input": { - "type": "log" - }, - "@timestamp": "2023-07-28T17:51:27.156598630Z", - "ecs": { - "version": "8.8.0" - }, - "data_stream": { - "namespace": "default", - "type": "logs", - "dataset": "tychon.tychon_arf" - }, - "host": { - "hostname": "DESKTOP-TIUKL1R", - "os": { - "build": "22000.2176", - "kernel": "10.0.22000.2176 (WinBuild.160101.0800)", - "name": "Windows 11 Education N", - "family": "windows", - "type": "windows", - "version": "10.0", - "platform": "windows" - }, - "ip": [ - "fe80::40d1:5287:42b9:5645", - "10.1.9.112" - ], - "name": "DESKTOP-TIUKL1R", - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0", - "mac": [ - "00-0C-29-EF-9A-EB" - ], - "architecture": "x86_64" - }, - "id": "a6353cf9-a98a-4526-9dbb-9362c34318b0_tychon_mer_info-20230726T193909.xml", - "event": { - "agent_id_status": "verified", - "ingested": "2023-07-28T17:51:27Z", - "timezone": "-04:00", - "category": [ - "arf" - ], - "dataset": "tychon.tychon_arf" - } - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs deleted file mode 100644 index 067e06cfc36..00000000000 --- a/packages/tychon/data_stream/tychon_arf/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,22 +0,0 @@ -paths: -{{#each paths as |path i|}} - - {{path}} -{{/each}} -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}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 396d0d94bd4..00000000000 --- a/packages/tychon/data_stream/tychon_arf/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: Pipeline for parsing TYCHON ARF Results -processors: - - dot_expander: - field: "*" - - set: - if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") - field: host.id - value: "{{tychon.id}}" - - remove: - if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") - field: 'tychon' - - script: - source: ctx.id=ctx.host.id + "_" + ctx.log.file.path.splitOnToken('\\')[5] - - set: - field: _id - value: "{{id}}" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.category - value: [arf] - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/fields/agent.yml b/packages/tychon/data_stream/tychon_arf/fields/agent.yml deleted file mode 100644 index 5c48fd15007..00000000000 --- a/packages/tychon/data_stream/tychon_arf/fields/agent.yml +++ /dev/null @@ -1,190 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - description: Host IPv4. - type: keyword - - name: ipv6 - description: Host IPv6. - type: keyword - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml b/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/data_stream/tychon_arf/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/data_stream/tychon_arf/fields/ecs.yml b/packages/tychon/data_stream/tychon_arf/fields/ecs.yml deleted file mode 100644 index 32b642ce16c..00000000000 --- a/packages/tychon/data_stream/tychon_arf/fields/ecs.yml +++ /dev/null @@ -1,2 +0,0 @@ -- external: ecs - name: ecs.version diff --git a/packages/tychon/data_stream/tychon_arf/fields/fields.yml b/packages/tychon/data_stream/tychon_arf/fields/fields.yml deleted file mode 100644 index 3467c3de3a2..00000000000 --- a/packages/tychon/data_stream/tychon_arf/fields/fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: id - description: Tychon Unique ARF Id. - type: keyword -- name: message - description: Message content. - type: match_only_text -- name: log.file.path - description: log file path - type: keyword -- name: tags - description: tags - type: keyword \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arf/manifest.yml b/packages/tychon/data_stream/tychon_arf/manifest.yml deleted file mode 100644 index 9efe6432eba..00000000000 --- a/packages/tychon/data_stream/tychon_arf/manifest.yml +++ /dev/null @@ -1,41 +0,0 @@ -title: ARF Data -type: logs -streams: - - input: logfile - title: ARF Data - description: ARF Data - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: ARF Data - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\arf\*.xml - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-arf - - 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. - From 58d34edf4077cd312c1042521a913055cd502462 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Tue, 22 Aug 2023 08:38:40 -0400 Subject: [PATCH 45/65] removed attributes removed attributes and immutable --- .../10359860-1139-11ee-af86-538da1394f27_1.json | 9 ++------- .../2e5a7e20-1137-11ee-af86-538da1394f27_1.json | 9 ++------- .../2e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 9 ++------- .../867e3450-1139-11ee-af86-538da1394f27_1.json | 9 ++------- .../934a39a0-1138-11ee-af86-538da1394f27_1.json | 9 ++------- 5 files changed, 10 insertions(+), 35 deletions(-) diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json index 6e8f8de1e22..be277734830 100644 --- a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json @@ -1,11 +1,7 @@ { "id": "10359860-1139-11ee-af86-538da1394f27_1", "type": "security-rule", - "attributes": { - "updated_at": "2023-06-22T20:12:10.268Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:12:08.840Z", - "created_by": "elastic", + "attributes": { "name": "CAT 1 IAVA Vulnerability Detected", "tags": [ "TYCHON", @@ -47,8 +43,7 @@ "to": "now", "references": [], "version": 1, - "exceptions_list": [], - "immutable": false, + "exceptions_list": [], "related_integrations": [], "required_fields": [], "setup": "", diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json index 2caf59e861f..b6ad806a22e 100644 --- a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json @@ -1,11 +1,7 @@ { "id": "2e5a7e20-1137-11ee-af86-538da1394f27_1", "type": "security-rule", - "attributes": { - "updated_at": "2023-06-22T19:58:42.404Z", - "updated_by": "elastic", - "created_at": "2023-06-22T19:58:40.371Z", - "created_by": "elastic", + "attributes": { "name": "Windows Defender Feature Reported as Disabled", "tags": [ "TYCHON", @@ -54,8 +50,7 @@ "to": "now", "references": [], "version": 1, - "exceptions_list": [], - "immutable": false, + "exceptions_list": [], "related_integrations": [], "required_fields": [], "setup": "", diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json index 1d7f42e084b..47bb6d76d41 100644 --- a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json @@ -1,11 +1,7 @@ { "id": "2e9c9ac0-1138-11ee-af86-538da1394f27_1", "type": "security-rule", - "attributes": { - "updated_at": "2023-06-22T20:05:51.349Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:05:49.618Z", - "created_by": "elastic", + "attributes": { "name": "Critical Vulnerability Failed", "tags": [ "TYCHON", @@ -47,8 +43,7 @@ "to": "now", "references": [], "version": 1, - "exceptions_list": [], - "immutable": false, + "exceptions_list": [], "related_integrations": [], "required_fields": [], "setup": "", diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json index fd29265dac1..e9f0424a048 100644 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json @@ -1,11 +1,7 @@ { "id": "867e3450-1139-11ee-af86-538da1394f27_1", "type": "security-rule", - "attributes": { - "updated_at": "2023-06-22T20:15:29.017Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:15:26.960Z", - "created_by": "elastic", + "attributes": { "name": "High STIG/SCAP Check Failed", "tags": [ "TYCHON", @@ -46,8 +42,7 @@ "to": "now", "references": [], "version": 1, - "exceptions_list": [], - "immutable": false, + "exceptions_list": [], "related_integrations": [], "required_fields": [], "setup": "", diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json index 04577f4fcf4..c06bd116194 100644 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json @@ -1,11 +1,7 @@ { "id": "934a39a0-1138-11ee-af86-538da1394f27_1", "type": "security-rule", - "attributes": { - "updated_at": "2023-06-22T20:08:39.789Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:08:38.722Z", - "created_by": "elastic", + "attributes": { "name": "High Vulnerability Failed", "tags": [ "TYCHON", @@ -47,8 +43,7 @@ "to": "now", "references": [], "version": 1, - "exceptions_list": [], - "immutable": false, + "exceptions_list": [], "related_integrations": [], "required_fields": [], "setup": "", From 983bc8c5bb3d7dfc7d14f410b26df5610635d9fc Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 24 Aug 2023 16:57:19 +0000 Subject: [PATCH 46/65] New Dashboards, Index Patterns, SIEM Rules and Screen Shots --- packages/tychon/img/TYCHONScreenShot_1.png | Bin 0 -> 201501 bytes packages/tychon/img/TYCHONScreenShot_2.png | Bin 0 -> 175239 bytes ...db40-d137-11e9-a2af-693b633cf871-stig.json | 246 ++++++------ ...11ee-9610-15dee918f31a-exposedservice.json | 106 ++++++ ...11ee-83e4-c92ed141b9e5-networkadapter.json | 91 +++++ ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 360 ++++++++++++------ ...e-9610-15dee918f31a-softwareinventory.json | 86 +++++ ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 116 ++++++ ...3dbd-11ee-9610-15dee918f31a-harddrive.json | 91 +++++ ...11ee-8557-a7ea91123f8b-networkadapter.json | 104 +++++ ...bf50-3dbf-11ee-9610-15dee918f31a-host.json | 151 ++++++++ ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 343 +++++++++-------- ...3d41-11ee-9610-15dee918f31a-harddrive.json | 100 +++++ ...58ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json | 106 ++++++ ...-3e02-11ee-9610-15dee918f31a-hardware.json | 96 +++++ ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 106 ++++++ ...12af0-3d4c-11ee-9610-15dee918f31a-arp.json | 80 ++++ ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 101 +++++ ...11ee-9610-15dee918f31a-exposedservice.json | 85 +++++ ...6a20-3d47-11ee-9610-15dee918f31a-host.json | 140 +++++++ .../2dc584bc-c446-4150-b561-1415a45ebe87.json | 23 ++ .../62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json | 23 ++ .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 2 +- .../8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json | 23 ++ .../9267bb1b-cf22-4417-8cfb-6606848140a7.json | 23 ++ .../a264bf8d-abc3-4789-9f4c-bf76397e06ba.json | 23 ++ .../a57870ef-07d8-4d12-a067-8c66eefd10ca.json | 23 ++ .../bb5226cd-c099-46d2-bb71-0257232c7d82.json | 23 ++ .../c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json | 23 ++ .../df491fbb-3f09-4ab0-995a-c2c549a9bc21.json | 2 +- .../e0015160-781d-4885-9ae6-04230d059bfb.json | 23 ++ .../e886429e-9532-4f44-bb36-6465fe760866.json | 23 ++ ...7dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json | 48 +++ ...0359860-1139-11ee-af86-538da1394f27_1.json | 17 +- ...1481830-426d-11ee-83e4-c92ed141b9e5_1.json | 57 +++ ...7a4a660-4111-11ee-83e4-c92ed141b9e5_1.json | 53 +++ ...e5a7e20-1137-11ee-af86-538da1394f27_1.json | 21 +- ...e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 15 +- ...8a72d20-426e-11ee-83e4-c92ed141b9e5_1.json | 52 +++ ...a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json | 42 ++ ...5197a50-428d-11ee-83e4-c92ed141b9e5_1.json | 42 ++ ...67e3450-1139-11ee-af86-538da1394f27_1.json | 9 +- ...34a39a0-1138-11ee-af86-538da1394f27_1.json | 9 +- ...fdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json | 54 +++ ...85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json | 57 +++ ...b5715c0-426b-11ee-83e4-c92ed141b9e5_1.json | 50 +++ ...dcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json | 50 +++ .../026431f0-3de5-11ee-9610-15dee918f31a.json | 17 + .../11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 + .../27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 + .../39b55820-10f2-11ee-af86-538da1394f27.json | 17 + .../5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 + .../7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 + .../7f851220-3d41-11ee-9610-15dee918f31a.json | 17 + .../9c222660-1100-11ee-af86-538da1394f27.json | 17 + .../a3922360-3de6-11ee-9610-15dee918f31a.json | 17 + .../bae88930-1133-11ee-af86-538da1394f27.json | 17 + .../c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 + .../e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 + .../f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 + .../ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 ++ packages/tychon/manifest.yml | 6 + 62 files changed, 3112 insertions(+), 466 deletions(-) create mode 100644 packages/tychon/img/TYCHONScreenShot_1.png create mode 100644 packages/tychon/img/TYCHONScreenShot_2.png create mode 100644 packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json create mode 100644 packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json create mode 100644 packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json create mode 100644 packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json create mode 100644 packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json create mode 100644 packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json create mode 100644 packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json create mode 100644 packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json create mode 100644 packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json create mode 100644 packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json create mode 100644 packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json create mode 100644 packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json create mode 100644 packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json create mode 100644 packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json create mode 100644 packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json create mode 100644 packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json create mode 100644 packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json create mode 100644 packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json create mode 100644 packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json create mode 100644 packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json create mode 100644 packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json create mode 100644 packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json create mode 100644 packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json create mode 100644 packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json create mode 100644 packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json create mode 100644 packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json create mode 100644 packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json diff --git a/packages/tychon/img/TYCHONScreenShot_1.png b/packages/tychon/img/TYCHONScreenShot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd181eb9c2dc74ba25de4d8242adcb0f0829f8a GIT binary patch literal 201501 zcmb@tWmH_t)-FtfB{;#|f?KfQ5TJ2)hhTx=?$8MYZ6sK5cXxLWO@I(w8*kiQZ?pIN z?tSk0dB3m5VD#!@b*);ns-`^8oM9?T( }C~$Ca=&~{ZH8?orFgQ4bcdw9OJ=Y0V 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 W-%R?c5jE6 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 literal 0 HcmV?d00001 diff --git a/packages/tychon/img/TYCHONScreenShot_2.png b/packages/tychon/img/TYCHONScreenShot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf2f73ae6d696eeb54bdce2c76108a07934f43f GIT binary patch literal 175239 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 vFtFV(tF9A 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json index 13a9275e9af..fd6fb26edc9 100644 --- a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json @@ -1,120 +1,130 @@ { - "attributes": { - "description": "Analyze the status your current STIG scans run against your endpoints.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":4,\"i\":\"43863395-18af-4a6d-b628-90743756adce\"},\"panelIndex\":\"43863395-18af-4a6d-b628-90743756adce\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Total Systems\",\"panelRefName\":\"panel_43863395-18af-4a6d-b628-90743756adce\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":8,\"i\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},\"panelIndex\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":4,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":9,\"i\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},\"panelIndex\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":8,\"w\":4,\"h\":23,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":14,\"w\":17,\"h\":17,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":13,\"h\":14,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":19,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\"},{\"type\":\"index-pattern\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":19,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-7d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] STIG Report Dashboard", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T20:16:52.285Z", - "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "e6c0e460-c3da-11eb-8956-0b1a70e695fd", - "name": "43863395-18af-4a6d-b628-90743756adce:panel_43863395-18af-4a6d-b628-90743756adce", - "type": "visualization" - }, - { - "id": "d954bdb0-3298-11ec-b058-cf4fefc29658", - "name": "aa2bd77f-4729-41c8-aa01-ddd9dc160b33:panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "149977b6-c38d-4715-974d-641c1fc8e57b:indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "cec1fd74-b355-4dde-a4d0-a249bbe4f600:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "28e2a613-0d7f-4476-aed1-7175f2a18f28:indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "13f2d060-9d0e-4fba-9ab5-d2f3baeb0250:indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6", - "type": "index-pattern" - }, - { - "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", - "name": "d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c:panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "ca6d3287-d16e-4e2f-9216-6140f4f2b4c1:indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966", - "type": "index-pattern" - }, - { - "id": "1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", - "name": "634c2a2e-c6fa-414f-8479-1d797bbaa6be:panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be", - "type": "lens" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "5bf2f4f8-4744-4f94-b99d-69b88ff226d1:indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", - "type": "index-pattern" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "579051b0-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-06-22T20:16:52.285Z", - "version": "WzI4OTYzOCwxM10=" + "attributes": { + "description": "Analyze the status your current STIG scans run against your endpoints.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":4,\"i\":\"43863395-18af-4a6d-b628-90743756adce\"},\"panelIndex\":\"43863395-18af-4a6d-b628-90743756adce\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Total Systems\",\"panelRefName\":\"panel_43863395-18af-4a6d-b628-90743756adce\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":8,\"i\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},\"panelIndex\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":4,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":9,\"i\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},\"panelIndex\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":8,\"w\":4,\"h\":23,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":14,\"w\":17,\"h\":17,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":13,\"h\":14,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":19,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":19,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] STIG Report Dashboard", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T19:56:47.343Z", + "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "e6c0e460-c3da-11eb-8956-0b1a70e695fd", + "name": "43863395-18af-4a6d-b628-90743756adce:panel_43863395-18af-4a6d-b628-90743756adce", + "type": "visualization" + }, + { + "id": "d954bdb0-3298-11ec-b058-cf4fefc29658", + "name": "aa2bd77f-4729-41c8-aa01-ddd9dc160b33:panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "149977b6-c38d-4715-974d-641c1fc8e57b:indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "cec1fd74-b355-4dde-a4d0-a249bbe4f600:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "28e2a613-0d7f-4476-aed1-7175f2a18f28:indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "13f2d060-9d0e-4fba-9ab5-d2f3baeb0250:indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6", + "type": "index-pattern" + }, + { + "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", + "name": "d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c:panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "ca6d3287-d16e-4e2f-9216-6140f4f2b4c1:indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966", + "type": "index-pattern" + }, + { + "id": "1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", + "name": "634c2a2e-c6fa-414f-8479-1d797bbaa6be:panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be", + "type": "lens" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967", + "type": "index-pattern" + }, + { + "id": "e1c9c490-41a5-11ee-83e4-c92ed141b9e5", + "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:3c0dfe4d-c571-4127-ba6c-7362042cf2e2:dashboardId", + "type": "dashboard" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "5bf2f4f8-4744-4f94-b99d-69b88ff226d1:indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", + "type": "index-pattern" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T19:56:47.343Z", + "version": "WzgxODk5OSwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json new file mode 100644 index 00000000000..4ac503da810 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json @@ -0,0 +1,106 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Services and Ports view displays all Services found on hosts, as well as listening ports and ARP Tables.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},\"panelIndex\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":16,\"h\":5,\"i\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\"},\"panelIndex\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Services and Ports\\nTYCHON reports what ports are open at the time of the check. It records what process and command was used to open the port and correlates that process if it was started as a service.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":32,\"h\":51,\"i\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\"},\"panelIndex\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"width\":259.0666666666667},{\"isTransposed\":false,\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"hidden\":true},{\"columnId\":\"66204765-468d-419c-9ea9-d073900e559f\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":110.39999999999998},{\"columnId\":\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"isTransposed\":false},{\"columnId\":\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":169.39999999999998},{\"columnId\":\"8d7e5159-9321-4909-b291-9d44a246e217\",\"isTransposed\":false,\"width\":413.5666666666666},{\"columnId\":\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"isTransposed\":false},{\"columnId\":\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"isTransposed\":false}],\"layerId\":\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\":{\"columns\":{\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\":{\"label\":\"Service Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.name\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"66204765-468d-419c-9ea9-d073900e559f\":{\"label\":\"Protocol\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\":{\"label\":\"Command Line Used\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8d7e5159-9321-4909-b291-9d44a246e217\":{\"label\":\"User\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\":{\"label\":\"Service Description\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.description\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"baacc6bf-fc31-430c-b112-2ba01c97aa21\":{\"label\":\"Last State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.state\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1738b58d-80b9-4562-98ef-316a0319e8d1\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"66204765-468d-419c-9ea9-d073900e559f\",\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"8d7e5159-9321-4909-b291-9d44a246e217\",\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Listening Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":8,\"h\":8,\"i\":\"d43241be-bffb-4076-9153-27424a7c9154\"},\"panelIndex\":\"d43241be-bffb-4076-9153-27424a7c9154\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Listening Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"source.port\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":8,\"w\":8,\"h\":8,\"i\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\"},\"panelIndex\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\"}],\"state\":{\"visualization\":{\"layerId\":\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\",\"accessor\":\"216dce16-7856-405d-8c0d-92246e7c3511\",\"layerType\":\"data\",\"size\":\"l\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\":{\"columns\":{\"216dce16-7856-405d-8c0d-92246e7c3511\":{\"label\":\"Total Unique Processes Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.hash.sha1\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"216dce16-7856-405d-8c0d-92246e7c3511\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":8,\"h\":8,\"i\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\"},\"panelIndex\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Users Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.user.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":16,\"w\":8,\"h\":8,\"i\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\"},\"panelIndex\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Services Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"service.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":16,\"h\":30,\"i\":\"4c945e75-db31-435b-b558-76d8cf5b391c\"},\"panelIndex\":\"4c945e75-db31-435b-b558-76d8cf5b391c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14\"}],\"state\":{\"visualization\":{\"layerId\":\"f5451e54-90d4-4c69-a6a9-c600ac385e14\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"6b3d57ed-b00b-44ac-a81e-d944444689bb\"},{\"columnId\":\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"isTransposed\":false},{\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f5451e54-90d4-4c69-a6a9-c600ac385e14\":{\"columns\":{\"6b3d57ed-b00b-44ac-a81e-d944444689bb\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"304d888e-452b-4c1c-8433-f9bf5ccc9483\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"6b3d57ed-b00b-44ac-a81e-d944444689bb\",\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Arp History\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Services and Ports", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:49:39.888Z", + "id": "tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "7ce4caed-f1dc-4d52-934f-bf01a1c79c50:panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50", + "type": "visualization" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "90112a9f-2161-4263-bc42-8af46aeb05e4:indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "d43241be-bffb-4076-9153-27424a7c9154:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "39d605bd-cd52-4e81-90fc-15dde8a50450:indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "fd1293f8-ebe9-460f-81ab-a4ada0b42050:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "9c36f7cb-cd04-43e3-80c7-8ec29e797343:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4c945e75-db31-435b-b558-76d8cf5b391c:indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_b1548c53-ca3d-47b3-bc05-664ddc1e045a:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "026431f0-3de5-11ee-9610-15dee918f31a", + "name": "tag-ref-026431f0-3de5-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", + "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:49:39.888Z", + "version": "WzgyMTMzMiwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json new file mode 100644 index 00000000000..525794029f6 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json @@ -0,0 +1,91 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a888c608-f4d6-4b9e-89e5-b23938eae614\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"title\":\"Hostname\",\"fieldName\":\"host.hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"a888c608-f4d6-4b9e-89e5-b23938eae614\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Network Cards view displays information about every physical and virtual network interface attached to the endpoint. TYCHON also captures wireless identification information, drivers, dhcp/wins server information, and more.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},\"panelIndex\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":11,\"i\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\"},\"panelIndex\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\nTYCHON collects all the Network Adapters, virtual and physical, attached to a device. The endpoint will report on the driver it uses, as well as IP-based information for both IP versions 4 and 6. TYCHON will also report connected wireless information if a WIFI adapter is attached to the host.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":11,\"i\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\"},\"panelIndex\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8\"}],\"state\":{\"visualization\":{\"layerId\":\"af5e1785-c716-4020-a4af-3349819785f8\",\"accessor\":\"2d4e6a8a-eba5-49c6-a626-be25534c183d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"xl\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"af5e1785-c716-4020-a4af-3349819785f8\":{\"columns\":{\"2d4e6a8a-eba5-49c6-a626-be25534c183d\":{\"label\":\"Total Network Adapters\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.adapter.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2d4e6a8a-eba5-49c6-a626-be25534c183d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":11,\"i\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\"},\"panelIndex\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"709554a2-6b92-446a-8924-35460cb0962b\"},{\"columnId\":\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"isTransposed\":false},{\"columnId\":\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"isTransposed\":false},{\"columnId\":\"d440007c-1904-4e96-b222-df218f750a23\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\",\"isTransposed\":false}],\"layerId\":\"ff6a221f-469c-4ef6-a8e1-3f697430331c\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ff6a221f-469c-4ef6-a8e1-3f697430331c\":{\"columns\":{\"709554a2-6b92-446a-8924-35460cb0962b\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\":{\"label\":\"Driver File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"886a311d-40aa-44de-9feb-6a9a2d9cc915\":{\"label\":\"Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d440007c-1904-4e96-b222-df218f750a23\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\":{\"label\":\"Driver Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.driver.date\",\"filter\":{\"query\":\"host.adapter.driver.date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"709554a2-6b92-446a-8924-35460cb0962b\",\"d440007c-1904-4e96-b222-df218f750a23\",\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Driver Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":48,\"h\":10,\"i\":\"15c69399-dcbc-4881-bc99-4818e466265c\"},\"panelIndex\":\"15c69399-dcbc-4881-bc99-4818e466265c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"width\":216.75454545454545},{\"isTransposed\":false,\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\",\"hidden\":true},{\"columnId\":\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"isTransposed\":false,\"width\":173.97118181818183},{\"columnId\":\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"isTransposed\":false,\"alignment\":\"center\",\"collapseFn\":\"\"},{\"columnId\":\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":116.52673737373738},{\"columnId\":\"602140d9-4086-44be-abc5-897301f23eff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"isTransposed\":false,\"width\":133.65173737373738},{\"columnId\":\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":109.50888023088024},{\"columnId\":\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"isTransposed\":false,\"width\":94.45454545454547,\"alignment\":\"center\"},{\"columnId\":\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":121.0790909090909},{\"columnId\":\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"isTransposed\":false}],\"layerId\":\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\":{\"columns\":{\"b1e9f075-199d-446c-8433-c2730dfc96bd\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"08b29813-ec38-4395-8a88-7c889625a8e2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"879a60e7-10d5-42f8-b2c1-01ea749635cb\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\":{\"label\":\"Link Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.link_speed\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"602140d9-4086-44be-abc5-897301f23eff\":{\"label\":\"Media Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.media.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\":{\"label\":\"MTU\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.adapter.mtu\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"169ce68c-3a37-46f0-b5ec-009e53190781\":{\"label\":\"WINS Server\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wins_server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be1f5181-4560-439a-abb0-bb6c83c22136\":{\"label\":\"VLAN ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.vlan.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\":{\"label\":\"Subnet\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.subnet_bit\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c971cbdc-b632-4b4c-b31d-007efef17ea7\":{\"label\":\"Virtual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"602140d9-4086-44be-abc5-897301f23eff\",\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"08b29813-ec38-4395-8a88-7c889625a8e2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Network Card Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":14,\"h\":7,\"i\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\"},\"panelIndex\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"isTransposed\":false},{\"columnId\":\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"isTransposed\":false}],\"layerId\":\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\",\"layerType\":\"data\"},\"query\":{\"query\":\"host.adapter.dhcp.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\":{\"columns\":{\"169f84ee-3fc5-42ee-85b5-0809636c9075\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"33a05cbb-825f-4b2b-8354-2ae40a593309\":{\"label\":\"Top 3 values of host.adapter.ip\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":14,\"y\":24,\"w\":34,\"h\":7,\"i\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\"},\"panelIndex\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49\"}],\"state\":{\"visualization\":{\"layerId\":\"c5561883-030e-440b-9c1d-213e698c5b49\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"e0e7b347-b072-41ed-8937-3a83de5f2555\"},{\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"isTransposed\":false},{\"columnId\":\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"isTransposed\":false},{\"columnId\":\"789086fb-0e1c-4541-a898-f788cb907cff\",\"isTransposed\":false},{\"columnId\":\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"isTransposed\":false},{\"columnId\":\"33e14b38-1516-484a-b91f-15a98b79e330\",\"isTransposed\":false},{\"columnId\":\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"isTransposed\":false},{\"columnId\":\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"host.adapter.wifi.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c5561883-030e-440b-9c1d-213e698c5b49\":{\"columns\":{\"e0e7b347-b072-41ed-8937-3a83de5f2555\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4a2c3854-b909-47e1-a1fa-306163e857a6\":{\"label\":\"Last value of host.adapter.wifi.signal_percent\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.wifi.signal_percent\",\"filter\":{\"query\":\"host.adapter.wifi.signal_percent: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}}},\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"789086fb-0e1c-4541-a898-f788cb907cff\":{\"label\":\"BSSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.bssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\":{\"label\":\"Band\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.band\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33e14b38-1516-484a-b91f-15a98b79e330\":{\"label\":\"Radio Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.radio_type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\":{\"label\":\"Channel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.channel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"09fe6e46-ea11-4357-bb69-81633e6607e9\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"e0e7b347-b072-41ed-8937-3a83de5f2555\",\"789086fb-0e1c-4541-a898-f788cb907cff\",\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"33e14b38-1516-484a-b91f-15a98b79e330\",\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"4a2c3854-b909-47e1-a1fa-306163e857a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"WIFI Connections\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Network Cards", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:42:39.548Z", + "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "89be3f45-0b62-42ac-83fa-2f2f7f9857cb:panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb", + "type": "visualization" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "084075d4-a371-4a99-9bf0-627c41cf8b53:indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe:indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "15c69399-dcbc-4881-bc99-4818e466265c:indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "a028776c-7f2e-46e7-b7a0-4b7541293e41:indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "b67d31de-03fe-4151-94b5-33ee802a20ae:indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_a888c608-f4d6-4b9e-89e5-b23938eae614:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:42:39.548Z", + "version": "WzgyMDM1NCwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json index d1d00455ff2..4c15f3328d3 100644 --- a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json @@ -1,114 +1,250 @@ { - "attributes": { - "description": "Records the status of Windows Defender Features and Versions ", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":4,\"y\":0,\"w\":5,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":0,\"w\":5,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":14,\"y\":0,\"w\":5,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":5,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":5,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":29,\"y\":0,\"w\":5,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":5,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":5,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":44,\"y\":0,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":15,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\"},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":15,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\"},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\"},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":23,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\"},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":7,\"w\":48,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Defender Protection\"}]", - "timeRestore": false, - "title": " [TYCHON] Windows Defender Status", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T19:54:10.979Z", - "id": "tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "f9a975c1-d99b-436b-9173-c616f0059426:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "dca19098-8eb9-440e-abf0-19ef55cee62c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "5fa1a00d-8e9c-441f-be66-9b5c01663fd7:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "4383ee4c-ec16-48c2-bb13-8f896a9519d4:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "4d4e6682-9758-4359-a6f0-1ba6ca5e40f5:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "d3b08c18-3a64-4ea0-95f1-39ac4198013d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "0336a4e3-a647-415d-84b5-fef984ac4a3f:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "6a29e48e-892b-4c8a-a3de-8884fd1d9820:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "ac716d8e-e533-4072-aa74-65848d4e0925:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "33d492ba-c62f-405e-84a2-c0254e8e743c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "dad722ab-af91-4d03-a313-faab0d9533c5:indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb", - "type": "index-pattern" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "bae88930-1133-11ee-af86-538da1394f27", - "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-06-22T19:54:10.979Z", - "version": "WzI4NTk4NiwxM10=" + "attributes": { + "description": "TYCHON captures the status of Trellix, Elastic Defender, and Windows Defender features and versions on endpoints and reports the information in this dashboard.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":14,\"i\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\"},\"panelIndex\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protection Status\\nTYCHON tracks specific Endpoint Protection vendors for enabled features, installed software, and definition versions. Currently, TYCHON supports Trellix, Elastic Defender, and Windows Defender.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":0,\"w\":4,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":4,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":4,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":0,\"w\":4,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":4,\"h\":7,\"i\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\"},\"panelIndex\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Trellix Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\" or not trellix.service.accm.version :\\\"\\\" or not trellix.service.dlp.version :\\\"\\\" or not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":4,\"h\":7,\"i\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\"},\"panelIndex\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ENS Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.status : \\\"Running\\\" and not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":0,\"w\":4,\"h\":7,\"i\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\"},\"panelIndex\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with PA Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.pa.status : \\\"Running\\\" and not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":4,\"h\":7,\"i\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\"},\"panelIndex\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Elastic Defender Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.malware : \\\"\\\" and not elastic.service.endpoint.memory_protection : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":0,\"w\":4,\"h\":7,\"i\":\"94022264-e2ce-4661-b384-b2b5454b02c8\"},\"panelIndex\":\"94022264-e2ce-4661-b384-b2b5454b02c8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Malware Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.malware: \\\"\\\" and not elastic.service.endpoint.malware : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":7,\"w\":4,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":7,\"w\":4,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":7,\"w\":4,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":7,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":7,\"w\":4,\"h\":7,\"i\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\"},\"panelIndex\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ACCM Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.accm.status : \\\"Running\\\" and not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":7,\"w\":4,\"h\":7,\"i\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\"},\"panelIndex\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with DLP Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.dlp.status : \\\"Running\\\" and not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":7,\"w\":4,\"h\":7,\"i\":\"16205847-2ebc-46db-bc4b-606228f52996\"},\"panelIndex\":\"16205847-2ebc-46db-bc4b-606228f52996\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RSD Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.rsd.status : \\\"Running\\\" and not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":7,\"w\":4,\"h\":7,\"i\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\"},\"panelIndex\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Behavior Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.behavior_protection : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\"},\"panelIndex\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Memory Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.memory_protection: \\\"\\\" and not elastic.service.endpoint..memory_protection: \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":24,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e00a8c06-9b49-4cb8-9cd5-598dbcb26113\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Protection\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":8,\"i\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\"},\"panelIndex\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"isTransposed\":false},{\"columnId\":\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"7e2c653a-cc31-404e-847d-913fb28c20b8\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aa495d01-49df-4dfa-9117-2efb3d4407b5\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9dd45bd7-37df-4418-bcf0-00b80fe159a5\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Elastic Endpoint Status \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":22,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5aa080e4-d756-4967-92d3-f92a920b315f\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":22,\"w\":24,\"h\":8,\"i\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\"},\"panelIndex\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\":{\"label\":\"ENS Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"39600cce-a379-46d1-9b6a-42c97b06c32d\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Endpoint Security Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"8d9908e0-205b-43ec-8fd4-343ce4057237\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":8,\"i\":\"d0f95b46-cb78-4246-b605-cf764851569e\"},\"panelIndex\":\"d0f95b46-cb78-4246-b605-cf764851569e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9b0c3115-07d2-4a63-be6e-424b453fd041\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"ACCM Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":38,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"hidden\":false,\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"641eddc6-5d50-4512-9409-a6d9f49e7e8a\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":30,\"w\":24,\"h\":8,\"i\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\"},\"panelIndex\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"04264bb0-25f8-4128-b7dc-821f46b7dd54\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Rogue System Detection \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"24732923-c957-4110-8558-e38a86ad50bf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":38,\"w\":24,\"h\":8,\"i\":\"426f8706-b652-422d-a763-19eb6a28916f\"},\"panelIndex\":\"426f8706-b652-422d-a763-19eb6a28916f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Policy Auditor Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Policy Auditor Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"547ea5a0-a1ae-4a90-8cd0-7ad0e177b613\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Policy Auditor Status\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": " [TYCHON] Endpoint Protection Status", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T21:17:53.197Z", + "id": "tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "f9a975c1-d99b-436b-9173-c616f0059426:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "dca19098-8eb9-440e-abf0-19ef55cee62c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "4383ee4c-ec16-48c2-bb13-8f896a9519d4:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "d3b08c18-3a64-4ea0-95f1-39ac4198013d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "ac716d8e-e533-4072-aa74-65848d4e0925:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "e5b0bf6c-69e6-4892-b691-9bc21f0c6b25:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "bc5b8947-a82b-44d5-bea7-addfad736ad2:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "370c3dc5-5a15-4347-b9a7-7d75ac86cb10:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "116cc01e-5861-4993-baaf-3f0cc2a312cf:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "94022264-e2ce-4661-b384-b2b5454b02c8:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "0336a4e3-a647-415d-84b5-fef984ac4a3f:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5fa1a00d-8e9c-441f-be66-9b5c01663fd7:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "4d4e6682-9758-4359-a6f0-1ba6ca5e40f5:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "6a29e48e-892b-4c8a-a3de-8884fd1d9820:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "33d492ba-c62f-405e-84a2-c0254e8e743c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "685110fd-a3a4-441b-b9b6-42316b8e33ee:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "f985f8a3-3272-43d8-90e6-76e56aac5f91:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "16205847-2ebc-46db-bc4b-606228f52996:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "fb20b198-fe52-4bb3-b6dd-d4d74855ca73:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5b9ce41f-1950-4c60-8322-a6aa80be383d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e00a8c06-9b49-4cb8-9cd5-598dbcb26113:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9dd45bd7-37df-4418-bcf0-00b80fe159a5:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5aa080e4-d756-4967-92d3-f92a920b315f:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:39600cce-a379-46d1-9b6a-42c97b06c32d:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:8d9908e0-205b-43ec-8fd4-343ce4057237:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "d0f95b46-cb78-4246-b605-cf764851569e:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "d0f95b46-cb78-4246-b605-cf764851569e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9b0c3115-07d2-4a63-be6e-424b453fd041:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:641eddc6-5d50-4512-9409-a6d9f49e7e8a:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:04264bb0-25f8-4128-b7dc-821f46b7dd54:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "dad722ab-af91-4d03-a313-faab0d9533c5:indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "dad722ab-af91-4d03-a313-faab0d9533c5:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:24732923-c957-4110-8558-e38a86ad50bf:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "426f8706-b652-422d-a763-19eb6a28916f:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "426f8706-b652-422d-a763-19eb6a28916f:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:547ea5a0-a1ae-4a90-8cd0-7ad0e177b613:dashboardId", + "type": "dashboard" + }, + { + "id": "bae88930-1133-11ee-af86-538da1394f27", + "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T21:17:53.197Z", + "version": "WzgyMjcwNiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json b/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json new file mode 100644 index 00000000000..a830b0a6dce --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json @@ -0,0 +1,86 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExists\":true,\"hideExclude\":true,\"id\":\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Software Inventory view displays all installed Applications and Products on a computer, its version, and the last time it was seen.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":true,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},\"panelIndex\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":5,\"h\":10,\"i\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\"},\"panelIndex\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Software Installed\\nTYCHON reports both Windows Store applications and typical installed programs. TYCHON does not drop records when applications are removed and will update apps when they are added or upgraded.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":3,\"w\":7,\"h\":10,\"i\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\"},\"panelIndex\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3\"}],\"state\":{\"visualization\":{\"layerId\":\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\",\"accessor\":\"e78025b8-c96b-45bd-8202-8b5a06fb8355\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\":{\"columns\":{\"e78025b8-c96b-45bd-8202-8b5a06fb8355\":{\"label\":\"Total Software Installed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"package.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"e78025b8-c96b-45bd-8202-8b5a06fb8355\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":3,\"w\":10,\"h\":10,\"i\":\"b75181e4-77ee-4c10-b857-154234080c8c\"},\"panelIndex\":\"b75181e4-77ee-4c10-b857-154234080c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0\"}],\"state\":{\"visualization\":{\"shape\":\"mosaic\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"03a2e212-519d-46f5-868b-a7c914f289e0\",\"primaryGroups\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\"],\"secondaryGroups\":[],\"metrics\":[\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"03a2e212-519d-46f5-868b-a7c914f289e0\":{\"columns\":{\"cbf846c8-f838-4483-8097-2225de0b3d57\":{\"label\":\"Package Types\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\",\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software Type\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":3,\"w\":26,\"h\":10,\"i\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\"},\"panelIndex\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"057703a5-7f81-4be1-82c4-2f27bbf2615c\",\"accessors\":[\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"yConfig\":[{\"forAccessor\":\"3ffc6314-731f-4048-b5b6-a1d673384858\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"057703a5-7f81-4be1-82c4-2f27bbf2615c\":{\"columns\":{\"888ceeac-4036-4b29-a96a-c49d9b4602c3\":{\"label\":\"Publisher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.publisher\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ffc6314-731f-4048-b5b6-a1d673384858\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ffc6314-731f-4048-b5b6-a1d673384858\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software By Publisher\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":33,\"i\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\"},\"panelIndex\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\"}],\"state\":{\"visualization\":{\"layerId\":\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"alignment\":\"left\"},{\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"hidden\":true},{\"columnId\":\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"isTransposed\":false,\"alignment\":\"left\"},{\"columnId\":\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"28fd934b-7413-4196-b397-f42832cfa4c1\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\":{\"columns\":{\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.name\",\"isBucketed\":true,\"params\":{\"size\":500,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"529bf337-2458-4752-a815-7a5d0d84dc32\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a20d1958-fa8e-476c-acf9-74c0323c65d3\":{\"label\":\"Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"28fd934b-7413-4196-b397-f42832cfa4c1\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"28fd934b-7413-4196-b397-f42832cfa4c1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Installed Software and Applications\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Software Inventory", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:46:31.347Z", + "id": "tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "341d7ddd-16bc-4f9d-ab47-a7f337ad3a76:panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76", + "type": "visualization" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "ea1f4eb7-c8ef-4907-a106-734dac97ec4b:indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "b75181e4-77ee-4c10-b857-154234080c8c:indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "92b47b97-ad52-40c2-9b89-bbde77e7f00e:indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "6e3b23f2-6754-4dda-a428-f68e622ed411:indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_8f5ba1f4-07f6-41a9-85c0-6060d10c200a:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "27edf330-3dfd-11ee-9610-15dee918f31a", + "name": "tag-ref-27edf330-3dfd-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:46:31.347Z", + "version": "WzgyMDk3MSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json new file mode 100644 index 00000000000..db71a370ddf --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json @@ -0,0 +1,116 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date < now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Vulnerabilities ", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:51:50.468Z", + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "e243d9ab-d083-4b45-88a2-9581bf3689ae:panel_e243d9ab-d083-4b45-88a2-9581bf3689ae", + "type": "visualization" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "18ef0327-ab0a-46d7-ac9c-bf8d01e28eba:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "0f3331b8-da1a-452c-a1b0-39a5558a1379:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "91a3fb55-660d-48ec-89f2-4e5b3122b49b:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ecee7b3f-f07e-4911-bb36-405e687f3ae0:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "721cfff2-211b-4e21-a5a7-874dcd0e6edc:indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "b146db26-e963-43f4-b2cd-60eb96128506:indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_8c4d7403-b7c0-4274-9e12-cec69c62e01e:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:51:50.468Z", + "version": "WzgyMTUxMywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json new file mode 100644 index 00000000000..5bf5731ad11 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json @@ -0,0 +1,91 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Drives and Disks view displays current Hard Drive and Partitions attached to endpoints at the time TYCHON performed its check.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},\"panelIndex\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | Benchmark Results | Patches | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | Protections\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":12,\"i\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\"},\"panelIndex\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Drives and Volumes\\nInvestigate the hard drives and volumes attached to this endpoint. TYCHON will evaluate this dataset every hour and report all attached drives (hard drives, cd roms, etc.) and all assigned volumes (c:\\\\, d:\\\\, boot, etc.). You will be able to investigate the hardware in-use, the size of the volume and other datapoints critical to the function of the compute on this device.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":6,\"i\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\"},\"panelIndex\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Drives\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":12,\"i\":\"f40d683e-92a6-422e-876c-4363f16dade0\"},\"panelIndex\":\"f40d683e-92a6-422e-876c-4363f16dade0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"bb301745-ba84-41cf-a000-5c7bdf0ae217\"},{\"isTransposed\":false,\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#cc5642\",\"stop\":10},{\"color\":\"#e7664c\",\"stop\":30},{\"color\":\"#d6bf57\",\"stop\":60},{\"color\":\"#54b399\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":0},{\"color\":\"#e7664c\",\"stop\":10},{\"color\":\"#d6bf57\",\"stop\":30},{\"color\":\"#54b399\",\"stop\":60},{\"color\":\"#209280\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"rangeType\":\"percent\"}}},{\"columnId\":\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"isTransposed\":false},{\"columnId\":\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"isTransposed\":false},{\"columnId\":\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"isTransposed\":false},{\"columnId\":\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092C0\",\"stop\":1},{\"color\":\"#54b399\",\"stop\":90},{\"color\":\"#d9816f\",\"stop\":95},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092C0\",\"stop\":0},{\"color\":\"#54b399\",\"stop\":1},{\"color\":\"#d9816f\",\"stop\":90},{\"color\":\"#cc5642\",\"stop\":95}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ab5ae478-53f7-419a-a1ec-7b08492df989\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ab5ae478-53f7-419a-a1ec-7b08492df989\":{\"columns\":{\"bb301745-ba84-41cf-a000-5c7bdf0ae217\":{\"label\":\"Drive Letter\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dc614c64-8d46-46ac-b6a7-419bc064d294\":{\"label\":\"Freespace\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.freespace\",\"filter\":{\"query\":\"volume.freespace: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"31942166-8460-454d-af8d-2f4c3ea1ac36\":{\"label\":\"File System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.file_system\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\":{\"label\":\"Total Size\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"c362c064-87fe-4a40-abae-a2fe669d0d9e\":{\"label\":\"Volume Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\":{\"label\":\"Percent Full\",\"dataType\":\"number\",\"operationType\":\"median\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\":{\"label\":\"System Volume\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.system_volume\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"bb301745-ba84-41cf-a000-5c7bdf0ae217\",\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Volumes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":15,\"w\":48,\"h\":8,\"i\":\"20040d41-ab77-43a7-b5e2-a962b042275c\"},\"panelIndex\":\"20040d41-ab77-43a7-b5e2-a962b042275c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"466ad901-c0e8-4f1c-a36f-b8c8370de454\"},{\"columnId\":\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"isTransposed\":false},{\"columnId\":\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"isTransposed\":false,\"oneClickFilter\":false},{\"columnId\":\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"isTransposed\":false},{\"columnId\":\"5b76281a-e942-4469-ae3a-5d756240a842\",\"isTransposed\":false},{\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"alignment\":\"center\"},{\"columnId\":\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"isTransposed\":false},{\"columnId\":\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"isTransposed\":false},{\"columnId\":\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"isTransposed\":false}],\"layerId\":\"9836a928-d429-4c9f-be78-970504fd7573\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9836a928-d429-4c9f-be78-970504fd7573\":{\"columns\":{\"466ad901-c0e8-4f1c-a36f-b8c8370de454\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a8ee904a-9d39-496b-a859-9bc09827b706\":{\"label\":\"Boot Device\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.is_boot\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\":{\"label\":\"Health\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5b76281a-e942-4469-ae3a-5d756240a842\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\":{\"label\":\"Sum of disk.size\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}}},\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\":{\"label\":\"Offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"da851de3-b924-48b8-afaa-588e632a6cdb\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\":{\"label\":\"Firmware Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.firmware.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"466ad901-c0e8-4f1c-a36f-b8c8370de454\",\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"5b76281a-e942-4469-ae3a-5d756240a842\",\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":7,\"i\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\"},\"panelIndex\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},{\"columnId\":\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"isTransposed\":false},{\"columnId\":\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"faab2332-ae0e-4731-8443-d8beb158987e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\":{\"columns\":{\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\":{\"label\":\"Adapter Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.adapter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\":{\"label\":\"Bus Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.bus\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\":{\"label\":\"Disk Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\":{\"label\":\"PCI Slot\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.pci_slot\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\":{\"label\":\"Function\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.function\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"faab2332-ae0e-4731-8443-d8beb158987e\":{\"label\":\"Device Location\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.device\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"faab2332-ae0e-4731-8443-d8beb158987e\",\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Locations\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":9,\"w\":5,\"h\":6,\"i\":\"13d03391-5f61-4049-833c-e90f550134ee\"},\"panelIndex\":\"13d03391-5f61-4049-833c-e90f550134ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Volumes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Drives and Disks", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:45:01.909Z", + "id": "tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea:panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea", + "type": "visualization" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "aba0b52b-5f8e-4c87-956d-eea8f7c385fb:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", + "type": "index-pattern" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "f40d683e-92a6-422e-876c-4363f16dade0:indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "20040d41-ab77-43a7-b5e2-a962b042275c:indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "4944f397-3eac-4bf8-a31e-8f6477febb89:indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6", + "type": "index-pattern" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "13d03391-5f61-4049-833c-e90f550134ee:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_fddd86d2-bc58-48d0-880d-f1d537f90bdc:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:45:01.909Z", + "version": "WzgyMDc1MywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json new file mode 100644 index 00000000000..b8d53029eb9 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json @@ -0,0 +1,104 @@ +{ + "attributes": { + "description": "TYCHON collects all network adapters attached to computers. It tracks WIFI modules, DHCP lease information as well as Hardware data like drivers and MAC addresses.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":12,\"i\":\"d49517b7-b398-4f73-8ece-762088585b93\"},\"panelIndex\":\"d49517b7-b398-4f73-8ece-762088585b93\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\n\\nTYCHON collects network adapters, including their settings and the hardware associated with them, on an hourly basis. This is a running configuration of the endpoint; updates are sent for previously identified adapters and new records are sent if they are found.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":8,\"h\":12,\"i\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\"},\"panelIndex\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"d0ae3dee-4383-481f-aef0-daf860c05856\",\"primaryGroups\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\"],\"metrics\":[\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":1,\"emptySizeRatio\":0.7,\"collapseFns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d0ae3dee-4383-481f-aef0-daf860c05856\":{\"columns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":{\"label\":\"Top 5 values of host.adapter.ip_filter.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip_filter.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"bd0319f0-b85b-481d-abde-21648d07caa7\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"bd0319f0-b85b-481d-abde-21648d07caa7\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\",\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IP Filtering Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":9,\"h\":12,\"i\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\"},\"panelIndex\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\",\"primaryGroups\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\"],\"metrics\":[\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\":{\"columns\":{\"da1553ec-49af-40ed-ae81-3f0f934cb82c\":{\"label\":\"Top 5 values of host.adapter.dhcp.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e9a53c29-8278-4d38-86d9-c3d714781f13\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"e9a53c29-8278-4d38-86d9-c3d714781f13\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\",\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":0,\"w\":9,\"h\":12,\"i\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\"},\"panelIndex\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\",\"primaryGroups\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\"],\"metrics\":[\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\":{\"columns\":{\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\":{\"label\":\"Top 5 values of host.adapter.wifi.enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"85eb49da-cefb-4e08-b5e1-8a420138b003\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":false},\"85eb49da-cefb-4e08-b5e1-8a420138b003\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\",\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wifi Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":9,\"h\":12,\"i\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\"},\"panelIndex\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce\"}],\"state\":{\"visualization\":{\"layerId\":\"478c5274-7721-46c2-b0f5-d42bd3449cce\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"2601cadf-de30-40c7-84fb-c3f338ccc376\"},{\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"478c5274-7721-46c2-b0f5-d42bd3449cce\":{\"columns\":{\"2601cadf-de30-40c7-84fb-c3f338ccc376\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cb480377-d348-4319-9392-8cd5de727be0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2601cadf-de30-40c7-84fb-c3f338ccc376\",\"cb480377-d348-4319-9392-8cd5de727be0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Authentication\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":0,\"w\":8,\"h\":12,\"i\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\"},\"panelIndex\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\"}],\"state\":{\"visualization\":{\"layerId\":\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\"},{\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\":{\"columns\":{\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"066b12e0-e98d-463e-9786-758d37cdd4cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\",\"066b12e0-e98d-463e-9786-758d37cdd4cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Ciphers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":31,\"h\":12,\"i\":\"543e1534-9b02-483a-a90d-64133a9f3949\"},\"panelIndex\":\"543e1534-9b02-483a-a90d-64133a9f3949\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"aeef0279-8407-4694-9a27-0c3160e7ac86\",\"accessors\":[\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"yConfig\":[{\"forAccessor\":\"bfa9be94-5153-418c-89aa-3629fc8e8977\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"event.code:8502 \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"aeef0279-8407-4694-9a27-0c3160e7ac86\":{\"columns\":{\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\":{\"label\":\"events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"d\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"bfa9be94-5153-418c-89aa-3629fc8e8977\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":12,\"w\":17,\"h\":12,\"i\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\"},\"panelIndex\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"isTransposed\":false},{\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\",\"isTransposed\":false}],\"layerId\":\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\":{\"columns\":{\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"afb2746e-d5b5-4e13-b935-4d5c2d553258\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wireless SSIDs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":31,\"h\":15,\"i\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\"},\"panelIndex\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"844bced9-2788-47f0-a95c-866804591aab\"},{\"isTransposed\":false,\"columnId\":\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\"},{\"isTransposed\":false,\"columnId\":\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\"},{\"isTransposed\":false,\"columnId\":\"97cd8085-627d-4dc1-b014-3b9a9281a580\"},{\"isTransposed\":false,\"columnId\":\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\"},{\"isTransposed\":false,\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\",\"hidden\":true},{\"columnId\":\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"isTransposed\":false,\"oneClickFilter\":true}],\"layerId\":\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\":{\"columns\":{\"844bced9-2788-47f0-a95c-866804591aab\":{\"label\":\"Host IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\":{\"label\":\"Adapter IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"97cd8085-627d-4dc1-b014-3b9a9281a580\":{\"label\":\"Adapter MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"887116a6-6ac3-4495-a2b0-dffe493e7963\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fd305582-42c8-4034-af5b-9bad7687ca56\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"844bced9-2788-47f0-a95c-866804591aab\",\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\",\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\",\"97cd8085-627d-4dc1-b014-3b9a9281a580\",\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\",\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"887116a6-6ac3-4495-a2b0-dffe493e7963\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"f98ddf9f-1272-4629-a78f-34be39b396c9\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Adapter Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":24,\"w\":17,\"h\":29,\"i\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\"},\"panelIndex\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"60a1e7e5-b330-4283-801d-5257bd50d8ff\"},{\"isTransposed\":false,\"columnId\":\"cc510be1-9910-472e-9293-4d969fed4df5\"},{\"isTransposed\":false,\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"width\":164.4,\"hidden\":true},{\"columnId\":\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"84773659-f553-44c6-a891-2a319c961733\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\":{\"columns\":{\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"60a1e7e5-b330-4283-801d-5257bd50d8ff\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc510be1-9910-472e-9293-4d969fed4df5\":{\"label\":\"DHCP Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"298203d5-0914-4aaa-97a8-bd1a1c99f441\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"84773659-f553-44c6-a891-2a319c961733\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"60a1e7e5-b330-4283-801d-5257bd50d8ff\",\"cc510be1-9910-472e-9293-4d969fed4df5\",\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"84773659-f553-44c6-a891-2a319c961733\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"06b99334-2f3a-4fea-88a9-f8ff484a0273\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"DHCP Leases\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":31,\"h\":14,\"i\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\"},\"panelIndex\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"80d969cb-519d-4f44-896e-414e3855ff30\"},{\"isTransposed\":false,\"columnId\":\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\"},{\"isTransposed\":false,\"columnId\":\"5ed2292c-513d-4a4b-81f0-450b471824bf\"},{\"isTransposed\":false,\"columnId\":\"0d310f9d-a56d-4091-979d-170a9f4c6933\"},{\"isTransposed\":false,\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\",\"width\":139.66666666666666,\"hidden\":true}],\"layerId\":\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\":{\"columns\":{\"80d969cb-519d-4f44-896e-414e3855ff30\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\":{\"label\":\"Driver Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5ed2292c-513d-4a4b-81f0-450b471824bf\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0d310f9d-a56d-4091-979d-170a9f4c6933\":{\"label\":\"File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4ebd68ae-b793-42be-a295-0271f7ab93cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"80d969cb-519d-4f44-896e-414e3855ff30\",\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\",\"5ed2292c-513d-4a4b-81f0-450b471824bf\",\"0d310f9d-a56d-4091-979d-170a9f4c6933\",\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Network Card Drivers\"}]", + "timeRestore": false, + "title": "[TYCHON] Host Network Adapters", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-24T11:25:58.181Z", + "id": "tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-newtorkadapter", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "7f62756c-e202-4cfe-941c-efadbe5e5d44:indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "e32e4e7e-d84d-4f31-9a0d-a57ab471c406:indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "9936786e-a55c-4b9a-aa4b-b8d980f57126:indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "df122ed7-85d7-41b1-a9a9-047e43b8f3a1:indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "d648a9c0-0648-419b-b79b-71e1ee8a9a72:indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "543e1534-9b02-483a-a90d-64133a9f3949:indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "1f76e42c-0430-4e02-97bb-62ebd19fd592:indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1", + "type": "index-pattern" + }, + { + "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", + "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:f98ddf9f-1272-4629-a78f-34be39b396c9:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592", + "type": "index-pattern" + }, + { + "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", + "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:06b99334-2f3a-4fea-88a9-f8ff484a0273:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "e44243ce-1dd7-4d08-bdfd-ada361b702ba:indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e", + "type": "index-pattern" + }, + { + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-24T11:25:58.181Z", + "version": "WzgyNzcwNywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json new file mode 100644 index 00000000000..f7565796496 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json @@ -0,0 +1,151 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Host Information view displays overall Operating System data and summary information from its subordinate datasets (disks, drives, vulnerabilities, benchmarks, etc.).", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},\"panelIndex\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":10,\"i\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\"},\"panelIndex\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"92d62e85-e917-436d-b8d3-f69df24ed02b\",\"type\":\"markdown\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"5c94a663-8135-4c09-acdf-a8e828c62ef4\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"2f2e4338-bd68-4176-966b-1f6aae9574e6\",\"type\":\"top_hit\",\"field\":\"host.os.name\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osname\",\"var_name\":\"osname\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"f04dc8d0-4151-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"f04dc8d1-4151-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.architecture\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostarch\",\"var_name\":\"hostarch\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"07d09d20-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"07d09d21-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.kernel\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostkern\",\"var_name\":\"hostkern\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"24089510-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"24089511-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.version\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osver\",\"var_name\":\"osver\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"b292c170-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"b292c171-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.description\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osdesc\",\"var_name\":\"osdesc\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"d3de77c0-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"d3de77c1-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.edition\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osedition\",\"var_name\":\"osedition\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"230bf020-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"230bf021-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.organization\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osorg\",\"var_name\":\"osorg\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"3b35d9e0-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"3b35d9e1-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.platform\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osplatform\",\"var_name\":\"osplatform\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"82b7d200-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"82b7d201-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.build\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osbuild\",\"var_name\":\"osbuild\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"markdown\":\"**Platform:** {{ osplatform.osplatform.last.formatted }} \\\\\\r\\n**Operating System:** {{ osname.osname.last.formatted }} \\\\\\r\\n**Architecture:** {{ hostarch.hostarch.last.formatted }} \\\\\\r\\n**Kernel:** {{ hostkern.hostkern.last.formatted }} \\\\\\r\\n**Version:** {{ osver.osver.last.formatted }} \\\\\\r\\n**Build:** {{ osbuild.osbuild.last.formatted }} \\\\\\r\\n**Description:** {{ osdesc.osdesc.last.formatted }} \\\\\\r\\n**Edition:** {{ osedition.osedition.last.formatted }} \\\\\\r\\n**Organization:** {{ osorg.osorg.last.formatted }}\",\"index_pattern_ref_name\":\"metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"OS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":17,\"h\":5,\"i\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\"},\"panelIndex\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212\"}],\"state\":{\"visualization\":{\"layerId\":\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\",\"hidden\":true},{\"columnId\":\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"isTransposed\":false},{\"columnId\":\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"isTransposed\":false},{\"columnId\":\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\":{\"columns\":{\"5db71250-e4a6-4352-9841-60bda3bb3d61\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"5ed56c44-5133-41e1-a6b9-53625ce522d3\":{\"label\":\"BIOS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.name\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\":{\"label\":\"BIOS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\":{\"label\":\"BIOS Serialnumber\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.biossn\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"5db71250-e4a6-4352-9841-60bda3bb3d61\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host BIOS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":3,\"w\":25,\"h\":5,\"i\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\"},\"panelIndex\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\"},{\"isTransposed\":false,\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\",\"hidden\":true},{\"columnId\":\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"isTransposed\":false},{\"columnId\":\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"isTransposed\":false},{\"columnId\":\"074126a4-578b-4f8d-85df-0a460025e011\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"596cb7b8-af7b-40db-affa-e7591c0165be\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"596cb7b8-af7b-40db-affa-e7591c0165be\":{\"columns\":{\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\":{\"label\":\"System Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f437a99-d536-4931-ae23-18509767b878\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\":{\"label\":\"Owner\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.owner\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9936688-2921-4cc7-b058-e0fc26c376ec\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"074126a4-578b-4f8d-85df-0a460025e011\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\",\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"074126a4-578b-4f8d-85df-0a460025e011\",\"0f437a99-d536-4931-ae23-18509767b878\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Computer Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":8,\"w\":42,\"h\":5,\"i\":\"7412b1ca-0c47-4905-aa6a-474686887f76\"},\"panelIndex\":\"7412b1ca-0c47-4905-aa6a-474686887f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"width\":387.2857142857143},{\"isTransposed\":false,\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},{\"columnId\":\"b718099c-427c-4132-95e5-660deafe078c\",\"isTransposed\":false},{\"columnId\":\"54346d91-c191-4452-a917-df1c036d9795\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":188.61904761904765},{\"columnId\":\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":196.21904761904761},{\"columnId\":\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":217.71904761904761},{\"columnId\":\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"21cf6cf3-6399-4b45-8e70-849aa6623d06\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"21cf6cf3-6399-4b45-8e70-849aa6623d06\":{\"columns\":{\"0f5c4a52-d271-4328-95b6-6c69453180bc\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52e60488-e5d3-40c2-80a0-07344374be6d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"b718099c-427c-4132-95e5-660deafe078c\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"54346d91-c191-4452-a917-df1c036d9795\":{\"label\":\"Cores\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\":{\"label\":\"Processors\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"eba3a044-1b3b-4a95-85a1-b16eda075894\":{\"label\":\"Speed GHZ\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"1d0ad394-868c-4a94-984b-20325b2e1304\":{\"label\":\"Virtualization Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.virtualization_firmware_enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\":{\"label\":\"Family\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.family\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\":{\"label\":\"Clock Speed\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"b718099c-427c-4132-95e5-660deafe078c\",\"54346d91-c191-4452-a917-df1c036d9795\",\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"52e60488-e5d3-40c2-80a0-07344374be6d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"System CPU\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":6,\"h\":6,\"i\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\"},\"panelIndex\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#CB4848\",\"stop\":4}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#CB4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\":{\"label\":\"Failing Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"69270630-ea7e-41db-a897-69da6ff72cdf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Vulnerabilities for this endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":13,\"w\":42,\"h\":7,\"i\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\"},\"panelIndex\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2\"}],\"state\":{\"visualization\":{\"layerId\":\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"alignment\":\"center\"},{\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"85ee823b-6334-4687-ab5f-43570c69996c\",\"isTransposed\":false},{\"columnId\":\"ab0584bf-ccba-47f9-8185-655880391447\",\"isTransposed\":false,\"width\":118.66666666666663,\"alignment\":\"center\"},{\"columnId\":\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":156.66666666666669},{\"columnId\":\"697b46cb-1d88-49da-9761-25a974891b4a\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\":{\"columns\":{\"359f23a5-abc4-4204-bbf3-16951a7c5d72\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"34e5c607-4963-4388-a2d1-5c925ff7ea54\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"85ee823b-6334-4687-ab5f-43570c69996c\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab0584bf-ccba-47f9-8185-655880391447\":{\"label\":\"DHCP\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f3863ce5-8d01-4f5e-a42b-137410f47c41\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52fb95cb-0446-4db0-93d7-d79a7fea0344\":{\"label\":\"Vitual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"697b46cb-1d88-49da-9761-25a974891b4a\":{\"label\":\"Connected SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"85ee823b-6334-4687-ab5f-43570c69996c\",\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"ab0584bf-ccba-47f9-8185-655880391447\",\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"697b46cb-1d88-49da-9761-25a974891b4a\",\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Network Cards Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Network Adapters\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":19,\"w\":6,\"h\":6,\"i\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\"},\"panelIndex\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cb4848\",\"stop\":64}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#cb4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\":{\"label\":\"Failed High SCAP\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" and rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5726c30e-a24d-4b78-9d26-deb2771144bd\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Hosts Benchmark Data\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":20,\"w\":42,\"h\":7,\"i\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\"},\"panelIndex\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"2e01df65-7787-4e15-86e3-a45eed285033\"},{\"isTransposed\":false,\"columnId\":\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\"},{\"columnId\":\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"isTransposed\":false},{\"columnId\":\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\":{\"columns\":{\"2e01df65-7787-4e15-86e3-a45eed285033\":{\"label\":\"Percent Full\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\":{\"label\":\"Drive\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\":{\"label\":\"Total Size\",\"dataType\":\"string\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ordinal\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"37ea1f0a-2f23-4435-9866-6d11677ca86b\":{\"label\":\"Freespace\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.freespace\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\",\"2e01df65-7787-4e15-86e3-a45eed285033\",\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"97fe566e-2647-47dc-a6fb-ccbbc69f8985\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Volumes and Drives for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Volumes \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":6,\"h\":7,\"i\":\"9b009011-6f72-4379-a69b-21e6feedfce7\"},\"panelIndex\":\"9b009011-6f72-4379-a69b-21e6feedfce7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd\"}],\"state\":{\"visualization\":{\"layerId\":\"4ac1c77b-306c-4a94-b080-f204193d6efd\",\"layerType\":\"data\",\"metricAccessor\":\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"maxAccessor\":\"00b8ad38-df28-49ec-a473-348fd0305876\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#d6bf57\",\"stop\":4},{\"color\":\"#cc5642\",\"stop\":14}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":4}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4ac1c77b-306c-4a94-b080-f204193d6efd\":{\"columns\":{\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.virtualizationbasedsecurity.status:Off\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.secureboot.available:false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.ueficodereadonly.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.ufi.enabled: false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"location\":{\"min\":0,\"max\":1030},\"text\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\"}},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\":{\"label\":\"Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\",\"isFormulaBroken\":false},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"customLabel\":true},\"00b8ad38-df28-49ec-a473-348fd0305876\":{\"label\":\"Static value: 15\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"15\"},\"references\":[]}},\"columnOrder\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"00b8ad38-df28-49ec-a473-348fd0305876\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"c3bbd434-5b28-4d1a-8013-b1553f622b22\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":27,\"w\":42,\"h\":5,\"i\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\"},\"panelIndex\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"isTransposed\":false},{\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"isTransposed\":false},{\"columnId\":\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"isTransposed\":false},{\"columnId\":\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"isTransposed\":false}],\"layerId\":\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\":{\"columns\":{\"7652d41d-2e97-48fd-93e2-e824d0429eb7\":{\"label\":\"AntiVirus Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6f018424-e6a2-4360-be1e-df25d68727f5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\":{\"label\":\"AV Exists\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.exists\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"795022df-3834-4ba5-b1a4-b747e4da1e2a\":{\"label\":\"State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.state\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c984f83e-d094-47ea-87d2-3dcd7154ae37\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"6f018424-e6a2-4360-be1e-df25d68727f5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e7f01244-f435-4359-ab17-7faca8d78f98\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Antivirus Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":32,\"w\":48,\"h\":4,\"i\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\"},\"panelIndex\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"isTransposed\":false},{\"columnId\":\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"isTransposed\":false},{\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"isTransposed\":false},{\"columnId\":\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\",\"isTransposed\":false},{\"columnId\":\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"isTransposed\":false,\"width\":695}],\"layerId\":\"ee0f709e-2211-41d5-afc0-086b3eb4d692\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ee0f709e-2211-41d5-afc0-086b3eb4d692\":{\"columns\":{\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\":{\"label\":\"TYCHON Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.agent\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\":{\"label\":\"Content Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.content\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\":{\"label\":\"OVAL Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.oval\",\"filter\":{\"query\":\"tychon.definition.oval: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\":{\"label\":\"SCAP Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.stig\",\"filter\":{\"query\":\"tychon.definition.stig: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"f80b87d6-0e6b-4489-863b-0164f889b4e6\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TYCHON Agentless Info\"},{\"version\":\"8.6.2\",\"type\":\"LOG_STREAM_EMBEDDABLE\",\"gridData\":{\"x\":0,\"y\":36,\"w\":48,\"h\":17,\"i\":\"649e620d-4cf9-4c17-978b-113e3df64c46\"},\"panelIndex\":\"649e620d-4cf9-4c17-978b-113e3df64c46\",\"embeddableConfig\":{\"enhancements\":{}},\"title\":\"Log stream\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Host Information", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-24T15:35:21.428Z", + "id": "tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d:panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d", + "type": "visualization" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "a5029f8a-476b-4375-bb7a-d60889ade8a4:metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "8ecc8919-ac6e-4281-a356-05f552ccf10f:indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "fd21cc47-2ac3-4a88-8598-c458a47d1e90:indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "7412b1ca-0c47-4905-aa6a-474686887f76:indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", + "type": "index-pattern" + }, + { + "id": "2de7a3c0-3e08-11ee-9610-15dee918f31a", + "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:69270630-ea7e-41db-a897-69da6ff72cdf:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2", + "type": "index-pattern" + }, + { + "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", + "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b:dashboardId", + "type": "dashboard" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", + "type": "index-pattern" + }, + { + "id": "e1c9c490-41a5-11ee-83e4-c92ed141b9e5", + "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5726c30e-a24d-4b78-9d26-deb2771144bd:dashboardId", + "type": "dashboard" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d", + "type": "index-pattern" + }, + { + "id": "380b6c10-3dbd-11ee-9610-15dee918f31a", + "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:97fe566e-2647-47dc-a6fb-ccbbc69f8985:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "9b009011-6f72-4379-a69b-21e6feedfce7:indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "9b009011-6f72-4379-a69b-21e6feedfce7:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:c3bbd434-5b28-4d1a-8013-b1553f622b22:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0", + "type": "index-pattern" + }, + { + "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", + "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e7f01244-f435-4359-ab17-7faca8d78f98:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2:indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-24T15:35:21.428Z", + "version": "WzgzMzgzMywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json index f17a22ff011..41b79921281 100644 --- a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json @@ -1,171 +1,176 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\":{\"order\":0,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.ip\",\"title\":\"Host IP:\",\"id\":\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\",\"enhancements\":{}}},\"1b36863c-a2c8-4696-b534-12cebeca49d1\":{\"order\":2,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.id\",\"title\":\"CVE ID\",\"id\":\"1b36863c-a2c8-4696-b534-12cebeca49d1\",\"enhancements\":{}}},\"67760ce6-5bda-4c39-8960-45439ff4d45b\":{\"order\":3,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.iava\",\"title\":\"IAVA ID:\",\"id\":\"67760ce6-5bda-4c39-8960-45439ff4d45b\",\"enhancements\":{}}},\"9c746f36-33ae-4b53-bb32-7153abb17ba4\":{\"order\":1,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.mac\",\"title\":\"MAC Address\",\"id\":\"9c746f36-33ae-4b53-bb32-7153abb17ba4\",\"enhancements\":{}}},\"db910041-b09f-4b02-b3fe-70c3db05ff62\":{\"order\":4,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.os.name\",\"title\":\"Operating System\",\"id\":\"db910041-b09f-4b02-b3fe-70c3db05ff62\",\"enhancements\":{}}}}" - }, - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"vulnerability.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Monitored CVE Count\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Host Monitored\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\"},{\"type\":\"index-pattern\",\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\"},{\"type\":\"index-pattern\",\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"},{\"type\":\"index-pattern\",\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\"},{\"type\":\"index-pattern\",\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":11,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":580.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\"},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\"}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":11,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] - Vulnerability Dashboard", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T15:20:14.754Z", - "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "886b38ad-89f2-4800-ae61-61bcdb4e3b07:indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:684eca00-cba8-4853-a931-4e9d535efaec", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:044d8cc9-a39b-4007-94e6-d34fd9dc0970", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:27d89493-bc6a-4979-a35a-59a5983c3d4c", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:28b051dd-fb8d-449a-b21a-2d70308979bb", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "5dc1ffd0-8ed6-4d64-975b-7522c194ea8c:indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "c83f05f4-47e2-4b2d-a359-c8ab8ac09e88:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ab52ed71-894c-466e-b53f-7f0dec7852be:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "35429b34-65a5-4af0-99b6-b9980cdc13ba:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ec9edb3d-0069-489a-94a7-c7ee626b9f76:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "f4148e30-8031-419e-aafc-375334eb93bb:indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "26748b80-0759-4316-b554-d2309ea63ce6:indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_a8ba17fc-ba2f-4329-95f5-e4d645c5ae59:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_1b36863c-a2c8-4696-b534-12cebeca49d1:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_67760ce6-5bda-4c39-8960-45439ff4d45b:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_9c746f36-33ae-4b53-bb32-7153abb17ba4:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_db910041-b09f-4b02-b3fe-70c3db05ff62:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "9c222660-1100-11ee-af86-538da1394f27", - "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-06-22T15:20:14.754Z", - "version": "WzI4MTg4NiwxM10=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\":{\"order\":0,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.ip\",\"title\":\"Host IP:\",\"id\":\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\",\"enhancements\":{}}},\"1b36863c-a2c8-4696-b534-12cebeca49d1\":{\"order\":2,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.id\",\"title\":\"CVE ID\",\"id\":\"1b36863c-a2c8-4696-b534-12cebeca49d1\",\"enhancements\":{}}},\"67760ce6-5bda-4c39-8960-45439ff4d45b\":{\"order\":3,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.iava\",\"title\":\"IAVA ID:\",\"id\":\"67760ce6-5bda-4c39-8960-45439ff4d45b\",\"enhancements\":{}}},\"9c746f36-33ae-4b53-bb32-7153abb17ba4\":{\"order\":1,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.mac\",\"title\":\"MAC Address\",\"id\":\"9c746f36-33ae-4b53-bb32-7153abb17ba4\",\"enhancements\":{}}},\"db910041-b09f-4b02-b3fe-70c3db05ff62\":{\"order\":4,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.os.name\",\"title\":\"Operating System\",\"id\":\"db910041-b09f-4b02-b3fe-70c3db05ff62\",\"enhancements\":{}}}}" + }, + "description": "TYCHON scans vulnerabilities on every endpoint, it has thousands of checks and leverages the OVAL standard to determine if a CVE applies to an endpoint. TYCHON updates scan results for failed vulnerabilities every hour and performs full vulnerability checks at every reboot of a computer. The results and findings display in this dashboard.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"vulnerability.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Monitored CVE Count\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Host Monitored\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":11,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":11,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] - Vulnerability Dashboard", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:54:42.361Z", + "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "886b38ad-89f2-4800-ae61-61bcdb4e3b07:indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:684eca00-cba8-4853-a931-4e9d535efaec", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:044d8cc9-a39b-4007-94e6-d34fd9dc0970", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:27d89493-bc6a-4979-a35a-59a5983c3d4c", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:28b051dd-fb8d-449a-b21a-2d70308979bb", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "5dc1ffd0-8ed6-4d64-975b-7522c194ea8c:indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "c83f05f4-47e2-4b2d-a359-c8ab8ac09e88:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ab52ed71-894c-466e-b53f-7f0dec7852be:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "35429b34-65a5-4af0-99b6-b9980cdc13ba:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ec9edb3d-0069-489a-94a7-c7ee626b9f76:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "f4148e30-8031-419e-aafc-375334eb93bb:indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "26748b80-0759-4316-b554-d2309ea63ce6:indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_a8ba17fc-ba2f-4329-95f5-e4d645c5ae59:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_1b36863c-a2c8-4696-b534-12cebeca49d1:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_67760ce6-5bda-4c39-8960-45439ff4d45b:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_9c746f36-33ae-4b53-bb32-7153abb17ba4:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_db910041-b09f-4b02-b3fe-70c3db05ff62:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:54:42.361Z", + "version": "WzgyMTY2MSwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json new file mode 100644 index 00000000000..64260f4cb01 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json @@ -0,0 +1,100 @@ +{ + "attributes": { + "description": "TYCHON collects information about hard drives and volumes attached to computers.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":28,\"h\":27,\"i\":\"b5ddabd8-3016-4232-b28b-06d714106a89\"},\"panelIndex\":\"b5ddabd8-3016-4232-b28b-06d714106a89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\"},{\"isTransposed\":false,\"columnId\":\"aebe1da3-7bee-43ec-8a75-a8be55373d20\"},{\"isTransposed\":false,\"columnId\":\"040edfd5-86a3-4298-9068-e97f6828acc2\"},{\"isTransposed\":false,\"columnId\":\"317c7190-beca-4bee-80ad-791840ec4b41\"},{\"isTransposed\":false,\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"}],\"layerId\":\"221c8cb0-1779-45ef-8d12-3923317e3366\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"221c8cb0-1779-45ef-8d12-3923317e3366\":{\"columns\":{\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aebe1da3-7bee-43ec-8a75-a8be55373d20\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"040edfd5-86a3-4298-9068-e97f6828acc2\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"317c7190-beca-4bee-80ad-791840ec4b41\":{\"label\":\"Partition Style\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.partition_style\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\",\"aebe1da3-7bee-43ec-8a75-a8be55373d20\",\"040edfd5-86a3-4298-9068-e97f6828acc2\",\"317c7190-beca-4bee-80ad-791840ec4b41\",\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Physical Disks\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":0,\"w\":13,\"h\":17,\"i\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\"},\"panelIndex\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e\"}],\"state\":{\"visualization\":{\"layerId\":\"002038df-af67-4b41-9b1c-06b855c4713e\",\"layerType\":\"data\",\"metricAccessor\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\",\"breakdownByAccessor\":\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"maxCols\":2},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"002038df-af67-4b41-9b1c-06b855c4713e\":{\"columns\":{\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9dffdf45-9da5-41d1-8c37-437e1d70306e\":{\"label\":\"Top 10 values of host.hardware.manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Avg Disk Size by Manufacturer\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":17,\"i\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\"},\"panelIndex\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd\"}],\"state\":{\"visualization\":{\"layerId\":\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\",\"layerType\":\"data\",\"metricAccessor\":\"6d005070-a8da-48b0-b946-da89fbabd90e\",\"breakdownByAccessor\":\"d990970c-7e22-4928-805b-18a6962b6799\",\"color\":\"#ededed\",\"maxCols\":1,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\":{\"columns\":{\"6d005070-a8da-48b0-b946-da89fbabd90e\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"d990970c-7e22-4928-805b-18a6962b6799\":{\"label\":\"Operating System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.platform\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6d005070-a8da-48b0-b946-da89fbabd90e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d990970c-7e22-4928-805b-18a6962b6799\",\"6d005070-a8da-48b0-b946-da89fbabd90e\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":17,\"w\":5,\"h\":23,\"i\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\"},\"panelIndex\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\":{\"columns\":{\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\":{\"label\":\"System Disk\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.system\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":17,\"w\":5,\"h\":23,\"i\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\"},\"panelIndex\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617\"}],\"state\":{\"visualization\":{\"layerId\":\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"986480e5-18b5-4695-85ce-5266db9d4f47\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\":{\"columns\":{\"986480e5-18b5-4695-85ce-5266db9d4f47\":{\"label\":\"Bootable Drive\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.boot_from\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"986480e5-18b5-4695-85ce-5266db9d4f47\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":38,\"y\":17,\"w\":5,\"h\":23,\"i\":\"d401251f-ad81-4c51-9844-f7b09319b927\"},\"panelIndex\":\"d401251f-ad81-4c51-9844-f7b09319b927\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0\"}],\"state\":{\"visualization\":{\"layerId\":\"e8b77360-a165-4a1b-8178-1269a1ddcce0\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"838e1571-1035-4b70-be49-400aec480639\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e8b77360-a165-4a1b-8178-1269a1ddcce0\":{\"columns\":{\"838e1571-1035-4b70-be49-400aec480639\":{\"label\":\"Clustered\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.clustered\",\"isBucketed\":false,\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}},\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"838e1571-1035-4b70-be49-400aec480639\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":17,\"w\":5,\"h\":23,\"i\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\"},\"panelIndex\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8\"}],\"state\":{\"visualization\":{\"layerId\":\"9c59f356-6617-4fb4-8d1d-0a31def292f8\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33},{\"color\":\"#7AABDA\",\"stop\":66.5},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33},{\"color\":\"#6092C0\",\"stop\":66.5}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"771f348e-4c25-4739-ab12-de837a5611fb\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9c59f356-6617-4fb4-8d1d-0a31def292f8\":{\"columns\":{\"771f348e-4c25-4739-ab12-de837a5611fb\":{\"label\":\"Highly Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.highly_available\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"771f348e-4c25-4739-ab12-de837a5611fb\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":27,\"w\":10,\"h\":13,\"i\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\"},\"panelIndex\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"f62528d5-75c0-4261-a0e4-b78884ac618b\",\"primaryGroups\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\"],\"metrics\":[\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f62528d5-75c0-4261-a0e4-b78884ac618b\":{\"columns\":{\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\":{\"label\":\"Top 5 values of disk.health_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\",\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Overall drive health\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":10,\"y\":27,\"w\":10,\"h\":13,\"i\":\"452aa111-8e0c-4403-9c94-3602ec607617\"},\"panelIndex\":\"452aa111-8e0c-4403-9c94-3602ec607617\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\",\"primaryGroups\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\"],\"metrics\":[\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"numberDisplay\":\"hidden\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\":{\"columns\":{\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"94813be9-4122-4d2d-a449-f24cc8a62167\":{\"label\":\"Top 2 values of disk.offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\",\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Offline\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":27,\"w\":8,\"h\":13,\"i\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\"},\"panelIndex\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca\"}],\"state\":{\"visualization\":{\"layerId\":\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\",\"layerType\":\"data\",\"breakdownByAccessor\":\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"metricAccessor\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\",\"maxCols\":2,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\":{\"columns\":{\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\":{\"label\":\"Top 2 values of disk.operational_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.operational_status\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\":{\"label\":\"Count of Disks\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Host Drives", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T19:54:38.220Z", + "id": "tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "b5ddabd8-3016-4232-b28b-06d714106a89:indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "6859fbab-c985-4bfe-9100-8c5e5326021d:indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "cb0c8de2-4fd0-4911-9e61-adab9c11c090:indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "db1eb37d-8675-44d1-891a-9a8a7c2e8ade:indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "f85bb00e-3b05-48b5-a447-fb210ba95ff9:indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "d401251f-ad81-4c51-9844-f7b09319b927:indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "3d2627b6-09a8-41ff-8e43-9deb9125cf9b:indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "af88c038-d0f3-4189-acbc-4c61caca3bdb:indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "452aa111-8e0c-4403-9c94-3602ec607617:indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "56fbe10e-dff8-4436-8a42-588b38208cfc:indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca", + "type": "index-pattern" + }, + { + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T19:54:38.220Z", + "version": "WzgxODg4MiwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json b/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json new file mode 100644 index 00000000000..e9f529fd3a1 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json @@ -0,0 +1,106 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\":{\"order\":0,\"width\":\"small\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"host.hostname\",\"id\":\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\",\"enhancements\":{}}}}" + }, + "description": "TYCHON collects the CPUs attached to an endpoint and records it as part of an endpoint's current state.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":13,\"i\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\"},\"panelIndex\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\"}],\"state\":{\"visualization\":{\"layerId\":\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\",\"accessor\":\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\",\"colorMode\":\"None\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\":{\"columns\":{\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":6,\"h\":13,\"i\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\"},\"panelIndex\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg Clockspeed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":0,\"w\":6,\"h\":13,\"i\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\"},\"panelIndex\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg CPU Speed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":13,\"i\":\"1fd537c1-8c02-4381-8205-51082031f6e8\"},\"panelIndex\":\"1fd537c1-8c02-4381-8205-51082031f6e8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373\"},{\"type\":\"index-pattern\",\"name\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\"}],\"state\":{\"visualization\":{\"layerId\":\"cb07cf4d-d716-4baf-be01-16f87e981373\",\"accessor\":\"d5f83eee-7539-4f81-b82f-df6437e6c19b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"type\":\"exists\",\"key\":\"tychon.id\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"tychon.id\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb07cf4d-d716-4baf-be01-16f87e981373\":{\"columns\":{\"d5f83eee-7539-4f81-b82f-df6437e6c19b\":{\"label\":\"Virtualized Firmware Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.cpu.virtualization_firmware_enabled : true \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"d5f83eee-7539-4f81-b82f-df6437e6c19b\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"Virtualization Firmware Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":13,\"i\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\"},\"panelIndex\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\"},{\"isTransposed\":false,\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\",\"hidden\":true,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"summaryRow\":\"avg\"},{\"columnId\":\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"isTransposed\":false,\"alignment\":\"center\",\"summaryRow\":\"avg\"}],\"layerId\":\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"direction\":\"asc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\":{\"columns\":{\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"42dd2ee2-bc93-420d-accf-98ce681d07e6\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"min\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ca5a9861-c2f3-410a-be88-410a360f15a5\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"10a4327d-d156-471f-9695-32836a13f2c7\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\",\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"10a4327d-d156-471f-9695-32836a13f2c7\",\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 100 Chipsets\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":21,\"i\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\"},\"panelIndex\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a76b7191-7ce1-41ce-8df5-868260fc46b6\"},{\"isTransposed\":false,\"columnId\":\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\"},{\"isTransposed\":false,\"columnId\":\"7e900d75-20d0-43bf-8dea-bf4d594416af\"},{\"isTransposed\":false,\"columnId\":\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\"},{\"isTransposed\":false,\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\",\"hidden\":true},{\"isTransposed\":false,\"columnId\":\"d56fc6a7-9748-47c7-8379-a29823b578bb\"},{\"isTransposed\":false,\"columnId\":\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\"},{\"isTransposed\":false,\"columnId\":\"00f91685-a38f-449d-94c3-5f2428aec1b4\"}],\"layerId\":\"759ddcaa-7578-426f-9a74-24c6026ed05b\",\"layerType\":\"data\",\"paging\":{\"size\":10,\"enabled\":true},\"rowHeight\":\"auto\",\"headerRowHeight\":\"auto\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"759ddcaa-7578-426f-9a74-24c6026ed05b\":{\"columns\":{\"a76b7191-7ce1-41ce-8df5-868260fc46b6\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7e900d75-20d0-43bf-8dea-bf4d594416af\":{\"label\":\"Architecture\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.architecture\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"724d8257-99b5-4149-9007-f97df1355eac\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d56fc6a7-9748-47c7-8379-a29823b578bb\":{\"label\":\"# of Cores\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\":{\"label\":\"Logical Processors\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"00f91685-a38f-449d-94c3-5f2428aec1b4\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"a76b7191-7ce1-41ce-8df5-868260fc46b6\",\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\",\"7e900d75-20d0-43bf-8dea-bf4d594416af\",\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\",\"724d8257-99b5-4149-9007-f97df1355eac\",\"d56fc6a7-9748-47c7-8379-a29823b578bb\",\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\",\"00f91685-a38f-449d-94c3-5f2428aec1b4\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5c2fbf68-47f9-403f-a3a9-71b9b7c870ef\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Information\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":34,\"w\":48,\"h\":10,\"i\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\"},\"panelIndex\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"ca388af1-4820-4a41-b392-da6c505cfc19\",\"accessors\":[\"4801ad21-f333-4454-968c-49415af0dc0b\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"yConfig\":[{\"forAccessor\":\"4801ad21-f333-4454-968c-49415af0dc0b\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ca388af1-4820-4a41-b392-da6c505cfc19\":{\"columns\":{\"37228917-276b-4623-b15e-f3426e2f4a0b\":{\"label\":\"Report Events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0bX0\":{\"label\":\"Part of Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count()\",\"isFormulaBroken\":false},\"references\":[\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"customLabel\":true}},\"columnOrder\":[\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"4801ad21-f333-4454-968c-49415af0dc0b\",\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Events Reported over Time\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Host CPUs", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:53:52.146Z", + "id": "tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "d484eecf-9300-4edc-86ad-1d364f2cd912:indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "c546b60e-cb07-4096-a664-ddc9c3cfdf34:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "a6b31f35-2b50-4382-91ab-d4d444435cd5:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "1fd537c1-8c02-4381-8205-51082031f6e8:indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "1fd537c1-8c02-4381-8205-51082031f6e8:4e5bed99-c054-480f-97cb-e4add7cda1ec", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "082ec4db-99e5-4bcb-a0bf-1b574d96e0ab:indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b", + "type": "index-pattern" + }, + { + "id": "6165bf50-3dbf-11ee-9610-15dee918f31a", + "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5c2fbf68-47f9-403f-a3a9-71b9b7c870ef:dashboardId", + "type": "dashboard" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "86be9e95-687e-4826-b72c-3d2b4f574a85:indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "controlGroup_37c0c6aa-5a66-4423-8f05-c055e3679ed7:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "b08ff050-41c5-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-b08ff050-41c5-11ee-83e4-c92ed141b9e5", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:53:52.146Z", + "version": "WzgyMTY0NiwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json b/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json new file mode 100644 index 00000000000..03a289d9664 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json @@ -0,0 +1,96 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\":{\"order\":0,\"width\":\"medium\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Hardware Inventory view displays all hardware currently or previously attached to a computer.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"ae9194f3-7df8-415d-870c-3480f12e4971\"},\"panelIndex\":\"ae9194f3-7df8-415d-870c-3480f12e4971\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_ae9194f3-7df8-415d-870c-3480f12e4971\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":3,\"w\":20,\"h\":14,\"i\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\"},\"panelIndex\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"7c2eef60-6291-469e-976b-a5f2ed860552\",\"accessors\":[\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"yConfig\":[{\"forAccessor\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7c2eef60-6291-469e-976b-a5f2ed860552\":{\"columns\":{\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"431903e4-23c5-4170-b4b6-5b4c46d85fba\":{\"label\":\"Count of device.manufacturer\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.manufacturer\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 15 Device Manufacturers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":14,\"i\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\"},\"panelIndex\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8\"}],\"state\":{\"visualization\":{\"layerId\":\"6c93481d-09a6-47eb-857d-e98b13758ec8\",\"accessor\":\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6c93481d-09a6-47eb-857d-e98b13758ec8\":{\"columns\":{\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\":{\"label\":\"Total Device Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":12,\"h\":7,\"i\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\"},\"panelIndex\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Present\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":3,\"w\":10,\"h\":14,\"i\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\"},\"panelIndex\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\",\"primaryGroups\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\"],\"metrics\":[\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\":{\"columns\":{\"bf8b9c18-8de4-41de-9651-3b2bf7787362\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[\"System\"],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\",\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device Type Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":10,\"w\":12,\"h\":7,\"i\":\"ce341abb-5aea-4712-969d-9748b4de78af\"},\"panelIndex\":\"ce341abb-5aea-4712-969d-9748b4de78af\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Missing\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":48,\"h\":36,\"i\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\"},\"panelIndex\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"isTransposed\":false},{\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"isTransposed\":false},{\"columnId\":\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\":{\"columns\":{\"83a1475f-1b10-4670-8a5c-d02639c31b16\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.name\",\"isBucketed\":true,\"params\":{\"size\":250,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"5d04b4db-7c47-429b-baa4-dcde47c17256\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\":{\"label\":\"Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.present\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device List\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Hardware Inventory", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:47:46.348Z", + "id": "tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "ae9194f3-7df8-415d-870c-3480f12e4971:panel_ae9194f3-7df8-415d-870c-3480f12e4971", + "type": "visualization" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "f065275d-50bf-4f95-a7a8-90d7bbaafacb:indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "fe594ff8-c22c-40c4-9ab2-e9b2fea85847:indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "26f1102d-2afc-4e57-ac53-25d4cb848ed5:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9:indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "ce341abb-5aea-4712-969d-9748b4de78af:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "5ff3e63e-e71b-4b11-a07c-9c1315d604ce:indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "name": "tag-ref-7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:47:46.348Z", + "version": "WzgyMTE0NywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json new file mode 100644 index 00000000000..b621a813e68 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json @@ -0,0 +1,106 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a9a1905e-d884-49b1-9f30-bae69dd0f668\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"id\":\"a9a1905e-d884-49b1-9f30-bae69dd0f668\",\"selectedOptions\":[\"BotanyBayEP1\"],\"existsSelected\":false,\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Endpoint Protection view displays the status of your AV vendors and virtualization protection mechanisms, whether they are enabled, and if they are up to date.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"02c59767-547c-4cda-bba5-77ad8a00a068\"},\"panelIndex\":\"02c59767-547c-4cda-bba5-77ad8a00a068\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_02c59767-547c-4cda-bba5-77ad8a00a068\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":10,\"i\":\"cefa3c11-9742-4955-9569-40a38489d62a\"},\"panelIndex\":\"cefa3c11-9742-4955-9569-40a38489d62a\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protections\\nTYCHON monitors the endpoint for installed endpoint protection software. TYCHON integrates with EPP vendors to report the status of each specific vendor and its features to ensure all the proper protections are in place.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":5,\"i\":\"12e45058-431b-4504-a6ea-b37cdb08043d\"},\"panelIndex\":\"12e45058-431b-4504-a6ea-b37cdb08043d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588\"}],\"state\":{\"visualization\":{\"layerId\":\"9aeae475-3f70-4b1f-8e37-3d09bb018588\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"alignment\":\"center\"},{\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9aeae475-3f70-4b1f-8e37-3d09bb018588\":{\"columns\":{\"de290752-f19c-48d6-88b4-bbacb0a643ba\":{\"label\":\"Elastic Defender Behavior Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.behavior_protection\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1a761e73-7d11-44ba-b41d-12792debe4cc\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\":{\"label\":\"Elastic Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.malware\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b4ec867-8b7e-4d41-8b61-5615715413eb\":{\"label\":\"Elastic Defender Memory Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.memory_protection\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"1a761e73-7d11-44ba-b41d-12792debe4cc\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Elastic Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":5,\"i\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\"},\"panelIndex\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf\"}],\"state\":{\"visualization\":{\"layerId\":\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"alignment\":\"center\"},{\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\",\"hidden\":true},{\"columnId\":\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"005add0c-a692-4d2d-9758-6beb27289076\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\":{\"columns\":{\"fdfec985-df5b-4716-b4b7-fc583b364c03\":{\"label\":\"TPM Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.present\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6bca86d-5a9b-4e18-902b-a573c57e734f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\":{\"label\":\"TPM Digest\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.digest.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfc72b21-55c2-4913-bcff-15362a0f8500\":{\"label\":\"TPM Compliant\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.compliant\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"005add0c-a692-4d2d-9758-6beb27289076\":{\"label\":\"TPM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"005add0c-a692-4d2d-9758-6beb27289076\",\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Trusted Platform Module Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":5,\"i\":\"21705463-1697-44dc-9a09-62df26148332\"},\"panelIndex\":\"21705463-1697-44dc-9a09-62df26148332\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\",\"isTransposed\":false,\"colorMode\":\"none\",\"alignment\":\"center\",\"hidden\":true},{\"columnId\":\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5560824c-b749-475f-8423-603ee0107b9e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\":{\"columns\":{\"dd967aec-5d3a-4e98-b8bb-1861bff07184\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d9295119-6956-41e0-8b42-ac2e47a370de\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33408527-4b67-4ab8-985a-5f4b9bcb0618\":{\"label\":\"Trellix PA Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\":{\"label\":\"Trellix DLP Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5560824c-b749-475f-8423-603ee0107b9e\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"5560824c-b749-475f-8423-603ee0107b9e\",\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":48,\"h\":5,\"i\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\"},\"panelIndex\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"0ac16482-70d8-47af-9017-43495072b88a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"04332c65-6c71-4235-8823-49823d7deda5\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"04332c65-6c71-4235-8823-49823d7deda5\":{\"columns\":{\"dbfeb47c-32b6-474c-8677-dae820f07b2d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"512f9032-b127-4739-b5bf-3eb959638ff5\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cf12a36e-89b5-4367-b35f-9afb91f70d09\":{\"label\":\"Trellix DLP Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c05bb470-b273-4a26-bf5d-a81b3c58767f\":{\"label\":\"Trellix PA Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\":{\"label\":\"Trellix RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0ac16482-70d8-47af-9017-43495072b88a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"0ac16482-70d8-47af-9017-43495072b88a\",\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":5,\"i\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\"},\"panelIndex\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"29924658-9aa3-42ea-bd98-79e173958e42\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\":{\"columns\":{\"eb149617-f610-4378-ba74-d639147b5601\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"29924658-9aa3-42ea-bd98-79e173958e42\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33c42b63-ee69-433c-95af-9d7d01e4f845\":{\"label\":\"Windows Defender Anti-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\":{\"label\":\"Windows Defender Anti-Virus \",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\":{\"label\":\"Windows Defender Real-Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d88f0d3a-2942-49fc-bd63-a971fa819412\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\":{\"label\":\"Windows Defender On-Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"29924658-9aa3-42ea-bd98-79e173958e42\",\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"eb149617-f610-4378-ba74-d639147b5601\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":5,\"i\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\"},\"panelIndex\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c4d70098-785e-4a47-814e-9e380659c08a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"6cde8617-3e7c-4778-a329-d928e36d7275\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6cde8617-3e7c-4778-a329-d928e36d7275\":{\"columns\":{\"beb6fb15-943b-4309-90f7-f4dce874a09b\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"2ecb665e-6607-46bb-b133-227e2a1f86e5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\":{\"label\":\"Windows Defender Anit-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\":{\"label\":\"Windows Defender AV\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c4d70098-785e-4a47-814e-9e380659c08a\":{\"label\":\"Trellix ENS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"c4d70098-785e-4a47-814e-9e380659c08a\",\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Endpoint Protection Signature Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":33,\"w\":48,\"h\":5,\"i\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\"},\"panelIndex\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\":{\"columns\":{\"407f21d2-19c4-4989-af6d-6d1874ed4adb\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b16cb63b-c175-474d-92c1-8a4259f824a6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\":{\"label\":\"Credential Guard Running\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.running\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"485d3df1-2842-46fa-8709-b9e1c226c7fa\":{\"label\":\"Device Guard Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4001a32-8acc-4546-ad61-096ef4ada2da\":{\"label\":\"Secure Boot Available\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.secureboot.available\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"20655296-06de-4a2f-8c5c-d3f11575f76b\":{\"label\":\"Usermode Integrity Policy Enforcement\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.usermodecodeintegrity.policyenforcement\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"93d9fdc5-1776-4120-b653-35f6ade218ff\":{\"label\":\"Virtualization Based Security\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.virtualizationbasedsecurity.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d17a739-c24f-47da-8215-5f85d7fab0eb\":{\"label\":\"Secure Launch Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.systemguardsecurelaunch.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\":{\"label\":\"UFI Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.ufi.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"b16cb63b-c175-474d-92c1-8a4259f824a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Security Settings\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Endpoint Protection", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:53:06.434Z", + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "02c59767-547c-4cda-bba5-77ad8a00a068:panel_02c59767-547c-4cda-bba5-77ad8a00a068", + "type": "visualization" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "12e45058-431b-4504-a6ea-b37cdb08043d:indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "ea31c98b-3c46-4f95-a986-c4693b92b89e:indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "21705463-1697-44dc-9a09-62df26148332:indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "a8c6851c-3730-4c20-b9e0-43af84a176d0:indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "52a76f9f-e799-4d4a-b9e4-eae7014038e4:indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "8ad0f3f2-f823-482a-94f5-438a5f4e63ad:indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "165a86cb-4d74-46e5-b01a-c8aa699bb62d:indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_a9a1905e-d884-49b1-9f30-bae69dd0f668:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "bae88930-1133-11ee-af86-538da1394f27", + "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:53:06.434Z", + "version": "WzgyMTYxNywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json b/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json new file mode 100644 index 00000000000..cf765c6956c --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json @@ -0,0 +1,80 @@ +{ + "attributes": { + "description": "TYCHON captures ARP tables from endpoints. It tracks new ARP table entries and updates previously captured ones. Historical tracking is for previously found ARP lookups that are no longer seen.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":17,\"i\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\"},\"panelIndex\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"## ARP Tables\\n\\n**Overview** \\\\\\nTYCHON collects ARP tables every 30 minutes from endpoints and returns results to Elasticsearch. TYCHON assigns each ARP connection a unique identifier and updates previously captured ARP data. When TYCHON recognizes the same data, it updates the information. However, if TYCHON stops reporting an ARP entry, it is not removed. Therefore, this data is both the current ARP table and a historical view of ARP entries.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":13,\"h\":52,\"i\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\"},\"panelIndex\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245\"}],\"state\":{\"visualization\":{\"layerId\":\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"oneClickFilter\":true},{\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\",\"alignment\":\"right\",\"isTransposed\":false},{\"columnId\":\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\":{\"columns\":{\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\":{\"label\":\"Number of ARP Records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\":{\"label\":\"Unique IPs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\":{\"label\":\"Unique MACs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Connection Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Endpoint List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":52,\"i\":\"a718b065-8aa4-4122-8209-9e8166809166\"},\"panelIndex\":\"a718b065-8aa4-4122-8209-9e8166809166\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e\"}],\"state\":{\"visualization\":{\"layerId\":\"75e99f33-af21-4c5b-bf43-27e613d19f1e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\"},{\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\",\"isTransposed\":false,\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75e99f33-af21-4c5b-bf43-27e613d19f1e\":{\"columns\":{\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\":{\"label\":\"Network Interface\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.interface\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\",\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Interfaces\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":52,\"i\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\"},\"panelIndex\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18\"}],\"state\":{\"visualization\":{\"layerId\":\"939ae107-5b48-47e3-a385-121998a30d18\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"oneClickFilter\":true},{\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\",\"isTransposed\":false},{\"columnId\":\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"isTransposed\":false},{\"columnId\":\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"isTransposed\":false,\"alignment\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"939ae107-5b48-47e3-a385-121998a30d18\":{\"columns\":{\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5341642-c7db-4c93-b27d-47844eeb8ee6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"432028bb-1cb7-44a8-8446-0f3f023112c4\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"452d1f2a-645c-4b66-85da-ad52242236bf\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Search Google\",\"config\":{\"url\":{\"template\":\"https://google.com/search?q={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}},{\"eventId\":\"70b722a9-59f3-4b68-8341-0cda9ef41b28\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Lookup MAC Address\",\"config\":{\"url\":{\"template\":\"https://maclookup.app/search/result?mac={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}}]}}},\"title\":\"ARP Table\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":5,\"h\":12,\"i\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\"},\"panelIndex\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74\"},{\"type\":\"index-pattern\",\"name\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\"}],\"state\":{\"visualization\":{\"layerId\":\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\",\"accessor\":\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"type\":\"exists\",\"key\":\"destination.mac\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"destination.mac\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\":{\"columns\":{\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\":{\"label\":\"Unique MAC Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":29,\"w\":5,\"h\":12,\"i\":\"4139858c-c579-479b-aad7-90883296a136\"},\"panelIndex\":\"4139858c-c579-479b-aad7-90883296a136\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113\"}],\"state\":{\"visualization\":{\"layerId\":\"25e8d64c-1846-4743-950d-89d0fb6f1113\",\"accessor\":\"976f2848-673c-414f-bc8d-fb5f861fc48e\",\"layerType\":\"data\",\"textAlign\":\"center\",\"size\":\"xl\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"25e8d64c-1846-4743-950d-89d0fb6f1113\":{\"columns\":{\"976f2848-673c-414f-bc8d-fb5f861fc48e\":{\"label\":\"Unique IP Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"976f2848-673c-414f-bc8d-fb5f861fc48e\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] ARP Tables", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:35:07.156Z", + "id": "tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245", + "type": "index-pattern" + }, + { + "id": "0c036be0-3de5-11ee-9610-15dee918f31a", + "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34:dashboardId", + "type": "dashboard" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "a718b065-8aa4-4122-8209-9e8166809166:indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "cdc2012f-9e23-4d08-b87d-df42e57ba04f:indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:eec5b6be-b56e-44ea-b6df-dc957dd00778", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4139858c-c579-479b-aad7-90883296a136:indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113", + "type": "index-pattern" + }, + { + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:35:07.156Z", + "version": "WzgxOTc4MiwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json new file mode 100644 index 00000000000..1d5b6d7ee26 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json @@ -0,0 +1,101 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser - Benchmark Results view displays all Benchmark SCAP scan results for the OS and Software installed.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"type\":\"phrase\",\"key\":\"host.hostname\",\"params\":{\"query\":\"BotanyBayEP1\"},\"disabled\":false,\"negate\":false,\"alias\":null,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"host.hostname\":\"BotanyBayEP1\"}},\"$state\":{\"store\":\"appState\"}}]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Benchmark Results", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:38:45.823Z", + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "8f6fafd2-91a2-424b-a877-284568fd3f98:panel_8f6fafd2-91a2-424b-a877-284568fd3f98", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", + "name": "f96a0653-055c-46d2-9dfd-f44631a1428b:panel_f96a0653-055c-46d2-9dfd-f44631a1428b", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_accc2a18-0c16-4d33-b8df-09233a36a580:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:38:45.823Z", + "version": "WzgyMDAyMiwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json new file mode 100644 index 00000000000..9c0f9ff8401 --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json @@ -0,0 +1,85 @@ +{ + "attributes": { + "description": "TYCHON monitors endpoints for listening ports and reports them to the server. Details are captured at the time of the check and can be a historical view. However, similar listening ports are updated with each check.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":18,\"h\":39,\"i\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\"},\"panelIndex\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\",\"seriesType\":\"bar_horizontal\",\"xAccessor\":\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"accessors\":[\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"yConfig\":[{\"forAccessor\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\",\"axisMode\":\"auto\",\"color\":\"#6092c0\"}],\"layerType\":\"data\"}],\"xTitle\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\":{\"columns\":{\"2afe8e01-1ca4-407f-a375-5c177d34fd47\":{\"label\":\"Process Names\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\":{\"label\":\"Processes Captured\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Most Active Processes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":29,\"h\":9,\"i\":\"5720248d-77b4-4c3a-a755-856207618998\"},\"panelIndex\":\"5720248d-77b4-4c3a-a755-856207618998\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"8f31e3a1-68a6-4044-8fab-397567f134ee\",\"seriesType\":\"line\",\"accessors\":[\"c0c36be5-29d6-448d-8729-267feb104868\"],\"layerType\":\"data\",\"xAccessor\":\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8f31e3a1-68a6-4044-8fab-397567f134ee\":{\"columns\":{\"c0c36be5-29d6-448d-8729-267feb104868\":{\"label\":\"Network Transport\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"network.transport\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\":{\"label\":\"Events Observed\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"1w\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true}},\"columnOrder\":[\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\",\"c0c36be5-29d6-448d-8729-267feb104868\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":9,\"w\":30,\"h\":20,\"i\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\"},\"panelIndex\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"width\":118.72222222222229},{\"isTransposed\":false,\"columnId\":\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"width\":534.3333333333333},{\"isTransposed\":false,\"columnId\":\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"width\":100.22222222222223,\"alignment\":\"center\"},{\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\",\"isTransposed\":false}],\"layerId\":\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\":{\"columns\":{\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b91b4f2-60e0-40cd-84ef-e465c214834f\":{\"label\":\"Command Line\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2b439f50-e5cc-47de-9273-d990402ffbcd\":{\"label\":\"Transport\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\":{\"label\":\"Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"process.pid\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":29,\"w\":30,\"h\":10,\"i\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\"},\"panelIndex\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsHeatmap\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72\"}],\"state\":{\"visualization\":{\"shape\":\"heatmap\",\"layerId\":\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\",\"layerType\":\"data\",\"legend\":{\"isVisible\":false,\"position\":\"right\",\"type\":\"heatmap_legend\",\"legendSize\":\"small\"},\"gridConfig\":{\"type\":\"heatmap_grid\",\"isCellLabelVisible\":false,\"isYAxisLabelVisible\":true,\"isXAxisLabelVisible\":true,\"isYAxisTitleVisible\":false,\"isXAxisTitleVisible\":false},\"valueAccessor\":\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\",\"xAccessor\":\"8f79caa9-e76d-405b-a271-ca4f58938886\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\":{\"columns\":{\"8f79caa9-e76d-405b-a271-ca4f58938886\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\",\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\":{\"label\":\"Usage Instances\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8f79caa9-e76d-405b-a271-ca4f58938886\",\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Most Prevalent Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":48,\"h\":16,\"i\":\"4ab60584-3359-4217-892c-3dddbf754aff\"},\"panelIndex\":\"4ab60584-3359-4217-892c-3dddbf754aff\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":false,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"0e20ed19-aae0-4939-a956-68aceebc3f7e\",\"accessors\":[\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"splitAccessor\":\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e20ed19-aae0-4939-a956-68aceebc3f7e\":{\"columns\":{\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":25,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Unique count of process.name\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"626edc6d-37d3-46f2-8e1b-91e57c836d22\":{\"label\":\"# of Unique Processes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\":{\"label\":\"Top 100 values of process.name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\",\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":55,\"w\":33,\"h\":22,\"i\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\"},\"panelIndex\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\",\"primaryGroups\":[\"98f90733-b8b7-4748-a4da-ea0023622259\"],\"metrics\":[\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\":{\"columns\":{\"98f90733-b8b7-4748-a4da-ea0023622259\":{\"label\":\"Process Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"98f90733-b8b7-4748-a4da-ea0023622259\",\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":55,\"w\":15,\"h\":22,\"i\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\"},\"panelIndex\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed\"}],\"state\":{\"visualization\":{\"layerId\":\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3a6015f2-d1cd-49fa-821a-e1205400f24a\"},{\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"}],\"paging\":{\"size\":10,\"enabled\":true}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\":{\"columns\":{\"3a6015f2-d1cd-49fa-821a-e1205400f24a\":{\"label\":\"Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3a6015f2-d1cd-49fa-821a-e1205400f24a\",\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Exposed Services", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:36:42.243Z", + "id": "tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "258910e8-1f41-4100-a8c6-1bd212f9d27e:indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "5720248d-77b4-4c3a-a755-856207618998:indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "3b75685e-24d0-4a07-bb8d-65011b6109e1:indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "87617db0-cd7c-4f32-99bd-1f2615d8d1a7:indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "4ab60584-3359-4217-892c-3dddbf754aff:indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "cee8b6b3-2032-4e8e-a12a-4f8b0023a506:indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "8e36813d-4556-4641-8d29-4f2f295cb7c1:indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed", + "type": "index-pattern" + }, + { + "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", + "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:36:42.243Z", + "version": "WzgxOTg2NCwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json new file mode 100644 index 00000000000..370ff79b24e --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json @@ -0,0 +1,140 @@ +{ + "attributes": { + "description": "TYCHON reports on current TPM, Device Guard, Secure Boot, DMA, System Guard, and HVE Code Integrity being available and Enabled.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":8,\"i\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\"},\"panelIndex\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd\"}],\"state\":{\"visualization\":{\"layerId\":\"cebe4c55-66db-4691-b44a-a6282a29a7bd\",\"accessor\":\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cebe4c55-66db-4691-b44a-a6282a29a7bd\":{\"columns\":{\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\":{\"label\":\"Total Number of Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":7,\"h\":4,\"i\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\"},\"panelIndex\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Base Virtualization Support Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":7,\"h\":4,\"i\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\"},\"panelIndex\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Hypervisor Enforced Code Integrity Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":0,\"w\":7,\"h\":4,\"i\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\"},\"panelIndex\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true\",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":7,\"h\":4,\"i\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\"},\"panelIndex\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"color\":\"#2567ca\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Memory Overwrite Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":7,\"h\":4,\"i\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\"},\"panelIndex\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"DMA Protections Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available :false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":4,\"i\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\"},\"panelIndex\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":4,\"w\":7,\"h\":4,\"i\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\"},\"panelIndex\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Windows SMM Security Mitigation Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":7,\"h\":4,\"i\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\"},\"panelIndex\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"HVE Code Integrity Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":4,\"w\":7,\"h\":4,\"i\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\"},\"panelIndex\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":4,\"w\":7,\"h\":4,\"i\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\"},\"panelIndex\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Boot Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.secureboot.available : false\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":4,\"w\":7,\"h\":4,\"i\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\"},\"panelIndex\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"UEFI Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.ufi.enabled : true\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":4,\"w\":7,\"h\":4,\"i\":\"a1836875-cbd5-44ec-9543-1eea05689733\"},\"panelIndex\":\"a1836875-cbd5-44ec-9543-1eea05689733\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":3,\"h\":17,\"i\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\"},\"panelIndex\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469\"}],\"state\":{\"visualization\":{\"layerId\":\"e940b5ed-a6d9-488f-871b-d3e89450a469\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"ticksPosition\":\"auto\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"maxAccessor\":\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"minAccessor\":\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e940b5ed-a6d9-488f-871b-d3e89450a469\":{\"columns\":{\"278aed0b-127a-4727-9b30-36d8cbc242f3\":{\"label\":\"TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b80e387-9916-4bef-9384-2a873e0e498f\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"3da8457f-342e-4115-ab2e-60b4c410a9bf\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":8,\"w\":6,\"h\":11,\"i\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\"},\"panelIndex\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2\"}],\"state\":{\"visualization\":{\"layerId\":\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\",\"accessor\":\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#E7664C\",\"stop\":60},{\"color\":\"#D6BF57\",\"stop\":90},{\"color\":\"#54B399\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#D6BF57\",\"stop\":60},{\"color\":\"#54B399\",\"stop\":90}],\"continuity\":\"below\",\"maxSteps\":5}}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\":{\"columns\":{\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"location\":{\"min\":1,\"max\":77},\"text\":\"count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')\"},100],\"location\":{\"min\":0,\"max\":84},\"text\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\"}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\":{\"label\":\"Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"customLabel\":true}},\"columnOrder\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":32,\"i\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\"},\"panelIndex\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"daf16339-8bfb-4e36-99ce-5e66793f4264\"},{\"isTransposed\":false,\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},{\"columnId\":\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"isTransposed\":false}],\"layerId\":\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\":{\"columns\":{\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"daf16339-8bfb-4e36-99ce-5e66793f4264\":{\"label\":\"OS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"39ce7546-1fb9-4625-b47c-b7658520ab4e\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"ce080286-8ed3-43e4-8df3-f0547b3d2760\":{\"label\":\"Kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"daf16339-8bfb-4e36-99ce-5e66793f4264\",\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":19,\"w\":6,\"h\":6,\"i\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\"},\"panelIndex\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"TPM Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"host.tpm.present : \\\"false\\\" \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":9,\"h\":15,\"i\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\"},\"panelIndex\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\",\"primaryGroups\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\"],\"metrics\":[\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":0,\"emptySizeRatio\":0.7,\"legendPosition\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\":{\"columns\":{\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\":{\"label\":\"Device Guard Versions\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0537ada3-7bcd-48a3-a141-da31c0877743\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0537ada3-7bcd-48a3-a141-da31c0877743\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\",\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TPM Versions\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Virtualization Based Security Settings", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-19T10:32:54.894Z", + "id": "tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "98423c47-09a4-460b-a2b2-f3c111bae4b5:indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "0510df0c-1a13-43a1-a9da-e3837ff6b001:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "2296650a-59b3-49c3-8766-9b3e5dc2a60b:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "b3b4f8d0-f425-4f30-bf9b-08f9bac344be:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "8288c8d3-8052-4fcb-b8b1-03a03c088699:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "c86a6a37-5078-43c1-aed8-8a49373bafe2:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "d7ddb672-7f1d-4833-a1a5-becc42cf9dec:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "75a9ea69-9a70-490e-b260-664cdc9aa03f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "6e8d444b-1a29-4b93-90bd-f6aebfa0818c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "915bad91-ce3c-461d-94ef-5da768d08aa1:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "a1836875-cbd5-44ec-9543-1eea05689733:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "91fa4dd4-c51a-4d25-bd36-7960198d687c:indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "14ea02d4-b08f-4545-8415-c06fc189d8d2:indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "4720fc52-f5a8-4db8-a38c-aacecd78ffd4:indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "bde24496-933d-417a-bece-b1d1f5b0ec93:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "336ed7ca-cfb0-4f6f-8537-614b062c122e:indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a", + "type": "index-pattern" + }, + { + "id": "f26ce820-3d47-11ee-9610-15dee918f31a", + "name": "tag-ref-f26ce820-3d47-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-19T10:32:54.894Z", + "version": "WzY5NzU2MywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json new file mode 100644 index 00000000000..55b83fa8c2b --- /dev/null +++ b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Hard Drives (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_harddrive*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:06:28.654Z", + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T21:07:10.085Z", + "version": "WzY2MTQwMywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json new file mode 100644 index 00000000000..971077a0a2c --- /dev/null +++ b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Disk Volumes (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_volume*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T17:39:23.422Z", + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T17:39:23.422Z", + "version": "WzY4MTg4OCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json index 4c752563bec..1795c7c22b9 100644 --- a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json +++ b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json @@ -3,7 +3,7 @@ "fieldAttrs": "{}", "fieldFormatMap": "{}", "fields": "[]", - "name": "Windows Defender Status (TYCHON)", + "name": "Endpoint Protection Status (TYCHON)", "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "event.ingested", diff --git a/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json new file mode 100644 index 00000000000..e663ef56242 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{\"agent.name\":{\"count\":1},\"tychon.id\":{\"count\":2}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "ARP (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_arp*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-04-03T15:59:09.464Z", + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T13:15:57.463Z", + "version": "WzY3NTUxMCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json new file mode 100644 index 00000000000..7826ec82549 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Host Info [TYCHON]", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_host-*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T00:22:24.456Z", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-23T00:22:40.345Z", + "version": "Wzc5NjEzMywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json new file mode 100644 index 00000000000..f5638e8ded5 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Host CPUs (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_cpu*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T22:16:32.434Z", + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T22:16:32.434Z", + "version": "WzY2MzMzNiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json new file mode 100644 index 00000000000..4d1580a41f8 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Hardware (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_hardware*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:57:22.691Z", + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T19:57:22.691Z", + "version": "WzY4MzgwMCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json new file mode 100644 index 00000000000..350c90a7048 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{\"event.dataset\":{\"count\":1}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "All TYCHON Logs (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-04-05T12:18:33.104Z", + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-04-05T12:59:43.059Z", + "version": "WzI1OTI3LDNd" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json new file mode 100644 index 00000000000..47e31c4f2fe --- /dev/null +++ b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Exposed Services (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_exposedservice*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T13:10:42.315Z", + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T13:10:42.315Z", + "version": "WzY0Mjg1OCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json b/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json index e13b9b39cd5..9ab309eff7e 100644 --- a/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json +++ b/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json @@ -3,7 +3,7 @@ "fieldAttrs": "{\"event.provider\":{\"count\":1}}", "fieldFormatMap": "{}", "fields": "[]", - "name": "Windows Application Logs", + "name": "Windows Application Logs (TYCHON)", "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", diff --git a/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json new file mode 100644 index 00000000000..a78616588a2 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Software Inventory (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_softwareinventory*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:23:20.043Z", + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T19:23:20.043Z", + "version": "WzY4MzE0MiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json new file mode 100644 index 00000000000..fb7cb9d8be5 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json @@ -0,0 +1,23 @@ +{ + "attributes": { + "fieldAttrs": "{\"tychon.id\":{\"count\":1}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Network Adapters (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_networkadapter*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:11:21.754Z", + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T22:15:54.140Z", + "version": "WzY5MDAzMywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..521485625af --- /dev/null +++ b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,48 @@ +{ + "id": "07dc1be0-4270-11ee-83e4-c92ed141b9e5_1", + "name": "Weak WIFI Authentication in use", + "tags": [], + "interval": "5m", + "enabled": true, + "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", + "risk_score": 21, + "severity": "low", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.techtarget.com/searchnetworking/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", + "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json index 6e8f8de1e22..44b2b40dac6 100644 --- a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json @@ -2,10 +2,6 @@ "id": "10359860-1139-11ee-af86-538da1394f27_1", "type": "security-rule", "attributes": { - "updated_at": "2023-06-22T20:12:10.268Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:12:08.840Z", - "created_by": "elastic", "name": "CAT 1 IAVA Vulnerability Detected", "tags": [ "TYCHON", @@ -20,10 +16,6 @@ "note": "Investigator should work to patch this system for this IAVA as quickly as possible.", "license": "", "output_index": "", - "meta": { - "from": "1m", - "kibana_siem_app_url": "https://10.1.9.250:5601/app/security" - }, "author": [ "TYCHON" ], @@ -48,17 +40,12 @@ "references": [], "version": 1, "exceptions_list": [], - "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "query", - "language": "kuery", - "index": [ - "filebeat-*", - "logs-*", - "winlogbeat-*" - ], + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..26c1c35adee --- /dev/null +++ b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,57 @@ +{ + "id": "11481830-426d-11ee-83e4-c92ed141b9e5_1", + "name": "Large number of failed Vulnerabilities ", + "tags": [ + "CVE", + "TYCHON" + ], + "interval": "1h", + "enabled": true, + "description": "This endpoint has been determined to have a high number of total vulnerabilities failed, this can indicate an extremely exposed endpoint.", + "risk_score": 73, + "severity": "high", + "note": "Due to the high number of failed CVE checks, it is recommended that the security administrator quarantine this system immediately and bring the machine up to date with all patches. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3900s", + "rule_id": "5be38411-3902-4686-8209-1ab75a6d3847", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 30, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..95c753db703 --- /dev/null +++ b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,53 @@ +{ + "id": "17a4a660-4111-11ee-83e4-c92ed141b9e5_1", + "name": "Past Due Vulnerability Failed", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON tracks when vulnerabilities are past expiration to ensure systems are patched before exploits are released or to reduce the attack surface of the endpoint. Due dates are generated from 3 rules:\n1. CISA - Exact CISA Due Date\n2. IAVA - 18 Days from when TYCHON records an IAVA is released\n3. NVD - If a Vulnerability is marked as critical, the due date is generated as 30 days after its release.", + "risk_score": 99, + "severity": "critical", + "note": "Analysts should quarantine hosts that have out-of-date vulnerabilities, these are normally weaknesses that have active exploits in the wild. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "beeea32f-31ba-4be8-9e2c-14de47280aac", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.cisa.gov/known-exploited-vulnerabilities-catalog" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" and vulnerability.due_date < now", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json index 2caf59e861f..22a64cb04e4 100644 --- a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json @@ -2,10 +2,6 @@ "id": "2e5a7e20-1137-11ee-af86-538da1394f27_1", "type": "security-rule", "attributes": { - "updated_at": "2023-06-22T19:58:42.404Z", - "updated_by": "elastic", - "created_at": "2023-06-22T19:58:40.371Z", - "created_by": "elastic", "name": "Windows Defender Feature Reported as Disabled", "tags": [ "TYCHON", @@ -20,10 +16,6 @@ "note": "Analysts should look into the history of this endpoint to figure out when the feature was disabled and work to re-enable the feature.", "license": "", "output_index": "", - "meta": { - "from": "1m", - "kibana_siem_app_url": "https://10.1.9.250:5601/app/security" - }, "author": [ "TYCHON" ], @@ -55,23 +47,12 @@ "references": [], "version": 1, "exceptions_list": [], - "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "query", "language": "kuery", - "index": [ - "apm-*-transaction*", - "auditbeat-*", - "endgame-*", - "filebeat-*", - "logs-*", - "packetbeat-*", - "traces-apm*", - "winlogbeat-*", - "-*elastic-cloud-logs-*" - ], + "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json index 1d7f42e084b..b1c021bc884 100644 --- a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json @@ -2,10 +2,6 @@ "id": "2e9c9ac0-1138-11ee-af86-538da1394f27_1", "type": "security-rule", "attributes": { - "updated_at": "2023-06-22T20:05:51.349Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:05:49.618Z", - "created_by": "elastic", "name": "Critical Vulnerability Failed", "tags": [ "TYCHON", @@ -20,10 +16,6 @@ "note": "Investigators should get systems with critical vulnerabilities patched and ensure mitigations are in place while the system is vulenrable.", "license": "", "output_index": "", - "meta": { - "from": "1m", - "kibana_siem_app_url": "https://10.1.9.250:5601/app/security" - }, "author": [ "TYCHON" ], @@ -48,17 +40,12 @@ "references": [], "version": 1, "exceptions_list": [], - "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "query", "language": "kuery", - "index": [ - "filebeat-*", - "logs-*", - "winlogbeat-*" - ], + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..39c855a4d7b --- /dev/null +++ b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,52 @@ +{ + "id": "38a72d20-426e-11ee-83e4-c92ed141b9e5_1", + "name": "TPM Compliance Failed", + "tags": [ + "TYCHON", + "STIG" + ], + "interval": "5m", + "enabled": true, + "description": "This host has been determined by TYCHON to be non-compliant with the Trusted Platform Module (TPM), this is due to it being not present or at the wrong version.", + "risk_score": 47, + "severity": "medium", + "note": "Enable TPM 2.0 on this machine, if it is unable to be enabled because the host does not support it, determine the risk and take appropriate measures.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0006", + "reference": "https://attack.mitre.org/tactics/TA0006", + "name": "Credential Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.tpm.compliant : false ", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..7d379786d15 --- /dev/null +++ b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,42 @@ +{ + "id": "3a1028a0-4292-11ee-83e4-c92ed141b9e5_1", + "name": "TYCHON Benchmark SCAP Definition File Out of Date", + "tags": [ + "TYCHON", + "SCAP" + ], + "interval": "24h", + "enabled": true, + "description": "TYCHON updates its SCAP definitions daily and should be no more than 120 days old to ensure you are working from the most up-to-date requirements and settings. ", + "risk_score": 47, + "severity": "medium", + "note": "TYCHON Definitions are updated daily, check the local host logs and see if there are issues with TYCHON definitions updating. You can obtain the latest version from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-86460s", + "rule_id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.stig < \"now-120d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..d77553fc873 --- /dev/null +++ b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,42 @@ +{ + "id": "75197a50-428d-11ee-83e4-c92ed141b9e5_1", + "name": "TYCHON Vulnerability Definitions Out of Date", + "tags": [ + "TYCHON", + "CVE" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON updates its definitions daily for vulnerability checks, if systems are too far out of date you are not getting the results for the most recent vulnerabilities further affecting your attack surface.", + "risk_score": 73, + "severity": "high", + "note": "Review the endpoint event logs and determine why TYCHON definitions are not being updated and pushed. Ensure you have downloaded the latest definition installers from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.oval < \"now-30d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json index fd29265dac1..56f8bbde3a7 100644 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json @@ -2,10 +2,6 @@ "id": "867e3450-1139-11ee-af86-538da1394f27_1", "type": "security-rule", "attributes": { - "updated_at": "2023-06-22T20:15:29.017Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:15:26.960Z", - "created_by": "elastic", "name": "High STIG/SCAP Check Failed", "tags": [ "TYCHON", @@ -47,15 +43,12 @@ "references": [], "version": 1, "exceptions_list": [], - "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "query", "language": "kuery", - "index": [ - "logs-*" - ], + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "query": "rule.result : \"fail\" and rule.severity : \"high\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json index 04577f4fcf4..5054a13ad91 100644 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json @@ -2,10 +2,6 @@ "id": "934a39a0-1138-11ee-af86-538da1394f27_1", "type": "security-rule", "attributes": { - "updated_at": "2023-06-22T20:08:39.789Z", - "updated_by": "elastic", - "created_at": "2023-06-22T20:08:38.722Z", - "created_by": "elastic", "name": "High Vulnerability Failed", "tags": [ "TYCHON", @@ -48,15 +44,12 @@ "references": [], "version": 1, "exceptions_list": [], - "immutable": false, "related_integrations": [], "required_fields": [], "setup": "", "type": "query", "language": "kuery", - "index": [ - "logs-*" - ], + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..e0f44eec534 --- /dev/null +++ b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,54 @@ +{ + "id": "afdf3de0-4289-11ee-83e4-c92ed141b9e5_1", + "name": "New Device Discovered", + "tags": [ + "TYCHON", + "ARP" + ], + "interval": "8h", + "enabled": false, + "description": "TYCHON pulls the ARP tables from endpoints, when new devices are found they should be investigated and validated.", + "risk_score": 21, + "severity": "low", + "note": "New devices come online and offline constantly, the MAC address should be investigated and resolved.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-32400s", + "rule_id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "new_terms", + "query": "not destination.mac : \"ff-ff-ff-ff-ff-ff\" ", + "new_terms_fields": [ + "destination.mac" + ], + "history_window_start": "now-7d", + "filters": [], + "language": "kuery", + "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..d1f291155f6 --- /dev/null +++ b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,57 @@ +{ + "id": "b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1", + "name": "High number of SCAP Failures", + "tags": [ + "TYCHON", + "CCRI" + ], + "interval": "1h", + "enabled": true, + "description": "TYCHON has reported a high number of SCAP failures for an endpoint. This can indicate a very weak security posture for an endpoint.", + "risk_score": 47, + "severity": "medium", + "note": "The system may need to be isolated. Investigate the SCAP results for this system and perform fixes for all High and Medium checks. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3660s", + "rule_id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 20, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..65864f9665a --- /dev/null +++ b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,50 @@ +{ + "id": "cb5715c0-426b-11ee-83e4-c92ed141b9e5_1", + "name": "Endpoint Security Definitions are Out of Date", + "tags": [ + "EPP", + "TYCHON" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the registered endpoint protection platform is out of date and needs to be updated.", + "risk_score": 73, + "severity": "high", + "note": "Depending on the Endpoint Protection Vendor, you will need to push new updated to this endpoint. See the vendor's user guides to determine how to install the most recent AV updates.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.security.antivirus.status : *OutOfDate*", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..e2aa75c2a01 --- /dev/null +++ b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,50 @@ +{ + "id": "edcdabf0-4275-11ee-83e4-c92ed141b9e5_1", + "name": "System Volume Mounted to Drive", + "tags": [ + "TYCHON", + "Volume" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the system volume has been mounted to a drive letter.", + "risk_score": 47, + "severity": "medium", + "note": "Investigate and determine how the drive was mounted and remove the mount if it was done maliciously.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "d0d735ed-08fe-4393-9aa6-120236995152", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0004", + "reference": "https://attack.mitre.org/tactics/TA0004", + "name": "Privilege Escalation" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "query": "volume.system_volume : true and not volume.drive.letter : \"\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..5afd9afcbcc --- /dev/null +++ b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#13814a", + "description": "TYCHON reported TCP and UDP ports that are or were open and listening on endpoints.", + "name": "Open Ports" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:33:49.204Z", + "id": "026431f0-3de5-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:33:49.204Z", + "version": "WzY4MDI0OCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json new file mode 100644 index 00000000000..02f1818c36b --- /dev/null +++ b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#9b2767", + "description": "TYCHON capture of Network adapters attached to endpoints.", + "name": "Network Adapter" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T13:07:53.023Z", + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-23T13:07:53.023Z", + "version": "WzgwNjc5OSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..1966387148d --- /dev/null +++ b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#c30936", + "description": "TYCHON installed software and apps found on an endpoint.", + "name": "Applications" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:26:40.105Z", + "id": "27edf330-3dfd-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T19:26:40.105Z", + "version": "WzY4MzIzMiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..048fdbea840 --- /dev/null +++ b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#2075cf", + "description": "A Command Cyber Readiness Inspection Report", + "name": "CCRI" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T11:45:03.146Z", + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T11:45:03.146Z", + "version": "WzI3Njg3MSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..f42c93f4b85 --- /dev/null +++ b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#75899c", + "description": "This tag indicates a \"Starting Point\" for dashboards that utulize drill downs.", + "name": "TYCHON Primary View" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T12:04:15.710Z", + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T12:04:15.710Z", + "version": "WzY3MzY3MCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..0ae58cbedb9 --- /dev/null +++ b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#154a15", + "description": "The hardware detected by TYCHON as attached to an endpoint", + "name": "Hardware" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T20:04:47.768Z", + "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T20:04:47.768Z", + "version": "WzY4NDA2NCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..96242830e19 --- /dev/null +++ b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#85ed08", + "description": "Hard Drives on Computers", + "name": "Drives" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:03:21.673Z", + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:03:21.673Z", + "version": "WzY2MTI0MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..73bff95d68b --- /dev/null +++ b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#58b7ff", + "description": "Vulnerability Information", + "name": "CVE" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T13:28:01.234Z", + "id": "9c222660-1100-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T13:28:01.234Z", + "version": "WzI4MTM1OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..b95776ef16b --- /dev/null +++ b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#efe009", + "description": "The TYCHON Endpoint Browser allows a user to see detailed Endpoint Reported data for a single host.", + "name": "Endpoint Browser" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:45:29.125Z", + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:45:29.125Z", + "version": "WzY4MDQ3NSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..73f480ee196 --- /dev/null +++ b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#14d15e", + "description": "Endpoint Protection Statuses", + "name": "EPP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T19:33:57.192Z", + "id": "bae88930-1133-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T19:33:57.192Z", + "version": "WzI4NTA4OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..dddf54941d5 --- /dev/null +++ b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#AA6556", + "description": "Routing Tables from Systems", + "name": "ARP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T22:24:09.990Z", + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T22:24:09.990Z", + "version": "WzY2MzYyNiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..2bee4b97775 --- /dev/null +++ b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#afaddf", + "description": "Master Endpoint Record", + "name": "MER" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-16T22:40:20.761Z", + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-16T22:40:20.761Z", + "version": "WzYzNTA3MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..76f5c76268f --- /dev/null +++ b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#bcbc9c", + "description": "Virtualization Based Security", + "name": "VBS" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:49:31.431Z", + "id": "f26ce820-3d47-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:49:31.431Z", + "version": "WzY2MjY4NywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json new file mode 100644 index 00000000000..a3878a8d2aa --- /dev/null +++ b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json @@ -0,0 +1,33 @@ +{ + "attributes": { + "description": "TYCHON Browser is a series of dashbaords dirlling into indvidual datasets for a single computer.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "title": "[TYCHON] Endpoint Browser -Main Navigation", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[TYCHON] Endpoint Browser -Main Navigation\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Network Cards](/app/dashboards#/view/1af57010-41b6-11ee-83e4-c92ed141b9e5) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | [Benchmark Results](/app/dashboards#/view/e1c9c490-41a5-11ee-83e4-c92ed141b9e5) | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | [Protections](/app/dashboards#/view/b85e87c0-41ab-11ee-83e4-c92ed141b9e5)\"}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T21:04:08.909Z", + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [ + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "visualization", + "updated_at": "2023-08-23T21:04:08.909Z", + "version": "WzgyMjAyOSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index c601df86679..6734c5d290c 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -18,6 +18,12 @@ screenshots: title: Tychon size: 600x600 type: image/png + - src: /img/TYCHONScreenShot_1.png + size: 600x600 + type: image/png + - src: /img/TYCHONScreenShot_2.png + size: 600x600 + type: image/png icons: - src: /img/TychonLogo.svg title: Sample logo From 1cb15084b8cdd54a27079cd4eb4db9135db3a884 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 24 Aug 2023 17:27:47 +0000 Subject: [PATCH 47/65] Removing META Tags --- .../security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json | 4 ---- .../security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json | 4 ---- 2 files changed, 8 deletions(-) diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json index 73403c16615..5e2befb15ae 100644 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json @@ -15,10 +15,6 @@ "severity": "medium", "license": "", "output_index": "", - "meta": { - "from": "1m", - "kibana_siem_app_url": "https://10.1.9.250:5601/app/security" - }, "author": [ "TYCHON" ], diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json index e00051a8f1e..d9dafd8ca1c 100644 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json @@ -16,10 +16,6 @@ "note": "Investigator should work to resolve this patch and keep a close monitor on this endpoint.", "license": "", "output_index": "", - "meta": { - "from": "1m", - "kibana_siem_app_url": "https://10.1.9.250:5601/app/security" - }, "author": [ "TYCHON" ], From 08c34439408486f87a9f2347b21d3d176b6cecda Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Thu, 24 Aug 2023 16:42:49 -0400 Subject: [PATCH 48/65] Corrected dashboard ids --- packages/tychon/changelog.yml | 2 +- .../_dev/test/pipeline/test-arp.json | 47 ++ .../test/pipeline/test-arp.json-config.yml | 3 + .../test/pipeline/test-arp.json-expected.json | 47 ++ .../tychon_arp/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 46 ++ .../data_stream/tychon_arp/fields/agent.yml | 110 ++++ .../tychon_arp/fields/base-fields.yml | 6 + .../data_stream/tychon_arp/fields/ecs.yml | 78 +++ .../data_stream/tychon_arp/fields/fields.yml | 8 + .../data_stream/tychon_arp/manifest.yml | 33 ++ .../_dev/test/pipeline/test-cpu.json | 54 ++ .../test/pipeline/test-cpu.json-config.yml | 3 + .../test/pipeline/test-cpu.json-expected.json | 54 ++ .../tychon_cpu/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 46 ++ .../data_stream/tychon_cpu/fields/agent.yml | 110 ++++ .../tychon_cpu/fields/base-fields.yml | 6 + .../data_stream/tychon_cpu/fields/ecs.yml | 70 +++ .../data_stream/tychon_cpu/fields/fields.yml | 18 + .../data_stream/tychon_cpu/manifest.yml | 33 ++ .../_dev/test/pipeline/test-cve.json | 98 ++-- .../test/pipeline/test-cve.json-config.yml | 1 - .../test/pipeline/test-cve.json-expected.json | 172 +++--- .../data_stream/tychon_cve/fields/agent.yml | 4 +- .../_dev/test/pipeline/test-epp.json | 102 ++-- .../test/pipeline/test-epp.json-config.yml | 1 - .../test/pipeline/test-epp.json-expected.json | 2 +- .../data_stream/tychon_epp/fields/agent.yml | 4 +- .../data_stream/tychon_epp/manifest.yml | 1 + .../test/pipeline/test-exposedservice.json | 46 ++ .../test-exposedservice.json-config.yml | 3 + .../test-exposedservice.json-expected.json | 46 ++ .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 46 ++ .../tychon_exposedservice/fields/agent.yml | 110 ++++ .../fields/base-fields.yml | 6 + .../tychon_exposedservice/fields/ecs.yml | 94 ++++ .../tychon_exposedservice/fields/fields.yml | 4 + .../tychon_exposedservice/manifest.yml | 33 ++ .../_dev/test/pipeline/test-harddrive.json | 63 +++ .../pipeline/test-harddrive.json-config.yml | 3 + .../test-harddrive.json-expected.json | 63 +++ .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 159 ++++++ .../tychon_harddrive/fields/agent.yml | 110 ++++ .../tychon_harddrive/fields/base-fields.yml | 6 + .../tychon_harddrive/fields/ecs.yml | 70 +++ .../tychon_harddrive/fields/fields.yml | 50 ++ .../data_stream/tychon_harddrive/manifest.yml | 33 ++ .../_dev/test/pipeline/test-hardware.json | 44 ++ .../pipeline/test-hardware.json-config.yml | 3 + .../pipeline/test-hardware.json-expected.json | 44 ++ .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 76 +++ .../tychon_hardware/fields/agent.yml | 110 ++++ .../tychon_hardware/fields/base-fields.yml | 6 + .../tychon_hardware/fields/ecs.yml | 74 +++ .../tychon_hardware/fields/fields.yml | 12 + .../data_stream/tychon_hardware/manifest.yml | 33 ++ .../_dev/test/pipeline/test-host.json | 76 +++ .../test/pipeline/test-host.json-config.yml | 3 + .../pipeline/test-host.json-expected.json | 76 +++ .../tychon_host/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 57 ++ .../data_stream/tychon_host/fields/agent.yml | 110 ++++ .../tychon_host/fields/base-fields.yml | 6 + .../data_stream/tychon_host/fields/ecs.yml | 32 ++ .../data_stream/tychon_host/fields/fields.yml | 72 +++ .../data_stream/tychon_host/manifest.yml | 33 ++ .../test/pipeline/test-networkadapter.json | 67 +++ .../test-networkadapter.json-config.yml | 3 + .../test-networkadapter.json-expected.json | 67 +++ .../test/pipeline/test-networkadapters.json | 67 +++ .../test-networkadapters.json-config.yml | 3 + .../test-networkadapters.json-expected.json | 67 +++ .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 58 ++ .../tychon_networkadapter/fields/agent.yml | 110 ++++ .../fields/base-fields.yml | 6 + .../tychon_networkadapter/fields/ecs.yml | 36 ++ .../tychon_networkadapter/fields/fields.yml | 58 ++ .../tychon_networkadapter/manifest.yml | 34 ++ .../tychon_networkadapter/sample_event.json | 63 +++ .../test/pipeline/test-softwareinventory.json | 54 ++ .../test-softwareinventory.json-config.yml | 3 + .../test-softwareinventory.json-expected.json | 54 ++ .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 50 ++ .../tychon_softwareinventory/fields/agent.yml | 110 ++++ .../fields/base-fields.yml | 6 + .../tychon_softwareinventory/fields/ecs.yml | 87 +++ .../fields/fields.yml | 16 + .../tychon_softwareinventory/manifest.yml | 33 ++ .../_dev/test/pipeline/test-stig.json | 116 ++-- .../pipeline/test-stig.json-expected.json | 2 +- .../data_stream/tychon_stig/fields/agent.yml | 4 +- .../data_stream/tychon_stig/manifest.yml | 1 + .../_dev/test/pipeline/test-volumes.json | 56 ++ .../pipeline/test-volumes.json-config.yml | 3 + .../pipeline/test-volumes.json-expected.json | 56 ++ .../tychon_volume/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 54 ++ .../tychon_volume/fields/agent.yml | 110 ++++ .../tychon_volume/fields/base-fields.yml | 6 + .../data_stream/tychon_volume/fields/ecs.yml | 70 +++ .../tychon_volume/fields/fields.yml | 34 ++ .../data_stream/tychon_volume/manifest.yml | 33 ++ packages/tychon/docs/README.md | 343 ++++++++++++ ...db40-d137-11e9-a2af-693b633cf871-stig.json | 256 ++++----- ...11ee-9610-15dee918f31a-exposedservice.json | 208 ++++---- ...11ee-83e4-c92ed141b9e5-networkadapter.json | 178 +++---- ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 496 +++++++++--------- ...e-9610-15dee918f31a-softwareinventory.json | 168 +++--- ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 228 ++++---- ...3dbd-11ee-9610-15dee918f31a-harddrive.json | 178 +++---- ...11ee-8557-a7ea91123f8b-networkadapter.json | 204 +++---- ...bf50-3dbf-11ee-9610-15dee918f31a-host.json | 298 +++++------ ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 348 ++++++------ ...3d41-11ee-9610-15dee918f31a-harddrive.json | 196 +++---- ...58ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json | 208 ++++---- ...-3e02-11ee-9610-15dee918f31a-hardware.json | 188 +++---- ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 208 ++++---- ...12af0-3d4c-11ee-9610-15dee918f31a-arp.json | 156 +++--- ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 198 +++---- ...11ee-9610-15dee918f31a-exposedservice.json | 166 +++--- ...6a20-3d47-11ee-9610-15dee918f31a-host.json | 276 +++++----- .../2dc584bc-c446-4150-b561-1415a45ebe87.json | 42 +- .../62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json | 42 +- .../8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json | 42 +- .../9267bb1b-cf22-4417-8cfb-6606848140a7.json | 42 +- .../a264bf8d-abc3-4789-9f4c-bf76397e06ba.json | 42 +- .../a57870ef-07d8-4d12-a067-8c66eefd10ca.json | 42 +- .../bb5226cd-c099-46d2-bb71-0257232c7d82.json | 42 +- .../c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json | 42 +- .../e0015160-781d-4885-9ae6-04230d059bfb.json | 42 +- .../e886429e-9532-4f44-bb36-6465fe760866.json | 42 +- ...-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json | 203 +++++++ .../10359860-1139-11ee-af86-538da1394f27.json | 54 ++ .../2140f083-6e39-4df4-ba41-aa1f41cb81b8.json | 60 +++ .../2e5a7e20-1137-11ee-af86-538da1394f27.json | 61 +++ .../2e9c9ac0-1138-11ee-af86-538da1394f27.json | 54 ++ .../55faa99b-ce17-4a41-9f63-4a7439e3543a.json | 57 ++ .../5be38411-3902-4686-8209-1ab75a6d3847.json | 60 +++ .../6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json | 45 ++ .../6839b82b-22bf-418f-a86b-7e7a4cd074d7.json | 53 ++ .../6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json | 55 ++ .../867e3450-1139-11ee-af86-538da1394f27.json | 53 ++ .../934a39a0-1138-11ee-af86-538da1394f27.json | 54 ++ .../bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json | 51 ++ .../beeea32f-31ba-4be8-9e2c-14de47280aac.json | 56 ++ .../c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json | 45 ++ .../d0d735ed-08fe-4393-9aa6-120236995152.json | 53 ++ ...-026431f0-3de5-11ee-9610-15dee918f31a.json | 17 + ...-11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 + ...-27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 + ...-39b55820-10f2-11ee-af86-538da1394f27.json | 17 + ...-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 + ...-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 + ...-7f851220-3d41-11ee-9610-15dee918f31a.json | 17 + ...-9c222660-1100-11ee-af86-538da1394f27.json | 17 + ...-a3922360-3de6-11ee-9610-15dee918f31a.json | 17 + ...-bae88930-1133-11ee-af86-538da1394f27.json | 17 + ...-c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 + ...-e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 + ...-f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 + ...-837878a0-c3cb-11eb-8956-0b1a70e695fd.json | 28 + ...-d954bdb0-3298-11ec-b058-cf4fefc29658.json | 22 + ...-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json | 28 + ...-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 ++ packages/tychon/manifest.yml | 6 +- 171 files changed, 8475 insertions(+), 2546 deletions(-) create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_arp/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_arp/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_arp/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_arp/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_arp/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json create mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_cpu/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json create mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_exposedservice/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json create mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_harddrive/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json create mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_hardware/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json create mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_host/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_host/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_host/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_host/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_host/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_networkadapter/sample_event.json create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_softwareinventory/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json create mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_volume/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_volume/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_volume/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_volume/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_volume/manifest.yml create mode 100644 packages/tychon/docs/README.md create mode 100644 packages/tychon/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json create mode 100644 packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json create mode 100644 packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json create mode 100644 packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json create mode 100644 packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json create mode 100644 packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json create mode 100644 packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json create mode 100644 packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json create mode 100644 packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json create mode 100644 packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json create mode 100644 packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json create mode 100644 packages/tychon/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json create mode 100644 packages/tychon/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json create mode 100644 packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json create mode 100644 packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json create mode 100644 packages/tychon/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 77e22bb4a15..d8b8727f558 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: "0.0.10" +- version: 0.0.23 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json new file mode 100644 index 00000000000..e4ec995b69a --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json @@ -0,0 +1,47 @@ +{ + "events": [ + { + "script.type": "powershell", + "host.os.build": "22621", + "host.ip": "10.154.5.200", + "host.hostname": "DESKTOP-AF7CIQM", + "host.os.name": "Microsoft Windows 11 Pro", + "host.hardware.manufacturer": "Dell Inc.", + "@timestamp": "2023-08-16T05:22:36Z", + "script.start": "2023-08-16T05:22:36Z", + "destination.mac": "00-09-0f-aa-00-02", + "host.hardware.owner": "james_sudbury@msn.com", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "destination.hostname": "Request timed out (700 ms)", + "host.os.organization": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200", + "host.os.version": "2009", + "network.direction": "external", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "network.type": "IPv4", + "destination.name": "Request timed out (700 ms)", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.mac": "60:E3:2B:4B:40:E2", + "network.interface": "Ethernet 3", + "host.oem.model": "XPS 17 9710", + "host.uptime": "594263.4592614", + "id": "DESKTOP-AF7CIQM#6#10.70.4.15#10.70.4.16", + "script.current_time": "2023-08-16T05:22:37Z", + "script.name": "Get-TychonArpInfo.ps1", + "network.state": "dynamic", + "script.version": "2.3.53.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "1809.94", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", + "destination.ip": "10.70.4.16", + "host.hardware.bios.version": "1.20.1", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-config.yml b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json new file mode 100644 index 00000000000..3fc6eb5eec8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json @@ -0,0 +1,47 @@ +{ + "expected": [ + { + "script.type": "powershell", + "host.os.build": "22621", + "host.ip": "10.154.5.200", + "host.hostname": "DESKTOP-AF7CIQM", + "host.os.name": "Microsoft Windows 11 Pro", + "host.hardware.manufacturer": "Dell Inc.", + "@timestamp": "2023-08-16T05:22:36Z", + "script.start": "2023-08-16T05:22:36Z", + "destination.mac": "00-09-0f-aa-00-02", + "host.hardware.owner": "james_sudbury@msn.com", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "destination.hostname": "Request timed out (700 ms)", + "host.os.organization": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200", + "host.os.version": "2009", + "network.direction": "external", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "network.type": "IPv4", + "destination.name": "Request timed out (700 ms)", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.mac": "60:E3:2B:4B:40:E2", + "network.interface": "Ethernet 3", + "host.oem.model": "XPS 17 9710", + "host.uptime": "594263.4592614", + "id": "DESKTOP-AF7CIQM#6#10.70.4.15#10.70.4.16", + "script.current_time": "2023-08-16T05:22:37Z", + "script.name": "Get-TychonArpInfo.ps1", + "network.state": "dynamic", + "script.version": "2.3.53.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "1809.94", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", + "destination.ip": "10.70.4.16", + "host.hardware.bios.version": "1.20.1", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..4d68c0d73d4 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,46 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: arp + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/data_stream/tychon_arp/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml b/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_arp/fields/ecs.yml b/packages/tychon/data_stream/tychon_arp/fields/ecs.yml new file mode 100644 index 00000000000..c4741ffc810 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/fields/ecs.yml @@ -0,0 +1,78 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: destination.ip +- external: ecs + name: destination.mac +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: network.direction +- external: ecs + name: network.type +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/data_stream/tychon_arp/fields/fields.yml b/packages/tychon/data_stream/tychon_arp/fields/fields.yml new file mode 100644 index 00000000000..6ee09956138 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/fields/fields.yml @@ -0,0 +1,8 @@ +- name: destination.hostname + type: keyword +- name: destination.name + type: keyword +- name: network.interface + type: keyword +- name: network.state + type: keyword diff --git a/packages/tychon/data_stream/tychon_arp/manifest.yml b/packages/tychon/data_stream/tychon_arp/manifest.yml new file mode 100644 index 00000000000..fa52f659f98 --- /dev/null +++ b/packages/tychon/data_stream/tychon_arp/manifest.yml @@ -0,0 +1,33 @@ +title: Windows arp Info +type: logs +streams: + - input: logfile + title: Windows arp Info + description: Windows arp Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows arp Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_arp_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-arp-info + - 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/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json new file mode 100644 index 00000000000..d30a84f187b --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json @@ -0,0 +1,54 @@ +{ + "events": [ + { + "host.cpu.number_of_logical_processors": [ + "1", + "1" + ], + "host.os.build": "22000", + "host.ip": "10.1.9.112", + "host.uptime": "663163.9355573", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "@timestamp": "2023-08-16T22:23:24Z", + "script.start": "2023-08-16T22:23:24Z", + "host.os.name": "Microsoft Windows 11 Education N", + "host.cpu.number_of_cores": "1", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "dcuser", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.ipv4": "10.1.9.112", + "host.cpu.manufacturer": "GenuineIntel", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "host.cpu.virtualization_firmware_enabled": [ + "false", + "false" + ], + "host.cpu.name": "Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz", + "script.type": "powershell", + "host.cpu.speed": "2400", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.model": "", + "host.cpu.family": "Unknown", + "id": "DESKTOP-TIUKL1R#CPU0#0FABFBFF000206D7", + "script.current_time": "2023-08-16T22:26:30Z", + "script.name": "Get-TychonCpuInfo.ps1", + "script.version": "2.3.58.0", + "host.cpu.clockspeed": "2400", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "script.current_duration": "185267.77", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-config.yml b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json new file mode 100644 index 00000000000..3f4ba317142 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json @@ -0,0 +1,54 @@ +{ + "expected": [ + { + "host.cpu.number_of_logical_processors": [ + "1", + "1" + ], + "host.os.build": "22000", + "host.ip": "10.1.9.112", + "host.uptime": "663163.9355573", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "@timestamp": "2023-08-16T22:23:24Z", + "script.start": "2023-08-16T22:23:24Z", + "host.os.name": "Microsoft Windows 11 Education N", + "host.cpu.number_of_cores": "1", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "dcuser", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.ipv4": "10.1.9.112", + "host.cpu.manufacturer": "GenuineIntel", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "host.cpu.virtualization_firmware_enabled": [ + "false", + "false" + ], + "host.cpu.name": "Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz", + "script.type": "powershell", + "host.cpu.speed": "2400", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.model": "", + "host.cpu.family": "Unknown", + "id": "DESKTOP-TIUKL1R#CPU0#0FABFBFF000206D7", + "script.current_time": "2023-08-16T22:26:30Z", + "script.name": "Get-TychonCpuInfo.ps1", + "script.version": "2.3.58.0", + "host.cpu.clockspeed": "2400", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "script.current_duration": "185267.77", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..ad3829e3475 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,46 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml b/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml b/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml new file mode 100644 index 00000000000..ff1f0be95fe --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/data_stream/tychon_cpu/fields/fields.yml b/packages/tychon/data_stream/tychon_cpu/fields/fields.yml new file mode 100644 index 00000000000..eb728cc9162 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/fields/fields.yml @@ -0,0 +1,18 @@ +- name: host.cpu.caption + type: text +- name: host.cpu.clockspeed + type: long +- name: host.cpu.family + type: keyword +- name: host.cpu.manufacturer + type: keyword +- name: host.cpu.name + type: keyword +- name: host.cpu.number_of_cores + type: integer +- name: host.cpu.number_of_logical_processors + type: integer +- name: host.cpu.speed + type: long +- name: host.cpu.virtualization_firmware_enabled + type: boolean diff --git a/packages/tychon/data_stream/tychon_cpu/manifest.yml b/packages/tychon/data_stream/tychon_cpu/manifest.yml new file mode 100644 index 00000000000..0cf790fa1c0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_cpu/manifest.yml @@ -0,0 +1,33 @@ +title: Windows cpu Info +type: logs +streams: + - input: logfile + title: Windows cpu Info + description: Windows cpu Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows cpu Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cpu_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-cpu-info + - 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/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json index c374a3da522..926b271cd75 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -1,51 +1,51 @@ { - "events": [ - { - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.domain": "", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.hardware.bios.version": "6.00", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.owner": "dcuser", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.hostname": "DESKTOP-TIUKL1R", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.ip": "10.1.9.112", - "host.ipv4": "10.1.9.112", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.mac": "00:0C:29:EF:9A:EB", - "host.oem.manufacturer": "", - "host.oem.model": "", - "host.os.build": "22000", - "host.os.description": "", - "host.os.family": "Windows", - "host.os.name": "Microsoft Windows 11 Education N", - "host.os.organization": "", - "host.os.version": "10.0.22000", - "host.type": "Workstation", - "host.uptime": 145287, - "host.workgroup": "WORKGROUP", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", - "script.current_duration": "315381.28", - "script.current_time": "2023-06-15T21:58:02Z", - "script.name": "Invoke-CveScan.ps1", - "script.start": "2023-06-15T21:52:47Z", - "script.type": "powershell", - "script.version": "0.1.0", - "vulnerability.classification": "vulnerability", - "vulnerability.iava": "2013-A-0227", - "vulnerability.iava_severity": "CAT II", - "vulnerability.id": "CVE-2013-3900", - "vulnerability.reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "vulnerability.result": "fail", - "vulnerability.scanner.vendor": "TYCHON", - "vulnerability.score.base": "7.60", - "vulnerability.score.version": "2.0", - "vulnerability.severity": "HIGH", - "vulnerability.title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", - "vulnerability.version": 1, - "vulnerability.year": "2013" - } - ] + "events": [ + { + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.domain": "", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.hardware.bios.version": "6.00", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.owner": "dcuser", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.hostname": "DESKTOP-TIUKL1R", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.ip": "10.1.9.112", + "host.ipv4": "10.1.9.112", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.manufacturer": "", + "host.oem.model": "", + "host.os.build": "22000", + "host.os.description": "", + "host.os.family": "Windows", + "host.os.name": "Microsoft Windows 11 Education N", + "host.os.organization": "", + "host.os.version": "10.0.22000", + "host.type": "Workstation", + "host.uptime": 145287, + "host.workgroup": "WORKGROUP", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script.current_duration": "315381.28", + "script.current_time": "2023-06-15T21:58:02Z", + "script.name": "Invoke-CveScan.ps1", + "script.start": "2023-06-15T21:52:47Z", + "script.type": "powershell", + "script.version": "0.1.0", + "vulnerability.classification": "vulnerability", + "vulnerability.iava": "2013-A-0227", + "vulnerability.iava_severity": "CAT II", + "vulnerability.id": "CVE-2013-3900", + "vulnerability.reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "vulnerability.result": "fail", + "vulnerability.scanner.vendor": "TYCHON", + "vulnerability.score.base": "7.60", + "vulnerability.score.version": "2.0", + "vulnerability.severity": "HIGH", + "vulnerability.title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "vulnerability.version": 1, + "vulnerability.year": "2013" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml index e72281ddac3..302199c74f9 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index 9e0c2839baf..e9bc08095a8 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,88 +1,88 @@ { - "expected": [ - { - "@timestamp": "2023-07-28T18:14:38.394883461Z", - "ecs": { - "version": "8.8.0" - }, - "event": { - "category": [ - "vulnerability" - ], - "ingested": "2023-07-28T18:14:38.394883461Z", - "kind": "state", - "module": "tychon", - "outcome": "failure" - }, - "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "domain": "", - "hardware": { - "bios": { - "name": "Phoenix Technologies LTD", - "version": "6.00" - }, - "cpu": { - "caption": "Intel64 Family 6 Model 45 Stepping 7" - }, - "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" - }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", - "oem": { - "manufacturer": "", - "model": "" - }, - "os": { - "build": "22000", - "description": "", - "family": "Windows", - "name": "Microsoft Windows 11 Education N", - "organization": "", - "version": "10.0.22000" - }, - "type": "Workstation", - "uptime": 145287, - "workgroup": "WORKGROUP" - }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", - "script": { - "current_duration": 315381.28, - "current_time": "2023-06-15T21:58:02Z", - "name": "Invoke-CveScan.ps1", - "start": "2023-06-15T21:52:47Z", - "type": "powershell", - "version": "0.1.0" - }, - "vulnerability": { - "category": [ - "oval" - ], - "classification": "cvss", - "enumeration": "CVE", - "iava": "2013-A-0227", - "iava_severity": "CAT II", - "id": "CVE-2013-3900", - "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "result": "fail", - "scanner": { - "vendor": "tychon" - }, - "score": { - "base": 7.6, - "version": "2.0" - }, - "severity": "HIGH", - "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", - "version": "1", - "year": 2013 - } - } - ] + "expected": [ + { + "@timestamp": "2023-07-28T18:14:38.394883461Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "vulnerability" + ], + "ingested": "2023-07-28T18:14:38.394883461Z", + "kind": "state", + "module": "tychon", + "outcome": "failure" + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": "10.1.9.112", + "ipv4": "10.1.9.112", + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00-0C-29-EF-9A-EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 145287, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script": { + "current_duration": 315381.28, + "current_time": "2023-06-15T21:58:02Z", + "name": "Invoke-CveScan.ps1", + "start": "2023-06-15T21:52:47Z", + "type": "powershell", + "version": "0.1.0" + }, + "vulnerability": { + "category": [ + "oval" + ], + "classification": "cvss", + "enumeration": "CVE", + "iava": "2013-A-0227", + "iava_severity": "CAT II", + "id": "CVE-2013-3900", + "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "result": "fail", + "scanner": { + "vendor": "tychon" + }, + "score": { + "base": 7.6, + "version": "2.0" + }, + "severity": "HIGH", + "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "version": "1", + "year": 2013 + } + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index 4542034fdd6..6dd345cff24 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -111,11 +111,11 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 + - name: ipv4 level: core type: keyword description: Host ip v4 addresses. - - name: ipv6 + - name: ipv6 level: core type: keyword description: Host ip v6 addresses. diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json index 0b8a26266de..248a73419c4 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -1,53 +1,53 @@ { - "events": [ - { - "windows_defender.service.antimalware.status": "Enabled", - "windows_defender.service.real_time_protection.status": "Enabled", - "windows_defender.service.antispyware.signature_version": "1.391.1546.0", - "script.type": "powershell", - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "windows_defender.service.antivirus.quick_scan.signature_version": "1.391.1470.0", - "host.hostname": "DESKTOP-TIUKL1R", - "host.hardware.manufacturer": "VMware, Inc.", - "windows_defender.service.antivirus.status": "Enabled", - "script.start": "2023-06-15T20:13:03Z", - "host.os.name": "Microsoft Windows 11 Education N", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "dcuser", - "windows_defender.service.antispyware.status": "Enabled", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.9.112", - "host.os.version": "10.0.22000", - "windows_defender.service.antivirus.full_scan.signature_version": "", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "windows_defender.service.behavior_monitor.status": "Enabled", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", - "host.oem.model": "", - "host.uptime": "139304", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "windows_defender.service.antimalware.product_version": "4.18.23050.5", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "windows_defender.service.ioav_protection.status": "Enabled", - "windows_defender.service.on_access_protection.status": "Enabled", - "script.name": "Get-TychonEppSetting.ps1", - "windows_defender.service.antimalware.engine_version": "1.1.23050.3", - "windows_defender.service.nis.engine_version": "1.1.23050.3", - "script.version": "0.1.0", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "1129.20", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "script.current_time": "2023-06-15T20:13:04Z", - "windows_defender.service.nis.signature_version": "1.391.1546.0", - "host.hardware.bios.version": "6.00", - "windows_defender.service.nis.status": "Enabled", - "host.domain": "", - "host.os.family": "Windows" - } - ] + "events": [ + { + "windows_defender.service.antimalware.status": "Enabled", + "windows_defender.service.real_time_protection.status": "Enabled", + "windows_defender.service.antispyware.signature_version": "1.391.1546.0", + "script.type": "powershell", + "host.os.build": "22000", + "host.ip": "10.1.9.112", + "windows_defender.service.antivirus.quick_scan.signature_version": "1.391.1470.0", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "windows_defender.service.antivirus.status": "Enabled", + "script.start": "2023-06-15T20:13:03Z", + "host.os.name": "Microsoft Windows 11 Education N", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "dcuser", + "windows_defender.service.antispyware.status": "Enabled", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.112", + "host.os.version": "10.0.22000", + "windows_defender.service.antivirus.full_scan.signature_version": "", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "windows_defender.service.behavior_monitor.status": "Enabled", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.model": "", + "host.uptime": "139304", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "windows_defender.service.antimalware.product_version": "4.18.23050.5", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "windows_defender.service.ioav_protection.status": "Enabled", + "windows_defender.service.on_access_protection.status": "Enabled", + "script.name": "Get-TychonEppSetting.ps1", + "windows_defender.service.antimalware.engine_version": "1.1.23050.3", + "windows_defender.service.nis.engine_version": "1.1.23050.3", + "script.version": "0.1.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "1129.20", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "script.current_time": "2023-06-15T20:13:04Z", + "windows_defender.service.nis.signature_version": "1.391.1546.0", + "host.hardware.bios.version": "6.00", + "windows_defender.service.nis.status": "Enabled", + "host.domain": "", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml index bec4f152d4a..302199c74f9 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 51130b21f3d..00394d42a8a 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -100,4 +100,4 @@ } } ] -} +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index 4542034fdd6..6dd345cff24 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -111,11 +111,11 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 + - name: ipv4 level: core type: keyword description: Host ip v4 addresses. - - name: ipv6 + - name: ipv6 level: core type: keyword description: Host ip v6 addresses. diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index c7770ac7802..021373c406c 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -30,3 +30,4 @@ streams: 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/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json new file mode 100644 index 00000000000..8c33241ff6e --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json @@ -0,0 +1,46 @@ +{ + "events": [ + { + "process.name": "services.exe", + "host.os.build": "19045", + "host.ip": "192.168.0.92", + "host.hostname": "DESKTOP-BS6VECN", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-15T15:07:48Z", + "@timestamp": "2023-08-15T15:07:48Z", + "host.os.name": "Microsoft Windows 10 Home", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "host.os.organization": "", + "host.hardware.owner": "liguitarguide@gmail.com", + "host.workgroup": "WORKGROUP", + "host.ipv4": "192.168.0.92", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "process.user.name": "NT AUTHORITY\\SYSTEM", + "source.ip": "::", + "network.transport": "tcp", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "process.command_line": "", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.mac": "DC:41:A9:A0:1B:A3", + "process.pid": "1116", + "host.oem.model": "XPS 15 9500", + "host.uptime": "1234", + "script.type": "powershell", + "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", + "host.hardware.serial_number": "64H3DB3", + "script.name": "Get-ExposedServiceInfo.ps1", + "script.version": "2.3.48.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "3967.45", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "script.current_time": "2023-08-15T15:07:52Z", + "host.hardware.bios.version": "1.22.0", + "source.port": "49671", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-config.yml b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json new file mode 100644 index 00000000000..a0a33ce7a58 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json @@ -0,0 +1,46 @@ +{ + "expected": [ + { + "process.name": "services.exe", + "host.os.build": "19045", + "host.ip": "192.168.0.92", + "host.hostname": "DESKTOP-BS6VECN", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-15T15:07:48Z", + "@timestamp": "2023-08-15T15:07:48Z", + "host.os.name": "Microsoft Windows 10 Home", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "host.os.organization": "", + "host.hardware.owner": "liguitarguide@gmail.com", + "host.workgroup": "WORKGROUP", + "host.ipv4": "192.168.0.92", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "process.user.name": "NT AUTHORITY\\SYSTEM", + "source.ip": "::", + "network.transport": "tcp", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "process.command_line": "", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.mac": "DC:41:A9:A0:1B:A3", + "process.pid": "1116", + "host.oem.model": "XPS 15 9500", + "host.uptime": "1234", + "script.type": "powershell", + "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", + "host.hardware.serial_number": "64H3DB3", + "script.name": "Get-ExposedServiceInfo.ps1", + "script.version": "2.3.48.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "3967.45", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "script.current_time": "2023-08-15T15:07:52Z", + "host.hardware.bios.version": "1.22.0", + "source.port": "49671", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..ad3829e3475 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,46 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml new file mode 100644 index 00000000000..a7dcf1323ac --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml @@ -0,0 +1,94 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: network.transport +- external: ecs + name: process.command_line +- external: ecs + name: process.executable +- external: ecs + name: process.hash.sha1 +- external: ecs + name: process.name +- external: ecs + name: process.pid +- external: ecs + name: process.user.name +- external: ecs + name: service.name +- external: ecs + name: service.state +- external: ecs + name: source.ip +- external: ecs + name: source.port +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date +- name: process.start + type: date diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml new file mode 100644 index 00000000000..eada49f31af --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml @@ -0,0 +1,4 @@ +- name: service.description + type: keyword +- name: service.display_name + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml new file mode 100644 index 00000000000..aaf504358a3 --- /dev/null +++ b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml @@ -0,0 +1,33 @@ +title: Windows exposedservice Info +type: logs +streams: + - input: logfile + title: Windows exposedservice Info + description: Windows exposedservice Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows exposedservice Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_exposedservice_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-exposedservice-info + - 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/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json new file mode 100644 index 00000000000..02df63d6e6b --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json @@ -0,0 +1,63 @@ +{ + "events": [ + { + "disk_location_function": "0", + "disk.is_offline": "false", + "disk_location_bus": "0", + "disk_size": "512110190592", + "disk_operational_status": "Online", + "disk.serial_number": "E823_8FA6_BF53_0001_001B_444A_4656_FFFD.", + "host.os.build": "19045", + "host.ip": "192.168.0.60", + "host.hostname": "DESKTOP-BS6VECN", + "disk.firmware_version": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.oem.model": "XPS 15 9500", + "script.start": "2023-08-14T15:50:37Z", + "@timestamp": "2023-08-14T15:50:37Z", + "host.os.name": "Microsoft Windows 10 Home", + "disk_manufacturer": "NVMe", + "host.os.organization": "", + "disk_model": "PC SN730 NVMe WDC 512GB", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "disk_location_adapter": "0", + "disk_guid": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", + "disk.name": "NVMe PC SN730 NVMe WDC 512GB", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "64H3DB3", + "disk.is_highly_available": "false", + "host.os.version": "2009", + "disk.is_clustered": "false", + "host.hardware.bios.name": "Dell Inc.", + "disk_NumberOfPartitions": "6", + "host.type": "Workstation", + "host.hardware.bios.version": "1.22.0", + "script.type": "powershell", + "host.os.description": "", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "disk_bus_type": "RAID", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.hardware.owner": "liguitarguide@gmail.com", + "disk_system": "true", + "disk_number": "0", + "host.uptime": {}, + "disk_adapter_serialnumber": "", + "disk_partition_style": "GPT", + "disk_boot_from": "true", + "script.name": "Get-TychonHardDriveInfo.ps1", + "disk_health_status": "Healthy", + "disk_location_device": "23", + "script.version": "2.3.46.0", + "id": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", + "host.oem.manufacturer": "Dell", + "host.ipv4": "192.168.0.60", + "script.current_duration": "4267.97", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "script.current_time": "2023-08-14T15:50:41Z", + "disk_is_boot": "true", + "host.domain": "", + "host.mac": "DC:41:A9:A0:1B:A3", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json new file mode 100644 index 00000000000..7e7aad8eba5 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json @@ -0,0 +1,63 @@ +{ + "expected": [ + { + "disk_location_function": "0", + "disk.is_offline": "false", + "disk_location_bus": "0", + "disk_size": "512110190592", + "disk_operational_status": "Online", + "disk.serial_number": "E823_8FA6_BF53_0001_001B_444A_4656_FFFD.", + "host.os.build": "19045", + "host.ip": "192.168.0.60", + "host.hostname": "DESKTOP-BS6VECN", + "disk.firmware_version": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.oem.model": "XPS 15 9500", + "script.start": "2023-08-14T15:50:37Z", + "@timestamp": "2023-08-14T15:50:37Z", + "host.os.name": "Microsoft Windows 10 Home", + "disk_manufacturer": "NVMe", + "host.os.organization": "", + "disk_model": "PC SN730 NVMe WDC 512GB", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "disk_location_adapter": "0", + "disk_guid": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", + "disk.name": "NVMe PC SN730 NVMe WDC 512GB", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "64H3DB3", + "disk.is_highly_available": "false", + "host.os.version": "2009", + "disk.is_clustered": "false", + "host.hardware.bios.name": "Dell Inc.", + "disk_NumberOfPartitions": "6", + "host.type": "Workstation", + "host.hardware.bios.version": "1.22.0", + "script.type": "powershell", + "host.os.description": "", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "disk_bus_type": "RAID", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.hardware.owner": "liguitarguide@gmail.com", + "disk_system": "true", + "disk_number": "0", + "host.uptime": {}, + "disk_adapter_serialnumber": "", + "disk_partition_style": "GPT", + "disk_boot_from": "true", + "script.name": "Get-TychonHardDriveInfo.ps1", + "disk_health_status": "Healthy", + "disk_location_device": "23", + "script.version": "2.3.46.0", + "id": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", + "host.oem.manufacturer": "Dell", + "host.ipv4": "192.168.0.60", + "script.current_duration": "4267.97", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "script.current_time": "2023-08-14T15:50:41Z", + "disk_is_boot": "true", + "host.domain": "", + "host.mac": "DC:41:A9:A0:1B:A3", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..d7ebf89ad47 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,159 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float + - set: + field: disk.partition_style + value: '{{disk_partition_style}}' + - remove: + field: disk_partition_style + - set: + field: disk.number_of_partitions + value: '{{disk_NumberOfPartitions}}' + - remove: + field: disk_NumberOfPartitions + - set: + field: disk.operational_status + value: '{{disk_operational_status}}' + - remove: + field: disk_operational_status + - set: + field: disk.health_status + value: '{{disk_health_status}}' + - remove: + field: disk_health_status + - set: + field: disk.highly_available + value: '{{disk.is_highly_available}}' + - remove: + field: disk.is_highly_available + - set: + field: disk.offline + value: '{{disk.is_offline}}' + - remove: + field: disk.is_offline + - set: + field: disk.bus_type + value: '{{disk.bus_type}}' + - remove: + field: disk.bus_type + - set: + field: disk.adapter.serial_number + value: '{{disk_adapter_serialnumber}}' + - remove: + field: disk_adapter_serialnumber + - set: + field: disk.adapter.serial_number + value: '{{disk_adapter_serialnumber}}' + - remove: + field: disk_adapter_serialnumber + - set: + field: disk.size + value: '{{disk_size}}' + - remove: + field: disk_size + - set: + field: disk.system + value: '{{disk_system}}' + - remove: + field: disk_system + - set: + field: disk.manufacturer + value: '{{disk_manufacturer}}' + - remove: + field: disk_manufacturer + - set: + field: disk.clustered + value: '{{disk.is_clustered}}' + - remove: + field: disk.is_clustered + - set: + field: disk.model + value: '{{disk_model}}' + - remove: + field: disk_model + - set: + field: disk.number + value: '{{disk_number}}' + - remove: + field: disk_number + - set: + field: disk.location.function + value: '{{disk_location_function}}' + - remove: + field: disk_location_function + - set: + field: disk.location.device + value: '{{disk_location_device}}' + - remove: + field: disk_location_device + - set: + field: disk.location.bus + value: '{{disk_location_bus}}' + - remove: + field: disk_location_bus + - set: + field: disk.location.adapter + value: '{{disk_location_adapter}}' + - remove: + field: disk_location_adapter + - set: + field: disk.is_boot + value: '{{disk_is_boot}}' + - remove: + field: disk_is_boot + - set: + field: disk.guid + value: '{{disk_guid}}' + - remove: + field: disk_guid + - set: + field: disk.boot_from + value: '{{disk_boot_from}}' + - remove: + field: disk_boot_from + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml b/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml new file mode 100644 index 00000000000..ff1f0be95fe --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml new file mode 100644 index 00000000000..89116cfd6ac --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml @@ -0,0 +1,50 @@ +- name: disk.adapter.serial_number + type: keyword +- name: disk.boot_from + type: boolean +- name: disk.bus_type + type: keyword +- name: disk.clustered + type: boolean +- name: disk.firmware.version + type: keyword +- name: disk.firmware_version + type: keyword +- name: disk.guid + type: keyword +- name: disk.health_status + type: keyword +- name: disk.highly_available + type: boolean +- name: disk.is_boot + type: boolean +- name: disk.location.adapter + type: integer +- name: disk.location.bus + type: integer +- name: disk.location.device + type: integer +- name: disk.location.function + type: integer +- name: disk.manufacturer + type: keyword +- name: disk.model + type: keyword +- name: disk.name + type: keyword +- name: disk.number + type: integer +- name: disk.number_of_partitions + type: integer +- name: disk.offline + type: boolean +- name: disk.operational_status + type: keyword +- name: disk.partition_style + type: keyword +- name: disk.serial_number + type: keyword +- name: disk.size + type: long +- name: disk.system + type: boolean diff --git a/packages/tychon/data_stream/tychon_harddrive/manifest.yml b/packages/tychon/data_stream/tychon_harddrive/manifest.yml new file mode 100644 index 00000000000..05fd46993f5 --- /dev/null +++ b/packages/tychon/data_stream/tychon_harddrive/manifest.yml @@ -0,0 +1,33 @@ +title: Windows harddrive Info +type: logs +streams: + - input: logfile + title: Windows harddrive Info + description: Windows harddrive Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows harddrive Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_harddrive_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-harddrive-info + - 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/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json new file mode 100644 index 00000000000..ae6ac19c749 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json @@ -0,0 +1,44 @@ +{ + "events": [ + { + "host.os.build": "19045", + "host.ip": "192.168.0.33", + "host.hostname": "DESKTOP-BS6VECN", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-16T15:28:09Z", + "@timestamp": "2023-08-16T15:28:09Z", + "host.os.name": "Microsoft Windows 10 Home", + "friendly_name": "HID-compliant vendor-defined device", + "device_id": "HID\\DELL097D\u0026COL04\\5\u00262E84B32B\u00260\u00260003", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "host.os.organization": "", + "host.hardware.owner": "liguitarguide@gmail.com", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "64H3DB3", + "host.ipv4": "192.168.0.33", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "status": "OK", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.mac": "DC:41:A9:A0:1B:A3", + "host.oem.model": "XPS 15 9500", + "host.uptime": "554367.8797053", + "script.type": "powershell", + "script.current_time": "2023-08-16T15:28:10Z", + "script.name": "Get-TychonHardwareInfo.ps1", + "script.version": "2.3.55.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "970.62", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "manufacturer": "(Standard system devices)", + "host.hardware.bios.version": "1.22.0", + "name": "HID-compliant vendor-defined device", + "host.domain": "", + "host.os.family": "Windows", + "present": "true" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-config.yml b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json new file mode 100644 index 00000000000..34d6291463e --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json @@ -0,0 +1,44 @@ +{ + "expected": [ + { + "host.os.build": "19045", + "host.ip": "192.168.0.33", + "host.hostname": "DESKTOP-BS6VECN", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-16T15:28:09Z", + "@timestamp": "2023-08-16T15:28:09Z", + "host.os.name": "Microsoft Windows 10 Home", + "friendly_name": "HID-compliant vendor-defined device", + "device_id": "HID\\DELL097D\u0026COL04\\5\u00262E84B32B\u00260\u00260003", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", + "host.os.organization": "", + "host.hardware.owner": "liguitarguide@gmail.com", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "64H3DB3", + "host.ipv4": "192.168.0.33", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "status": "OK", + "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", + "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", + "host.mac": "DC:41:A9:A0:1B:A3", + "host.oem.model": "XPS 15 9500", + "host.uptime": "554367.8797053", + "script.type": "powershell", + "script.current_time": "2023-08-16T15:28:10Z", + "script.name": "Get-TychonHardwareInfo.ps1", + "script.version": "2.3.55.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "script.current_duration": "970.62", + "host.ipv6": "fe80::fefc:76f5:552c:886e", + "manufacturer": "(Standard system devices)", + "host.hardware.bios.version": "1.22.0", + "name": "HID-compliant vendor-defined device", + "host.domain": "", + "host.os.family": "Windows", + "present": "true" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..187bf4f4366 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,76 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float + - set: + field: device.id + value: '{{device_id}}' + - remove: + field: device_id + - set: + field: device.status + value: '{{status}}' + - remove: + field: status + - set: + field: device.present + value: '{{present}}' + - remove: + field: present + - set: + field: device.name + value: '{{name}}' + - remove: + field: name + - set: + field: device.manufacturer + value: '{{manufacturer}}' + - remove: + field: manufacturer + - set: + field: device.friendly_name + value: '{{friendly_name}}' + - remove: + field: friendly_name +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml b/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml new file mode 100644 index 00000000000..27c34f615b8 --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml @@ -0,0 +1,74 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: device.id +- external: ecs + name: device.manufacturer +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/data_stream/tychon_hardware/fields/fields.yml b/packages/tychon/data_stream/tychon_hardware/fields/fields.yml new file mode 100644 index 00000000000..ff33e64dbab --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/fields/fields.yml @@ -0,0 +1,12 @@ +- name: device.class + type: keyword +- name: device.description + type: keyword +- name: device.friendly_name + type: keyword +- name: device.name + type: keyword +- name: device.present + type: boolean +- name: device.status + type: keyword diff --git a/packages/tychon/data_stream/tychon_hardware/manifest.yml b/packages/tychon/data_stream/tychon_hardware/manifest.yml new file mode 100644 index 00000000000..435b60875cf --- /dev/null +++ b/packages/tychon/data_stream/tychon_hardware/manifest.yml @@ -0,0 +1,33 @@ +title: Windows hardware Info +type: logs +streams: + - input: logfile + title: Windows hardware Info + description: Windows hardware Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows hardware Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_hardware_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-hardware-info + - 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/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json new file mode 100644 index 00000000000..390eb4215c1 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json @@ -0,0 +1,76 @@ +{ + "events": [ + { + "event.ufi.enabled": "false", + "event.deviceguard.hypervisorenforcedcodeint.running": "false", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.tpm.version": "", + "event.deviceguard.securememoverwrite.available": "false", + "event.deviceguard.virtualizationbasedsecurity.status": "Off", + "host.tpm.compliant": "false", + "host.type": "Workstation", + "host.virtualization_status": "Virtual Machine", + "host.security.antivirus.name": "McAfee Endpoint Security, Windows Defender", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "tychon.version.content": "2.3.70.0", + "script.current_duration": "14549.11", + "host.oem.manufacturer": "", + "host.uptime": "1189443.9672792", + "host.os.name": "Microsoft Windows 10 Pro", + "host.tpm.present": "false", + "event.deviceguard.secureboot.available": "false", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.architecture": "64-bit", + "host.os.version": "2009", + "host.hostname": "BOTANYBAYEP1", + "id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "event.deviceguard.systemguardsecurelaunch.running": "false", + "tychon.version.agent": "1.7.861.86", + "host.hardware.owner": "admin", + "script.version": "2.3.70.0", + "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", + "host.os.edition": "Pro", + "host.workgroup": "WORKGROUP", + "host.ipv6": "", + "event.deviceguard.smmsecuritymigrations.available": "false", + "host.domain": "", + "host.os.organization": "", + "script.start": "2023-08-22T21:01:25Z", + "host.os.family": "Windows", + "script.current_time": "2023-08-22T21:01:39Z", + "event.deviceguard.credentialguard.running": "false", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.tpm.digest.id": "TPM Digest Not Found", + "host.hardware.bios.version": "6.00", + "tychon.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.build": "19045", + "host.security.antivirus.status": "OutOfDate, UpToDate", + "event.deviceguard.version": "1.0", + "host.oem.model": "", + "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", + "event.deviceguard.dmaprotection.available": "false", + "tychon.definition.oval": "2023-08-15T20:03:33Z", + "host.ipv4": "10.1.9.51", + "event.deviceguard.ueficodereadonly.available": "false", + "host.security.antivirus.exists": "True, True", + "script.type": "powershell", + "host.os.vendor": "Microsoft Corporation", + "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", + "host.motherboard.serial_number": "None", + "tychon.definition.stig": "2023-08-16T17:18:48Z", + "event.deviceguard.basevirtualizationsupport.available": "false", + "host.cpu.count": "2", + "host.ip": "10.1.9.51", + "event.deviceguard.systemguardsecurelaunch.enabled": "false", + "host.security.antivirus.state": "On, Off", + "script.name": "Get-TychonHostInfo.ps1", + "host.mac": "00:0C:29:93:6A:F3", + "event.deviceguard.credentialguard.enabled": "false", + "host.os.description": "", + "host.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.memory.size": "4294496256" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-config.yml b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json new file mode 100644 index 00000000000..ff7ac0a0ae2 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json @@ -0,0 +1,76 @@ +{ + "expected": [ + { + "event.ufi.enabled": "false", + "event.deviceguard.hypervisorenforcedcodeint.running": "false", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.tpm.version": "", + "event.deviceguard.securememoverwrite.available": "false", + "event.deviceguard.virtualizationbasedsecurity.status": "Off", + "host.tpm.compliant": "false", + "host.type": "Workstation", + "host.virtualization_status": "Virtual Machine", + "host.security.antivirus.name": "McAfee Endpoint Security, Windows Defender", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "tychon.version.content": "2.3.70.0", + "script.current_duration": "14549.11", + "host.oem.manufacturer": "", + "host.uptime": "1189443.9672792", + "host.os.name": "Microsoft Windows 10 Pro", + "host.tpm.present": "false", + "event.deviceguard.secureboot.available": "false", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.architecture": "64-bit", + "host.os.version": "2009", + "host.hostname": "BOTANYBAYEP1", + "id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "event.deviceguard.systemguardsecurelaunch.running": "false", + "tychon.version.agent": "1.7.861.86", + "host.hardware.owner": "admin", + "script.version": "2.3.70.0", + "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", + "host.os.edition": "Pro", + "host.workgroup": "WORKGROUP", + "host.ipv6": "", + "event.deviceguard.smmsecuritymigrations.available": "false", + "host.domain": "", + "host.os.organization": "", + "script.start": "2023-08-22T21:01:25Z", + "host.os.family": "Windows", + "script.current_time": "2023-08-22T21:01:39Z", + "event.deviceguard.credentialguard.running": "false", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.tpm.digest.id": "TPM Digest Not Found", + "host.hardware.bios.version": "6.00", + "tychon.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.build": "19045", + "host.security.antivirus.status": "OutOfDate, UpToDate", + "event.deviceguard.version": "1.0", + "host.oem.model": "", + "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", + "event.deviceguard.dmaprotection.available": "false", + "tychon.definition.oval": "2023-08-15T20:03:33Z", + "host.ipv4": "10.1.9.51", + "event.deviceguard.ueficodereadonly.available": "false", + "host.security.antivirus.exists": "True, True", + "script.type": "powershell", + "host.os.vendor": "Microsoft Corporation", + "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", + "host.motherboard.serial_number": "None", + "tychon.definition.stig": "2023-08-16T17:18:48Z", + "event.deviceguard.basevirtualizationsupport.available": "false", + "host.cpu.count": "2", + "host.ip": "10.1.9.51", + "event.deviceguard.systemguardsecurelaunch.enabled": "false", + "host.security.antivirus.state": "On, Off", + "script.name": "Get-TychonHostInfo.ps1", + "host.mac": "00:0C:29:93:6A:F3", + "event.deviceguard.credentialguard.enabled": "false", + "host.os.description": "", + "host.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.memory.size": "4294496256" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..68ffe032fdf --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,57 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: epp + - convert: + field: script.current_duration + type: float + - lowercase: + field: host.security.antivirus.exists + - split: + field: host.security.antivirus.exists + separator: "," + target_field: tempav + - set: + field: host.security.antivirus.exists + value: "{{tempav.0}}" + - remove: + field: tempav + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/fields/agent.yml b/packages/tychon/data_stream/tychon_host/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_host/fields/base-fields.yml b/packages/tychon/data_stream/tychon_host/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_host/fields/ecs.yml b/packages/tychon/data_stream/tychon_host/fields/ecs.yml new file mode 100644 index 00000000000..2be31038472 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/fields/ecs.yml @@ -0,0 +1,32 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.os.family +- external: ecs + name: host.os.name +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml new file mode 100644 index 00000000000..8a8e8a28231 --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -0,0 +1,72 @@ +- name: event.deviceguard.basevirtualizationsupport.available + type: boolean +- name: event.deviceguard.credentialguard.enabled + type: boolean +- name: event.deviceguard.credentialguard.running + type: boolean +- name: event.deviceguard.dmaprotection.available + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.enabled + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.running + type: boolean +- name: event.deviceguard.secureboot.available + type: boolean +- name: event.deviceguard.securememoverwrite.available + type: boolean +- name: event.deviceguard.smmsecuritymigrations.available + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.enabled + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.running + type: boolean +- name: event.deviceguard.ueficodereadonly.available + type: boolean +- name: event.deviceguard.usermodecodeintegrity.policyenforcement + type: keyword +- name: event.deviceguard.version + type: keyword +- name: event.deviceguard.virtualizationbasedsecurity.status + type: keyword +- name: event.ufi.enabled + type: boolean +- name: host.cpu.caption + type: keyword +- name: host.cpu.count + type: integer +- name: host.memory.size + type: long +- name: host.motherboard.chipset + type: keyword +- name: host.motherboard.serial_number + type: keyword +- name: host.os.edition + type: keyword +- name: host.os.vendor + type: keyword +- name: host.security.antivirus.exists + type: boolean +- name: host.security.antivirus.name + type: keyword +- name: host.security.antivirus.state + type: keyword +- name: host.security.antivirus.status + type: keyword +- name: host.tpm.compliant + type: boolean +- name: host.tpm.digest.id + type: keyword +- name: host.tpm.present + type: boolean +- name: host.tpm.version + type: keyword +- name: host.virtualization_status + type: keyword +- name: tychon.definition.oval + type: date +- name: tychon.definition.stig + type: date +- name: tychon.version.agent + type: version +- name: tychon.version.content + type: version diff --git a/packages/tychon/data_stream/tychon_host/manifest.yml b/packages/tychon/data_stream/tychon_host/manifest.yml new file mode 100644 index 00000000000..6389f0f457d --- /dev/null +++ b/packages/tychon/data_stream/tychon_host/manifest.yml @@ -0,0 +1,33 @@ +title: Windows host os Info +type: logs +streams: + - input: logfile + title: Windows host_os Info + description: Windows host_os Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows host_os Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_host_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-host-info + - 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/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json new file mode 100644 index 00000000000..f9c2e27ad47 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json @@ -0,0 +1,67 @@ +{ + "events": [ + { + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-config.yml b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json new file mode 100644 index 00000000000..c99a8e1d1b4 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json @@ -0,0 +1,67 @@ +{ + "expected": [ + { + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json new file mode 100644 index 00000000000..f9c2e27ad47 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json @@ -0,0 +1,67 @@ +{ + "events": [ + { + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json new file mode 100644 index 00000000000..c99a8e1d1b4 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json @@ -0,0 +1,67 @@ +{ + "expected": [ + { + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..9a233ce2866 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,58 @@ +--- +description: Pipeline for parsing TYCHON Software Inventory +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - gsub: + field: host.adapter.link_speed + pattern: " Gbps" + replacement: "" + - remove: + field: host.adapter.dhcp.server + if: ctx.host.adapter.dhcp.server == '' + - remove: + field: host.adapter.dhcp.lease_obtained + if: ctx.host.adapter.dhcp.lease_obtained == '' + - remove: + field: host.adapter.dhcp.lease_expires + if: ctx.host.adapter.dhcp.lease_expires == '' + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml new file mode 100644 index 00000000000..684a278aafc --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml @@ -0,0 +1,36 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- name: error.message + type: match_only_text +- external: ecs + name: event.agent_id_status +- name: event.ingested + type: date +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.os.family +- external: ecs + name: host.os.name +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml new file mode 100644 index 00000000000..5a69e18c631 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -0,0 +1,58 @@ +- name: host.adapter.alias + type: keyword +- name: host.adapter.description + type: text +- name: host.adapter.dhcp.enabled + type: boolean +- name: host.adapter.dhcp.lease_expires + type: date +- name: host.adapter.dhcp.lease_obtained + type: date +- name: host.adapter.dhcp.server + type: ip +- name: host.adapter.domain + type: keyword +- name: host.adapter.driver.date + type: date +- name: host.adapter.driver.description + type: text +- name: host.adapter.driver.file_name + type: keyword +- name: host.adapter.driver.name + type: keyword +- name: host.adapter.driver.provider + type: keyword +- name: host.adapter.driver.version + type: keyword +- name: host.adapter.gateway + type: ip +- name: host.adapter.id + type: keyword +- name: host.adapter.ip + type: ip +- name: host.adapter.ip_filter.enabled + type: boolean +- name: host.adapter.wins_server + type: keyword +- name: host.adapter.link_speed + type: long +- name: host.adapter.mac + type: keyword +- name: host.adapter.media.connection_state + type: keyword +- name: host.adapter.media.type + type: keyword +- name: host.adapter.mtu + type: integer +- name: host.adapter.ndis.version + type: keyword +- name: host.adapter.subnet_bit + type: integer +- name: host.adapter.virtual + type: boolean +- name: host.adapter.vlan.id + type: keyword +- name: host.adapter.wifi.enabled + type: boolean +- name: host.adapter.wifi.signal_percent + type: integer diff --git a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml new file mode 100644 index 00000000000..4834974691b --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml @@ -0,0 +1,34 @@ +title: Network Adapters +type: logs +streams: + - input: logfile + title: Network Adapters + description: TYCHON reports on a host endpoints Network Adapters/NICs. + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Host Network Adapters + multi: true + required: true + show_user: true + default: + #- /root/systemInfo/data/tychon_networkadapter_info.json + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_networkadapter_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-networkadapter + - 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/tychon/data_stream/tychon_networkadapter/sample_event.json b/packages/tychon/data_stream/tychon_networkadapter/sample_event.json new file mode 100644 index 00000000000..19c53d20731 --- /dev/null +++ b/packages/tychon/data_stream/tychon_networkadapter/sample_event.json @@ -0,0 +1,63 @@ +{ + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json new file mode 100644 index 00000000000..9f27761b525 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json @@ -0,0 +1,54 @@ +{ + "events": [ + { + "package.description": "", + "script.current_time": "2023-08-10T15:33:47Z", + "package.size": "", + "host.os.build": "19045", + "host.ip": "10.1.5.100", + "host.hostname": "C-EP-WIN10-6", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-08-10T15:33:47Z", + "@timestamp": "2023-08-10T15:33:47Z", + "host.os.name": "Microsoft Windows 10 Pro", + "package.version_release": "4", + "package.architecture": "x86", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "package.version": "5.7.4.399", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.5.100", + "host.os.version": "2009", + "package.path": "C:\\Program Files\\McAfee\\Agent\\", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "package.publisher": "McAfee, LLC.", + "host.type": "Workstation", + "package.id": "McAfeeAgent", + "package.version_build": "399", + "pacakage.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", + "package.name": "McAfee Agent", + "host.id": "13ab12ccdbff465c8182dec95e1ffd37_211A4D56-78B2-F579-5B54-DE2DD6A86DBD_C-EP-WIN10-6_WORKGROUP", + "host.biossn": "211A4D56-78B2-F579-5B54-DE2DD6A86DBD", + "host.mac": "00:0C:29:A8:6D:BD", + "package.version_major": "5", + "host.oem.model": "", + "host.uptime": "12345", + "script.type": "", + "host.hardware.serial_number": "VMware-56 4d 1a 21 b2 78 79 f5-5b 54 de 2d d6 a8 6d bd", + "script.name": "", + "script.version": "", + "package.version_minor": "7", + "host.oem.manufacturer": "", + "host.os.description": "", + "package.installed": "", + "script.current_duration": "218.61", + "host.ipv6": "fe80::6e2b:7609:dc72:37cc", + "package.type": "installer", + "host.hardware.bios.version": "6.00", + "package.cpe": "cpe:/a:McAfee Agent:5.7.4.399", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-config.yml b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json new file mode 100644 index 00000000000..110239b310a --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json @@ -0,0 +1,54 @@ +{ + "expected": [ + { + "package.description": "", + "script.current_time": "2023-08-10T15:33:47Z", + "package.size": "", + "host.os.build": "19045", + "host.ip": "10.1.5.100", + "host.hostname": "C-EP-WIN10-6", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-08-10T15:33:47Z", + "@timestamp": "2023-08-10T15:33:47Z", + "host.os.name": "Microsoft Windows 10 Pro", + "package.version_release": "4", + "package.architecture": "x86", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "package.version": "5.7.4.399", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.5.100", + "host.os.version": "2009", + "package.path": "C:\\Program Files\\McAfee\\Agent\\", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "package.publisher": "McAfee, LLC.", + "host.type": "Workstation", + "package.id": "McAfeeAgent", + "package.version_build": "399", + "pacakage.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", + "package.name": "McAfee Agent", + "host.id": "13ab12ccdbff465c8182dec95e1ffd37_211A4D56-78B2-F579-5B54-DE2DD6A86DBD_C-EP-WIN10-6_WORKGROUP", + "host.biossn": "211A4D56-78B2-F579-5B54-DE2DD6A86DBD", + "host.mac": "00:0C:29:A8:6D:BD", + "package.version_major": "5", + "host.oem.model": "", + "host.uptime": "12345", + "script.type": "", + "host.hardware.serial_number": "VMware-56 4d 1a 21 b2 78 79 f5-5b 54 de 2d d6 a8 6d bd", + "script.name": "", + "script.version": "", + "package.version_minor": "7", + "host.oem.manufacturer": "", + "host.os.description": "", + "package.installed": "", + "script.current_duration": "218.61", + "host.ipv6": "fe80::6e2b:7609:dc72:37cc", + "package.type": "installer", + "host.hardware.bios.version": "6.00", + "package.cpe": "cpe:/a:McAfee Agent:5.7.4.399", + "host.domain": "", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..b236704d332 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,50 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: package.installed + value: "1970-01-01T00:00:01Z" + if: ctx.package.installed == '' + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: "software inventory" + - convert: + field: script.current_duration + type: float + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml new file mode 100644 index 00000000000..c56cb240566 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml @@ -0,0 +1,87 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: package.architecture +- external: ecs + name: package.description +- external: ecs + name: package.installed + ignore_malformed: true +- external: ecs + name: package.name +- external: ecs + name: package.path +- external: ecs + name: package.size +- external: ecs + name: package.type +- external: ecs + name: package.version +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml new file mode 100644 index 00000000000..fec6c53f2e3 --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml @@ -0,0 +1,16 @@ +- name: package.uninstall + type: text +- name: package.cpe + type: keyword +- name: package.id + type: keyword +- name: package.publisher + type: keyword +- name: package.version_build + type: integer +- name: package.version_major + type: integer +- name: package.version_minor + type: integer +- name: package.version_release + type: integer diff --git a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml new file mode 100644 index 00000000000..b3a4e86c2ee --- /dev/null +++ b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml @@ -0,0 +1,33 @@ +title: Windows softwareinventory Info +type: logs +streams: + - input: logfile + title: Windows softwareinventory Info + description: Windows softwareinventory Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows softwareinventory Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_softwareinventory_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-softwareinventory-info + - 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/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json index d8b1adf8574..f454580e687 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json @@ -1,60 +1,60 @@ { - "events": [ - { - "rule.benchmark.profile.id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules", - "benchmark.name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.weight": "10.0", - "rule.title": "", - "rule.id": "", - "rule.oval.refid": "", - "script.type": "powershell", - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "rule.name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", - "script.version": "0.1.0", - "host.hostname": "DESKTOP-TIUKL1R", - "host.hardware.manufacturer": "VMware, Inc.", - "benchmark.guid": "", - "script.start": "2023-06-15T20:14:11Z", - "host.os.name": "Microsoft Windows 11 Education N", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "rule.test_result": "not applicable", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "benchmark.hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "host.hardware.owner": "dcuser", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.ipv4": "10.1.9.112", - "host.os.version": "10.0.22000", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "script.name": "Invoke-TychonStigBenchmarkScan.ps1", - "oval.id": "oval:mil.disa.stig.windows11:def:253254", - "rule.finding_id": "", - "rule.oval.class": "compliance", - "rule.benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.benchmark.guid": "", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "oval.class": "compliance", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", - "oval.refid": "", - "rule.severity": "medium", - "host.oem.model": "", - "host.uptime": "139370", - "benchmark.version": "1.2", - "script.current_time": "2023-06-15T20:19:35Z", - "benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.oval.id": "oval:mil.disa.stig.windows11:def:253254", - "benchmark.generated_utc": "2023-03-28T17:40:48", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "324194.34", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.hardware.bios.version": "6.00", - "host.domain": "", - "host.os.family": "Windows" - } - ] + "events": [ + { + "rule.benchmark.profile.id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules", + "benchmark.name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.weight": "10.0", + "rule.title": "", + "rule.id": "", + "rule.oval.refid": "", + "script.type": "powershell", + "host.os.build": "22000", + "host.ip": "10.1.9.112", + "rule.name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "script.version": "0.1.0", + "host.hostname": "DESKTOP-TIUKL1R", + "host.hardware.manufacturer": "VMware, Inc.", + "benchmark.guid": "", + "script.start": "2023-06-15T20:14:11Z", + "host.os.name": "Microsoft Windows 11 Education N", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "rule.test_result": "not applicable", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "benchmark.hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "host.hardware.owner": "dcuser", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.ipv4": "10.1.9.112", + "host.os.version": "10.0.22000", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "script.name": "Invoke-TychonStigBenchmarkScan.ps1", + "oval.id": "oval:mil.disa.stig.windows11:def:253254", + "rule.finding_id": "", + "rule.oval.class": "compliance", + "rule.benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.benchmark.guid": "", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "oval.class": "compliance", + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.mac": "00:0C:29:EF:9A:EB", + "oval.refid": "", + "rule.severity": "medium", + "host.oem.model": "", + "host.uptime": "139370", + "benchmark.version": "1.2", + "script.current_time": "2023-06-15T20:19:35Z", + "benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", + "rule.oval.id": "oval:mil.disa.stig.windows11:def:253254", + "benchmark.generated_utc": "2023-03-28T17:40:48", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "324194.34", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 8f7e9630636..a41fd0f681b 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -95,4 +95,4 @@ } } ] -} +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index 4542034fdd6..6dd345cff24 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -111,11 +111,11 @@ level: core type: ip description: Host ip addresses. - - name: ipv4 + - name: ipv4 level: core type: keyword description: Host ip v4 addresses. - - name: ipv6 + - name: ipv6 level: core type: keyword description: Host ip v6 addresses. diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index 10c1782b32e..e4d2129d452 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -30,3 +30,4 @@ streams: 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/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json new file mode 100644 index 00000000000..e7baf9ee5d6 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json @@ -0,0 +1,56 @@ +{ + "events": [ + { + "volume.purpose": "text|Optional description or designation for volume.", + "volume.file_system": "keyword|Type of file system. ex. NTFS", + "volume.serial_number": "keyword| Volumes serial number. ex. 1975801541", + "volume.size": "long|Total volume size. ex. 2027835879424", + "script.type": "powershell", + "host.os.build": "22621", + "host.ip": "10.154.5.200", + "volume.percent_full": "keyword|Representating percent of the volume storage spaced is used.", + "host.hostname": "DESKTOP-AF7CIQM", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-14T07:32:54Z", + "@timestamp": "2023-08-14T07:32:54Z", + "host.os.name": "Microsoft Windows 11 Pro", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.os.organization": "", + "host.hardware.owner": "justin.skidmore@tychon.io", + "volume.block_size": "int|Block size.", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.154.5.200", + "host.os.version": "2009", + "volume.drive.type": "int|Numeric code used to categorize and identify different types of drives in Windows.", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "volume.freespace": "long|Amount of free storage space remaining on drive. ex. 1444925468672", + "volume.drive.letter": "keyword|Drive letter.", + "volume.power_management_supported": "bool|Is power management supported on this volume.", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "volume.dirty_bit_set": "bool|File system repair or consistency check has been set.", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.mac": "60:E3:2B:4B:40:E2", + "volume.id": "keyword|Unique volume identifier. ex. /Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", + "volume.automount": "bool|Is volume auto-mounted", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "/Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", + "host.hardware.serial_number": "HYLCKG3", + "script.name": "Get-TychonVolumeInfo.ps1", + "script.version": "2.3.44.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "volume.dos_device_path": "keyword|DOS device name or file.", + "script.current_duration": "444.85", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", + "script.current_time": "2023-08-14T07:32:54Z", + "host.hardware.bios.version": "1.20.1", + "volume.name": "keyword|Name of the volume if applicable", + "volume.system_volume": "bool|Is a system parition", + "host.domain": "", + "volume.page_file_present": "bool|Has swap or supplemental memory storage.", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-config.yml b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json new file mode 100644 index 00000000000..64398acae3b --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json @@ -0,0 +1,56 @@ +{ + "expected": [ + { + "volume.purpose": "text|Optional description or designation for volume.", + "volume.file_system": "keyword|Type of file system. ex. NTFS", + "volume.serial_number": "keyword| Volumes serial number. ex. 1975801541", + "volume.size": "long|Total volume size. ex. 2027835879424", + "script.type": "powershell", + "host.os.build": "22621", + "host.ip": "10.154.5.200", + "volume.percent_full": "keyword|Representating percent of the volume storage spaced is used.", + "host.hostname": "DESKTOP-AF7CIQM", + "host.hardware.manufacturer": "Dell Inc.", + "script.start": "2023-08-14T07:32:54Z", + "@timestamp": "2023-08-14T07:32:54Z", + "host.os.name": "Microsoft Windows 11 Pro", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.os.organization": "", + "host.hardware.owner": "justin.skidmore@tychon.io", + "volume.block_size": "int|Block size.", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.154.5.200", + "host.os.version": "2009", + "volume.drive.type": "int|Numeric code used to categorize and identify different types of drives in Windows.", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "volume.freespace": "long|Amount of free storage space remaining on drive. ex. 1444925468672", + "volume.drive.letter": "keyword|Drive letter.", + "volume.power_management_supported": "bool|Is power management supported on this volume.", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "volume.dirty_bit_set": "bool|File system repair or consistency check has been set.", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.mac": "60:E3:2B:4B:40:E2", + "volume.id": "keyword|Unique volume identifier. ex. /Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", + "volume.automount": "bool|Is volume auto-mounted", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "/Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", + "host.hardware.serial_number": "HYLCKG3", + "script.name": "Get-TychonVolumeInfo.ps1", + "script.version": "2.3.44.0", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "volume.dos_device_path": "keyword|DOS device name or file.", + "script.current_duration": "444.85", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", + "script.current_time": "2023-08-14T07:32:54Z", + "host.hardware.bios.version": "1.20.1", + "volume.name": "keyword|Name of the volume if applicable", + "volume.system_volume": "bool|Is a system parition", + "host.domain": "", + "volume.page_file_present": "bool|Has swap or supplemental memory storage.", + "host.os.family": "Windows" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..172cdcced9e --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,54 @@ +--- +description: Pipeline for EPP +processors: + - dot_expander: + field: "*" + - set: + field: _id + value: "{{id}}" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: host + - set: + field: volume.percent_full + value: "0" + if: ctx.volume.percent_full == 'NaN' + - gsub: + field: volume.percent_full + pattern: "%" + replacement: "" + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime + - convert: + field: script.current_duration + type: float +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/data_stream/tychon_volume/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml b/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/data_stream/tychon_volume/fields/ecs.yml b/packages/tychon/data_stream/tychon_volume/fields/ecs.yml new file mode 100644 index 00000000000..2f2e3e60d99 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- name: error.message + type: match_only_text +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- name: event.ingested + type: date +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags diff --git a/packages/tychon/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/data_stream/tychon_volume/fields/fields.yml new file mode 100644 index 00000000000..510274e1fba --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/fields/fields.yml @@ -0,0 +1,34 @@ +- name: volume.automount + type: boolean +- name: volume.block_size + type: long +- name: volume.dirty_bit_set + type: boolean +- name: volume.dos_device_path + type: text +- name: volume.drive.letter + type: keyword +- name: volume.drive.type + type: keyword +- name: volume.file_system + type: keyword +- name: volume.freespace + type: long +- name: volume.id + type: keyword +- name: volume.name + type: keyword +- name: volume.page_file_present + type: boolean +- name: volume.percent_full + type: float +- name: volume.power_management_supported + type: boolean +- name: volume.purpose + type: keyword +- name: volume.serial_number + type: keyword +- name: volume.size + type: long +- name: volume.system_volume + type: boolean diff --git a/packages/tychon/data_stream/tychon_volume/manifest.yml b/packages/tychon/data_stream/tychon_volume/manifest.yml new file mode 100644 index 00000000000..02b43e2f359 --- /dev/null +++ b/packages/tychon/data_stream/tychon_volume/manifest.yml @@ -0,0 +1,33 @@ +title: Windows volumes Info +type: logs +streams: + - input: logfile + title: Windows volumes Info + description: Windows volumes Info + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Windows volumes Info + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_volume_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-volume + - 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/tychon/docs/README.md b/packages/tychon/docs/README.md new file mode 100644 index 00000000000..1daf4c1e67c --- /dev/null +++ b/packages/tychon/docs/README.md @@ -0,0 +1,343 @@ +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. + + +## Returned Data Fields +### Vulnerablities + +TYCHON scans for endpoint vulenrabilites and returns the results. + +**Exported fields** +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | 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.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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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. | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | +| host.ip | Host ip addresses. | ip | +| host.ipv4 | Host ip v4 addresses. | keyword | +| host.ipv6 | Host ip v6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | Tychon Unique Vulnerability Id. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | +| vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | +| vulnerability.definition | National Vulnerability Database Vulnerability Definition. | keyword | +| vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | +| vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | +| vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | +| vulnerability.iava | Information Assurance Vulneraiblity Alert Identifier. | keyword | +| vulnerability.iava_severity | Information Assurance Vulnerability Alert Severity. | keyword | +| vulnerability.id | The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] | keyword | +| vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | +| vulnerability.result | Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. | keyword | +| vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | keyword | +| vulnerability.score.base | National Vulnerability Database Score of the Vulnerabilty. | float | +| vulnerability.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | +| 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 | +| vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | +| vulnerability.version | Version Number of the Scan. | keyword | +| vulnerability.year | Common Vulnerabilities and Exposures Year. | long | + + +### Endpoint Protection Platform + +TYCHON scans the endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | 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.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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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 | Event module. | 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.biossn | Host BIOS Serial Number. | 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.epp.product | Epp products installed | keyword | +| host.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | +| host.ip | Host ip addresses. | ip | +| host.ipv4 | Host ip v4 addresses. | keyword | +| host.ipv6 | Host ip v6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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.trellix.product | trellix products installed | 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | +| package.description | Description of the package. | keyword | +| package.name | Package name | keyword | +| package.reference | Home page or reference URL of the software in this package, if available. | keyword | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| script.current_duration | Current Scanner Script Duration. | long | +| script.current_time | Current Script datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| windows_defender.service.antimalware.engine_version | Windows Defender Antimalware Engine Version. | keyword | +| windows_defender.service.antimalware.product_version | Windows Defender Antimalware Product Version. | keyword | +| windows_defender.service.antimalware.signature_version | Windows Defender Antimalware Signature Version. | keyword | +| windows_defender.service.antimalware.status | Windows Defender Antimalware Status. | keyword | +| windows_defender.service.antispyware.signature_version | Windows Defender Antispyware Signature Version. | keyword | +| windows_defender.service.antispyware.status | Windows Defender Antispyware Status. | keyword | +| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Antivirus Full Scan Version. | keyword | +| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Antivirus Signature Version. | keyword | +| windows_defender.service.antivirus.status | Windows Defender Antivirus Status. | keyword | +| windows_defender.service.behavior_monitor.status | Windows Defender Behavior Monitor Status. | keyword | +| windows_defender.service.ioav_protection.status | Windows Defender iOffice Antivirus Protection Status. | keyword | +| windows_defender.service.nis.engine_version | Windows Defender Network Inspection System Engine Version. | keyword | +| windows_defender.service.nis.signature_version | Windows Defender Network Inspection System Signature Version. | keyword | +| windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | +| windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | + + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| benchmark.count | Benchmark Summary Name List Item Count. | long | +| benchmark.generated_utc | Benchmark UTC. | keyword | +| benchmark.guid | Benchmark GUID. | keyword | +| benchmark.hash | Benchmark SHA256 Hash | keyword | +| benchmark.list | Benchmark Summary Name List. | keyword | +| benchmark.name | Benchmark Name. | keyword | +| benchmark.title | Benchmark Title. | keyword | +| benchmark.version | Benchmark Version. | 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.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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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 | Event module. | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | +| host.ip | Host ip addresses. | ip | +| host.ipv4 | Host ip v4 addresses. | keyword | +| host.ipv6 | Host ip v6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | Tychon Unique Stig Id. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | +| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | +| oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | +| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | +| package.description | Description of the package. | keyword | +| package.name | Package name | keyword | +| package.reference | Home page or reference URL of the software in this package, if available. | keyword | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| rule.benchmark.guid | Benchmark Rule GUID. | keyword | +| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | +| rule.benchmark.title | Benchmark Rule Title. | keyword | +| rule.finding_id | Benchmark Rule Finding Identifier. | keyword | +| rule.id | Benchmark Rule Identifier. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| rule.oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | +| rule.oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | +| rule.oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | +| rule.result | Benchmark Rule Results. | keyword | +| rule.severity | Benchmark Severity Status. | keyword | +| rule.stig_id | Stig rule id | keyword | +| rule.title | Benchmark Rule Title. | keyword | +| rule.vulnerability_id | Rule vulnerability id. | keyword | +| rule.weight | Benchmark Rule Weight. | float | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | + diff --git a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json index fd6fb26edc9..e1bbd154491 100644 --- a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json @@ -1,130 +1,130 @@ { - "attributes": { - "description": "Analyze the status your current STIG scans run against your endpoints.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":4,\"i\":\"43863395-18af-4a6d-b628-90743756adce\"},\"panelIndex\":\"43863395-18af-4a6d-b628-90743756adce\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Total Systems\",\"panelRefName\":\"panel_43863395-18af-4a6d-b628-90743756adce\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":8,\"i\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},\"panelIndex\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":4,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":9,\"i\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},\"panelIndex\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":8,\"w\":4,\"h\":23,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":14,\"w\":17,\"h\":17,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":13,\"h\":14,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":19,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":19,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-7d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] STIG Report Dashboard", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T19:56:47.343Z", - "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "e6c0e460-c3da-11eb-8956-0b1a70e695fd", - "name": "43863395-18af-4a6d-b628-90743756adce:panel_43863395-18af-4a6d-b628-90743756adce", - "type": "visualization" - }, - { - "id": "d954bdb0-3298-11ec-b058-cf4fefc29658", - "name": "aa2bd77f-4729-41c8-aa01-ddd9dc160b33:panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "149977b6-c38d-4715-974d-641c1fc8e57b:indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "cec1fd74-b355-4dde-a4d0-a249bbe4f600:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "28e2a613-0d7f-4476-aed1-7175f2a18f28:indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "13f2d060-9d0e-4fba-9ab5-d2f3baeb0250:indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6", - "type": "index-pattern" - }, - { - "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", - "name": "d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c:panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "ca6d3287-d16e-4e2f-9216-6140f4f2b4c1:indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966", - "type": "index-pattern" - }, - { - "id": "1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", - "name": "634c2a2e-c6fa-414f-8479-1d797bbaa6be:panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be", - "type": "lens" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967", - "type": "index-pattern" - }, - { - "id": "e1c9c490-41a5-11ee-83e4-c92ed141b9e5", - "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:3c0dfe4d-c571-4127-ba6c-7362042cf2e2:dashboardId", - "type": "dashboard" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "5bf2f4f8-4744-4f94-b99d-69b88ff226d1:indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", - "type": "index-pattern" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "579051b0-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T19:56:47.343Z", - "version": "WzgxODk5OSwyMl0=" + "attributes": { + "description": "Analyze the status your current STIG scans run against your endpoints.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":4,\"i\":\"43863395-18af-4a6d-b628-90743756adce\"},\"panelIndex\":\"43863395-18af-4a6d-b628-90743756adce\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Total Systems\",\"panelRefName\":\"panel_43863395-18af-4a6d-b628-90743756adce\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":8,\"i\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},\"panelIndex\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":4,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":9,\"i\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},\"panelIndex\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":8,\"w\":4,\"h\":23,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":14,\"w\":17,\"h\":17,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":13,\"h\":14,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":19,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":19,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] STIG Report Dashboard", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T19:56:47.343Z", + "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd", + "name": "43863395-18af-4a6d-b628-90743756adce:panel_43863395-18af-4a6d-b628-90743756adce", + "type": "visualization" + }, + { + "id": "tychon-d954bdb0-3298-11ec-b058-cf4fefc29658", + "name": "aa2bd77f-4729-41c8-aa01-ddd9dc160b33:panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "149977b6-c38d-4715-974d-641c1fc8e57b:indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "cec1fd74-b355-4dde-a4d0-a249bbe4f600:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "28e2a613-0d7f-4476-aed1-7175f2a18f28:indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "13f2d060-9d0e-4fba-9ab5-d2f3baeb0250:indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6", + "type": "index-pattern" + }, + { + "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", + "name": "d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c:panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "ca6d3287-d16e-4e2f-9216-6140f4f2b4c1:indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966", + "type": "index-pattern" + }, + { + "id": "tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", + "name": "634c2a2e-c6fa-414f-8479-1d797bbaa6be:panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be", + "type": "lens" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967", + "type": "index-pattern" + }, + { + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:3c0dfe4d-c571-4127-ba6c-7362042cf2e2:dashboardId", + "type": "dashboard" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "5bf2f4f8-4744-4f94-b99d-69b88ff226d1:indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", + "type": "index-pattern" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T19:56:47.343Z", + "version": "WzgxODk5OSwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json index 4ac503da810..648f4ef5f5d 100644 --- a/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json +++ b/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json @@ -1,106 +1,106 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\",\"enhancements\":{},\"selectedOptions\":[]}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Services and Ports view displays all Services found on hosts, as well as listening ports and ARP Tables.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},\"panelIndex\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":16,\"h\":5,\"i\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\"},\"panelIndex\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Services and Ports\\nTYCHON reports what ports are open at the time of the check. It records what process and command was used to open the port and correlates that process if it was started as a service.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":32,\"h\":51,\"i\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\"},\"panelIndex\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"width\":259.0666666666667},{\"isTransposed\":false,\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"hidden\":true},{\"columnId\":\"66204765-468d-419c-9ea9-d073900e559f\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":110.39999999999998},{\"columnId\":\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"isTransposed\":false},{\"columnId\":\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":169.39999999999998},{\"columnId\":\"8d7e5159-9321-4909-b291-9d44a246e217\",\"isTransposed\":false,\"width\":413.5666666666666},{\"columnId\":\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"isTransposed\":false},{\"columnId\":\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"isTransposed\":false}],\"layerId\":\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\":{\"columns\":{\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\":{\"label\":\"Service Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.name\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"66204765-468d-419c-9ea9-d073900e559f\":{\"label\":\"Protocol\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\":{\"label\":\"Command Line Used\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8d7e5159-9321-4909-b291-9d44a246e217\":{\"label\":\"User\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\":{\"label\":\"Service Description\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.description\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"baacc6bf-fc31-430c-b112-2ba01c97aa21\":{\"label\":\"Last State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.state\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1738b58d-80b9-4562-98ef-316a0319e8d1\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"66204765-468d-419c-9ea9-d073900e559f\",\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"8d7e5159-9321-4909-b291-9d44a246e217\",\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Listening Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":8,\"h\":8,\"i\":\"d43241be-bffb-4076-9153-27424a7c9154\"},\"panelIndex\":\"d43241be-bffb-4076-9153-27424a7c9154\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Listening Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"source.port\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":8,\"w\":8,\"h\":8,\"i\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\"},\"panelIndex\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\"}],\"state\":{\"visualization\":{\"layerId\":\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\",\"accessor\":\"216dce16-7856-405d-8c0d-92246e7c3511\",\"layerType\":\"data\",\"size\":\"l\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\":{\"columns\":{\"216dce16-7856-405d-8c0d-92246e7c3511\":{\"label\":\"Total Unique Processes Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.hash.sha1\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"216dce16-7856-405d-8c0d-92246e7c3511\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":8,\"h\":8,\"i\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\"},\"panelIndex\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Users Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.user.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":16,\"w\":8,\"h\":8,\"i\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\"},\"panelIndex\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Services Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"service.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":16,\"h\":30,\"i\":\"4c945e75-db31-435b-b558-76d8cf5b391c\"},\"panelIndex\":\"4c945e75-db31-435b-b558-76d8cf5b391c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14\"}],\"state\":{\"visualization\":{\"layerId\":\"f5451e54-90d4-4c69-a6a9-c600ac385e14\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"6b3d57ed-b00b-44ac-a81e-d944444689bb\"},{\"columnId\":\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"isTransposed\":false},{\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f5451e54-90d4-4c69-a6a9-c600ac385e14\":{\"columns\":{\"6b3d57ed-b00b-44ac-a81e-d944444689bb\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"304d888e-452b-4c1c-8433-f9bf5ccc9483\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"6b3d57ed-b00b-44ac-a81e-d944444689bb\",\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Arp History\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-24h/h", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Services and Ports", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:49:39.888Z", - "id": "tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "7ce4caed-f1dc-4d52-934f-bf01a1c79c50:panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50", - "type": "visualization" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "90112a9f-2161-4263-bc42-8af46aeb05e4:indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "d43241be-bffb-4076-9153-27424a7c9154:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "39d605bd-cd52-4e81-90fc-15dde8a50450:indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "fd1293f8-ebe9-460f-81ab-a4ada0b42050:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "9c36f7cb-cd04-43e3-80c7-8ec29e797343:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", - "type": "index-pattern" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "4c945e75-db31-435b-b558-76d8cf5b391c:indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_b1548c53-ca3d-47b3-bc05-664ddc1e045a:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "c957d710-3d4c-11ee-9610-15dee918f31a", - "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "026431f0-3de5-11ee-9610-15dee918f31a", - "name": "tag-ref-026431f0-3de5-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", - "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:49:39.888Z", - "version": "WzgyMTMzMiwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"b1548c53-ca3d-47b3-bc05-664ddc1e045a\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Services and Ports view displays all Services found on hosts, as well as listening ports and ARP Tables.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},\"panelIndex\":\"7ce4caed-f1dc-4d52-934f-bf01a1c79c50\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":16,\"h\":5,\"i\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\"},\"panelIndex\":\"79df6d59-56ab-4ee3-addd-87cd507061e9\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Services and Ports\\nTYCHON reports what ports are open at the time of the check. It records what process and command was used to open the port and correlates that process if it was started as a service.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":32,\"h\":51,\"i\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\"},\"panelIndex\":\"90112a9f-2161-4263-bc42-8af46aeb05e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"width\":259.0666666666667},{\"isTransposed\":false,\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"hidden\":true},{\"columnId\":\"66204765-468d-419c-9ea9-d073900e559f\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":110.39999999999998},{\"columnId\":\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"isTransposed\":false},{\"columnId\":\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":169.39999999999998},{\"columnId\":\"8d7e5159-9321-4909-b291-9d44a246e217\",\"isTransposed\":false,\"width\":413.5666666666666},{\"columnId\":\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"isTransposed\":false},{\"columnId\":\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"isTransposed\":false}],\"layerId\":\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6\":{\"columns\":{\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\":{\"label\":\"Service Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.name\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"66204765-468d-419c-9ea9-d073900e559f\":{\"label\":\"Protocol\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\":{\"label\":\"Command Line Used\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8d7e5159-9321-4909-b291-9d44a246e217\":{\"label\":\"User\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\":{\"label\":\"Service Description\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.description\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"baacc6bf-fc31-430c-b112-2ba01c97aa21\":{\"label\":\"Last State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"service.state\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1738b58d-80b9-4562-98ef-316a0319e8d1\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"1738b58d-80b9-4562-98ef-316a0319e8d1\",\"f0f0e83f-7af8-46e0-8e52-bfb7c6a96968\",\"70ec6dba-dbad-4f8c-81a9-b7f5c094e641\",\"bfbad6ce-a8e2-4f07-96e3-f2e0ee3de92d\",\"66204765-468d-419c-9ea9-d073900e559f\",\"6ec1bb1d-7e6e-4b12-ab95-bcec881d02fc\",\"8d7e5159-9321-4909-b291-9d44a246e217\",\"baacc6bf-fc31-430c-b112-2ba01c97aa21\",\"8816caf5-40ad-44a7-8196-f8d2c3ca0edf\",\"7bcc4134-d33c-44a4-aa9f-cc143f006e31\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Listening Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":8,\"h\":8,\"i\":\"d43241be-bffb-4076-9153-27424a7c9154\"},\"panelIndex\":\"d43241be-bffb-4076-9153-27424a7c9154\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Listening Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"source.port\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":8,\"w\":8,\"h\":8,\"i\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\"},\"panelIndex\":\"39d605bd-cd52-4e81-90fc-15dde8a50450\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\"}],\"state\":{\"visualization\":{\"layerId\":\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\",\"accessor\":\"216dce16-7856-405d-8c0d-92246e7c3511\",\"layerType\":\"data\",\"size\":\"l\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1\":{\"columns\":{\"216dce16-7856-405d-8c0d-92246e7c3511\":{\"label\":\"Total Unique Processes Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.hash.sha1\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"216dce16-7856-405d-8c0d-92246e7c3511\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":8,\"h\":8,\"i\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\"},\"panelIndex\":\"fd1293f8-ebe9-460f-81ab-a4ada0b42050\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Users Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.user.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":16,\"w\":8,\"h\":8,\"i\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\"},\"panelIndex\":\"9c36f7cb-cd04-43e3-80c7-8ec29e797343\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77\"}],\"state\":{\"visualization\":{\"layerId\":\"dd4e1981-717a-4e31-a959-c13317ad6f77\",\"accessor\":\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd4e1981-717a-4e31-a959-c13317ad6f77\":{\"columns\":{\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\":{\"label\":\"Total Unique Services Hosting Ports\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"service.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"ff8cf41e-40d1-4bf9-a828-aa521b19ea54\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":16,\"h\":30,\"i\":\"4c945e75-db31-435b-b558-76d8cf5b391c\"},\"panelIndex\":\"4c945e75-db31-435b-b558-76d8cf5b391c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14\"}],\"state\":{\"visualization\":{\"layerId\":\"f5451e54-90d4-4c69-a6a9-c600ac385e14\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"6b3d57ed-b00b-44ac-a81e-d944444689bb\"},{\"columnId\":\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"isTransposed\":false},{\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f5451e54-90d4-4c69-a6a9-c600ac385e14\":{\"columns\":{\"6b3d57ed-b00b-44ac-a81e-d944444689bb\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"304d888e-452b-4c1c-8433-f9bf5ccc9483\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"6b3d57ed-b00b-44ac-a81e-d944444689bb\",\"5a004af6-8051-49f8-9cd3-76e2fef40ee1\",\"304d888e-452b-4c1c-8433-f9bf5ccc9483\",\"92d6eed0-f933-4ac5-bdf6-6c7baf36f8fa\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Arp History\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Services and Ports", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:49:39.888Z", + "id": "tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "7ce4caed-f1dc-4d52-934f-bf01a1c79c50:panel_7ce4caed-f1dc-4d52-934f-bf01a1c79c50", + "type": "visualization" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "90112a9f-2161-4263-bc42-8af46aeb05e4:indexpattern-datasource-layer-9a26db3f-b1d3-4fb3-8b88-91eec3c3bac6", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "d43241be-bffb-4076-9153-27424a7c9154:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "39d605bd-cd52-4e81-90fc-15dde8a50450:indexpattern-datasource-layer-4bcc97dc-80c1-4c57-9a0c-aacd0a6a6be1", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "fd1293f8-ebe9-460f-81ab-a4ada0b42050:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "9c36f7cb-cd04-43e3-80c7-8ec29e797343:indexpattern-datasource-layer-dd4e1981-717a-4e31-a959-c13317ad6f77", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4c945e75-db31-435b-b558-76d8cf5b391c:indexpattern-datasource-layer-f5451e54-90d4-4c69-a6a9-c600ac385e14", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_b1548c53-ca3d-47b3-bc05-664ddc1e045a:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "026431f0-3de5-11ee-9610-15dee918f31a", + "name": "tag-ref-026431f0-3de5-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", + "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:49:39.888Z", + "version": "WzgyMTMzMiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json index 525794029f6..fbf2fcc9447 100644 --- a/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json +++ b/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json @@ -1,91 +1,91 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a888c608-f4d6-4b9e-89e5-b23938eae614\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"title\":\"Hostname\",\"fieldName\":\"host.hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"a888c608-f4d6-4b9e-89e5-b23938eae614\",\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Network Cards view displays information about every physical and virtual network interface attached to the endpoint. TYCHON also captures wireless identification information, drivers, dhcp/wins server information, and more.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},\"panelIndex\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":11,\"i\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\"},\"panelIndex\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\nTYCHON collects all the Network Adapters, virtual and physical, attached to a device. The endpoint will report on the driver it uses, as well as IP-based information for both IP versions 4 and 6. TYCHON will also report connected wireless information if a WIFI adapter is attached to the host.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":11,\"i\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\"},\"panelIndex\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8\"}],\"state\":{\"visualization\":{\"layerId\":\"af5e1785-c716-4020-a4af-3349819785f8\",\"accessor\":\"2d4e6a8a-eba5-49c6-a626-be25534c183d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"xl\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"af5e1785-c716-4020-a4af-3349819785f8\":{\"columns\":{\"2d4e6a8a-eba5-49c6-a626-be25534c183d\":{\"label\":\"Total Network Adapters\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.adapter.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2d4e6a8a-eba5-49c6-a626-be25534c183d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":11,\"i\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\"},\"panelIndex\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"709554a2-6b92-446a-8924-35460cb0962b\"},{\"columnId\":\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"isTransposed\":false},{\"columnId\":\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"isTransposed\":false},{\"columnId\":\"d440007c-1904-4e96-b222-df218f750a23\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\",\"isTransposed\":false}],\"layerId\":\"ff6a221f-469c-4ef6-a8e1-3f697430331c\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ff6a221f-469c-4ef6-a8e1-3f697430331c\":{\"columns\":{\"709554a2-6b92-446a-8924-35460cb0962b\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\":{\"label\":\"Driver File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"886a311d-40aa-44de-9feb-6a9a2d9cc915\":{\"label\":\"Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d440007c-1904-4e96-b222-df218f750a23\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\":{\"label\":\"Driver Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.driver.date\",\"filter\":{\"query\":\"host.adapter.driver.date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"709554a2-6b92-446a-8924-35460cb0962b\",\"d440007c-1904-4e96-b222-df218f750a23\",\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Driver Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":48,\"h\":10,\"i\":\"15c69399-dcbc-4881-bc99-4818e466265c\"},\"panelIndex\":\"15c69399-dcbc-4881-bc99-4818e466265c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"width\":216.75454545454545},{\"isTransposed\":false,\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\",\"hidden\":true},{\"columnId\":\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"isTransposed\":false,\"width\":173.97118181818183},{\"columnId\":\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"isTransposed\":false,\"alignment\":\"center\",\"collapseFn\":\"\"},{\"columnId\":\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":116.52673737373738},{\"columnId\":\"602140d9-4086-44be-abc5-897301f23eff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"isTransposed\":false,\"width\":133.65173737373738},{\"columnId\":\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":109.50888023088024},{\"columnId\":\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"isTransposed\":false,\"width\":94.45454545454547,\"alignment\":\"center\"},{\"columnId\":\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":121.0790909090909},{\"columnId\":\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"isTransposed\":false}],\"layerId\":\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\":{\"columns\":{\"b1e9f075-199d-446c-8433-c2730dfc96bd\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"08b29813-ec38-4395-8a88-7c889625a8e2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"879a60e7-10d5-42f8-b2c1-01ea749635cb\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\":{\"label\":\"Link Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.link_speed\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"602140d9-4086-44be-abc5-897301f23eff\":{\"label\":\"Media Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.media.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\":{\"label\":\"MTU\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.adapter.mtu\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"169ce68c-3a37-46f0-b5ec-009e53190781\":{\"label\":\"WINS Server\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wins_server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be1f5181-4560-439a-abb0-bb6c83c22136\":{\"label\":\"VLAN ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.vlan.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\":{\"label\":\"Subnet\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.subnet_bit\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c971cbdc-b632-4b4c-b31d-007efef17ea7\":{\"label\":\"Virtual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"602140d9-4086-44be-abc5-897301f23eff\",\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"08b29813-ec38-4395-8a88-7c889625a8e2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Network Card Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":14,\"h\":7,\"i\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\"},\"panelIndex\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"isTransposed\":false},{\"columnId\":\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"isTransposed\":false}],\"layerId\":\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\",\"layerType\":\"data\"},\"query\":{\"query\":\"host.adapter.dhcp.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\":{\"columns\":{\"169f84ee-3fc5-42ee-85b5-0809636c9075\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"33a05cbb-825f-4b2b-8354-2ae40a593309\":{\"label\":\"Top 3 values of host.adapter.ip\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":14,\"y\":24,\"w\":34,\"h\":7,\"i\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\"},\"panelIndex\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49\"}],\"state\":{\"visualization\":{\"layerId\":\"c5561883-030e-440b-9c1d-213e698c5b49\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"e0e7b347-b072-41ed-8937-3a83de5f2555\"},{\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"isTransposed\":false},{\"columnId\":\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"isTransposed\":false},{\"columnId\":\"789086fb-0e1c-4541-a898-f788cb907cff\",\"isTransposed\":false},{\"columnId\":\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"isTransposed\":false},{\"columnId\":\"33e14b38-1516-484a-b91f-15a98b79e330\",\"isTransposed\":false},{\"columnId\":\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"isTransposed\":false},{\"columnId\":\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"host.adapter.wifi.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c5561883-030e-440b-9c1d-213e698c5b49\":{\"columns\":{\"e0e7b347-b072-41ed-8937-3a83de5f2555\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4a2c3854-b909-47e1-a1fa-306163e857a6\":{\"label\":\"Last value of host.adapter.wifi.signal_percent\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.wifi.signal_percent\",\"filter\":{\"query\":\"host.adapter.wifi.signal_percent: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}}},\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"789086fb-0e1c-4541-a898-f788cb907cff\":{\"label\":\"BSSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.bssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\":{\"label\":\"Band\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.band\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33e14b38-1516-484a-b91f-15a98b79e330\":{\"label\":\"Radio Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.radio_type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\":{\"label\":\"Channel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.channel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"09fe6e46-ea11-4357-bb69-81633e6607e9\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"e0e7b347-b072-41ed-8937-3a83de5f2555\",\"789086fb-0e1c-4541-a898-f788cb907cff\",\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"33e14b38-1516-484a-b91f-15a98b79e330\",\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"4a2c3854-b909-47e1-a1fa-306163e857a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"WIFI Connections\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Network Cards", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:42:39.548Z", - "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "89be3f45-0b62-42ac-83fa-2f2f7f9857cb:panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb", - "type": "visualization" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "084075d4-a371-4a99-9bf0-627c41cf8b53:indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe:indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "15c69399-dcbc-4881-bc99-4818e466265c:indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "a028776c-7f2e-46e7-b7a0-4b7541293e41:indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "b67d31de-03fe-4151-94b5-33ee802a20ae:indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_a888c608-f4d6-4b9e-89e5-b23938eae614:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", - "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:42:39.548Z", - "version": "WzgyMDM1NCwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a888c608-f4d6-4b9e-89e5-b23938eae614\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"title\":\"Hostname\",\"fieldName\":\"host.hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"a888c608-f4d6-4b9e-89e5-b23938eae614\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Network Cards view displays information about every physical and virtual network interface attached to the endpoint. TYCHON also captures wireless identification information, drivers, dhcp/wins server information, and more.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},\"panelIndex\":\"89be3f45-0b62-42ac-83fa-2f2f7f9857cb\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":11,\"i\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\"},\"panelIndex\":\"40b4e937-487e-44aa-86f1-dbc38e0c2278\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\nTYCHON collects all the Network Adapters, virtual and physical, attached to a device. The endpoint will report on the driver it uses, as well as IP-based information for both IP versions 4 and 6. TYCHON will also report connected wireless information if a WIFI adapter is attached to the host.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":11,\"i\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\"},\"panelIndex\":\"084075d4-a371-4a99-9bf0-627c41cf8b53\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8\"}],\"state\":{\"visualization\":{\"layerId\":\"af5e1785-c716-4020-a4af-3349819785f8\",\"accessor\":\"2d4e6a8a-eba5-49c6-a626-be25534c183d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"xl\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"af5e1785-c716-4020-a4af-3349819785f8\":{\"columns\":{\"2d4e6a8a-eba5-49c6-a626-be25534c183d\":{\"label\":\"Total Network Adapters\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.adapter.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2d4e6a8a-eba5-49c6-a626-be25534c183d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":11,\"i\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\"},\"panelIndex\":\"f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"709554a2-6b92-446a-8924-35460cb0962b\"},{\"columnId\":\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"isTransposed\":false},{\"columnId\":\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"isTransposed\":false},{\"columnId\":\"d440007c-1904-4e96-b222-df218f750a23\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\",\"isTransposed\":false}],\"layerId\":\"ff6a221f-469c-4ef6-a8e1-3f697430331c\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ff6a221f-469c-4ef6-a8e1-3f697430331c\":{\"columns\":{\"709554a2-6b92-446a-8924-35460cb0962b\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\":{\"label\":\"Driver File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"886a311d-40aa-44de-9feb-6a9a2d9cc915\":{\"label\":\"Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d440007c-1904-4e96-b222-df218f750a23\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\":{\"label\":\"Driver Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.driver.date\",\"filter\":{\"query\":\"host.adapter.driver.date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"709554a2-6b92-446a-8924-35460cb0962b\",\"d440007c-1904-4e96-b222-df218f750a23\",\"9c48cd5b-dbef-4c40-a417-27bfdf6b4721\",\"886a311d-40aa-44de-9feb-6a9a2d9cc915\",\"e7108e0d-22b2-4f89-9f2b-290ecb6ccca9\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Driver Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":48,\"h\":10,\"i\":\"15c69399-dcbc-4881-bc99-4818e466265c\"},\"panelIndex\":\"15c69399-dcbc-4881-bc99-4818e466265c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"width\":216.75454545454545},{\"isTransposed\":false,\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\",\"hidden\":true},{\"columnId\":\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"isTransposed\":false,\"width\":173.97118181818183},{\"columnId\":\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"isTransposed\":false,\"alignment\":\"center\",\"collapseFn\":\"\"},{\"columnId\":\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":116.52673737373738},{\"columnId\":\"602140d9-4086-44be-abc5-897301f23eff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"isTransposed\":false,\"width\":133.65173737373738},{\"columnId\":\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":109.50888023088024},{\"columnId\":\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"isTransposed\":false,\"width\":94.45454545454547,\"alignment\":\"center\"},{\"columnId\":\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":121.0790909090909},{\"columnId\":\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"isTransposed\":false}],\"layerId\":\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7\":{\"columns\":{\"b1e9f075-199d-446c-8433-c2730dfc96bd\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"08b29813-ec38-4395-8a88-7c889625a8e2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"879a60e7-10d5-42f8-b2c1-01ea749635cb\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\":{\"label\":\"Link Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.link_speed\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"602140d9-4086-44be-abc5-897301f23eff\":{\"label\":\"Media Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.media.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\":{\"label\":\"MTU\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.adapter.mtu\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"169ce68c-3a37-46f0-b5ec-009e53190781\":{\"label\":\"WINS Server\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wins_server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be1f5181-4560-439a-abb0-bb6c83c22136\":{\"label\":\"VLAN ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.vlan.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\":{\"label\":\"Subnet\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.subnet_bit\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c971cbdc-b632-4b4c-b31d-007efef17ea7\":{\"label\":\"Virtual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"08b29813-ec38-4395-8a88-7c889625a8e2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"b1e9f075-199d-446c-8433-c2730dfc96bd\",\"fc864c56-0a4b-493a-ad61-6ccf28b29ef1\",\"879a60e7-10d5-42f8-b2c1-01ea749635cb\",\"69b26d50-3416-47ef-aa4e-9d2c689b0b63\",\"8ab455b8-c910-4c6a-bcef-affc5bb67e8d\",\"602140d9-4086-44be-abc5-897301f23eff\",\"f1e5a62a-3593-4d6a-93dc-b907a0c92d91\",\"e1189c3c-f074-4ea5-bdc1-dbf36939e37a\",\"169ce68c-3a37-46f0-b5ec-009e53190781\",\"be1f5181-4560-439a-abb0-bb6c83c22136\",\"c971cbdc-b632-4b4c-b31d-007efef17ea7\",\"0c76bafc-3ee0-4f81-84df-4c2d4360b3bd\",\"08b29813-ec38-4395-8a88-7c889625a8e2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Network Card Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":14,\"h\":7,\"i\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\"},\"panelIndex\":\"a028776c-7f2e-46e7-b7a0-4b7541293e41\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"isTransposed\":false},{\"columnId\":\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"isTransposed\":false}],\"layerId\":\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\",\"layerType\":\"data\"},\"query\":{\"query\":\"host.adapter.dhcp.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6a5f4190-04a3-4ad6-9a21-ca8517a3de08\":{\"columns\":{\"169f84ee-3fc5-42ee-85b5-0809636c9075\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"33a05cbb-825f-4b2b-8354-2ae40a593309\":{\"label\":\"Top 3 values of host.adapter.ip\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"169f84ee-3fc5-42ee-85b5-0809636c9075\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"33a05cbb-825f-4b2b-8354-2ae40a593309\",\"9d5546e2-9c37-469d-aefc-11c45ba73d0c\",\"169f84ee-3fc5-42ee-85b5-0809636c9075\",\"1648b1b2-3c66-46bf-8d7b-0812b1a8f85d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":14,\"y\":24,\"w\":34,\"h\":7,\"i\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\"},\"panelIndex\":\"b67d31de-03fe-4151-94b5-33ee802a20ae\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49\"}],\"state\":{\"visualization\":{\"layerId\":\"c5561883-030e-440b-9c1d-213e698c5b49\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"e0e7b347-b072-41ed-8937-3a83de5f2555\"},{\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"isTransposed\":false},{\"columnId\":\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"isTransposed\":false},{\"columnId\":\"789086fb-0e1c-4541-a898-f788cb907cff\",\"isTransposed\":false},{\"columnId\":\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"isTransposed\":false},{\"columnId\":\"33e14b38-1516-484a-b91f-15a98b79e330\",\"isTransposed\":false},{\"columnId\":\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"isTransposed\":false},{\"columnId\":\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"host.adapter.wifi.enabled : true\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c5561883-030e-440b-9c1d-213e698c5b49\":{\"columns\":{\"e0e7b347-b072-41ed-8937-3a83de5f2555\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4a2c3854-b909-47e1-a1fa-306163e857a6\":{\"label\":\"Last value of host.adapter.wifi.signal_percent\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.wifi.signal_percent\",\"filter\":{\"query\":\"host.adapter.wifi.signal_percent: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}}},\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"789086fb-0e1c-4541-a898-f788cb907cff\":{\"label\":\"BSSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.bssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\":{\"label\":\"Band\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.band\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33e14b38-1516-484a-b91f-15a98b79e330\":{\"label\":\"Radio Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.radio_type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\":{\"label\":\"Channel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.channel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"09fe6e46-ea11-4357-bb69-81633e6607e9\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a2c3854-b909-47e1-a1fa-306163e857a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"09fe6e46-ea11-4357-bb69-81633e6607e9\",\"e0e7b347-b072-41ed-8937-3a83de5f2555\",\"789086fb-0e1c-4541-a898-f788cb907cff\",\"c6d2c172-9bb9-4444-8137-61ddba2c1c32\",\"11b024cd-e49d-4b7d-83f4-e3f166cfc941\",\"730a85a0-b35e-4f94-bdc5-a5227d02d2cd\",\"33e14b38-1516-484a-b91f-15a98b79e330\",\"5c8e3b75-49d8-4fa9-9700-a41806cb4364\",\"4a2c3854-b909-47e1-a1fa-306163e857a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"WIFI Connections\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Network Cards", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:42:39.548Z", + "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "89be3f45-0b62-42ac-83fa-2f2f7f9857cb:panel_89be3f45-0b62-42ac-83fa-2f2f7f9857cb", + "type": "visualization" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "084075d4-a371-4a99-9bf0-627c41cf8b53:indexpattern-datasource-layer-af5e1785-c716-4020-a4af-3349819785f8", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "f9cc6faa-ea73-4da4-97ab-08f81e9cb3fe:indexpattern-datasource-layer-ff6a221f-469c-4ef6-a8e1-3f697430331c", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "15c69399-dcbc-4881-bc99-4818e466265c:indexpattern-datasource-layer-6a5dd59a-90ba-4d4e-ab97-e829b8d2deb7", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "a028776c-7f2e-46e7-b7a0-4b7541293e41:indexpattern-datasource-layer-6a5f4190-04a3-4ad6-9a21-ca8517a3de08", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "b67d31de-03fe-4151-94b5-33ee802a20ae:indexpattern-datasource-layer-c5561883-030e-440b-9c1d-213e698c5b49", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_a888c608-f4d6-4b9e-89e5-b23938eae614:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:42:39.548Z", + "version": "WzgyMDM1NCwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json index 4c15f3328d3..24f0ac77c4b 100644 --- a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json @@ -1,250 +1,250 @@ { - "attributes": { - "description": "TYCHON captures the status of Trellix, Elastic Defender, and Windows Defender features and versions on endpoints and reports the information in this dashboard.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":14,\"i\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\"},\"panelIndex\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protection Status\\nTYCHON tracks specific Endpoint Protection vendors for enabled features, installed software, and definition versions. Currently, TYCHON supports Trellix, Elastic Defender, and Windows Defender.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":0,\"w\":4,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":4,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":4,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":0,\"w\":4,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":4,\"h\":7,\"i\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\"},\"panelIndex\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Trellix Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\" or not trellix.service.accm.version :\\\"\\\" or not trellix.service.dlp.version :\\\"\\\" or not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":4,\"h\":7,\"i\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\"},\"panelIndex\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ENS Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.status : \\\"Running\\\" and not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":0,\"w\":4,\"h\":7,\"i\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\"},\"panelIndex\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with PA Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.pa.status : \\\"Running\\\" and not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":4,\"h\":7,\"i\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\"},\"panelIndex\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Elastic Defender Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.malware : \\\"\\\" and not elastic.service.endpoint.memory_protection : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":0,\"w\":4,\"h\":7,\"i\":\"94022264-e2ce-4661-b384-b2b5454b02c8\"},\"panelIndex\":\"94022264-e2ce-4661-b384-b2b5454b02c8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Malware Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.malware: \\\"\\\" and not elastic.service.endpoint.malware : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":7,\"w\":4,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":7,\"w\":4,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":7,\"w\":4,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":7,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":7,\"w\":4,\"h\":7,\"i\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\"},\"panelIndex\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ACCM Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.accm.status : \\\"Running\\\" and not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":7,\"w\":4,\"h\":7,\"i\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\"},\"panelIndex\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with DLP Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.dlp.status : \\\"Running\\\" and not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":7,\"w\":4,\"h\":7,\"i\":\"16205847-2ebc-46db-bc4b-606228f52996\"},\"panelIndex\":\"16205847-2ebc-46db-bc4b-606228f52996\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RSD Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.rsd.status : \\\"Running\\\" and not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":7,\"w\":4,\"h\":7,\"i\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\"},\"panelIndex\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Behavior Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.behavior_protection : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\"},\"panelIndex\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Memory Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.memory_protection: \\\"\\\" and not elastic.service.endpoint..memory_protection: \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":24,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e00a8c06-9b49-4cb8-9cd5-598dbcb26113\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Protection\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":8,\"i\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\"},\"panelIndex\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"isTransposed\":false},{\"columnId\":\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"7e2c653a-cc31-404e-847d-913fb28c20b8\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aa495d01-49df-4dfa-9117-2efb3d4407b5\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9dd45bd7-37df-4418-bcf0-00b80fe159a5\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Elastic Endpoint Status \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":22,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5aa080e4-d756-4967-92d3-f92a920b315f\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":22,\"w\":24,\"h\":8,\"i\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\"},\"panelIndex\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\":{\"label\":\"ENS Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"39600cce-a379-46d1-9b6a-42c97b06c32d\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Endpoint Security Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"8d9908e0-205b-43ec-8fd4-343ce4057237\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":8,\"i\":\"d0f95b46-cb78-4246-b605-cf764851569e\"},\"panelIndex\":\"d0f95b46-cb78-4246-b605-cf764851569e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9b0c3115-07d2-4a63-be6e-424b453fd041\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"ACCM Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":38,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"hidden\":false,\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"641eddc6-5d50-4512-9409-a6d9f49e7e8a\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":30,\"w\":24,\"h\":8,\"i\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\"},\"panelIndex\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"04264bb0-25f8-4128-b7dc-821f46b7dd54\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Rogue System Detection \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"24732923-c957-4110-8558-e38a86ad50bf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":38,\"w\":24,\"h\":8,\"i\":\"426f8706-b652-422d-a763-19eb6a28916f\"},\"panelIndex\":\"426f8706-b652-422d-a763-19eb6a28916f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Policy Auditor Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Policy Auditor Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"547ea5a0-a1ae-4a90-8cd0-7ad0e177b613\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Policy Auditor Status\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": " [TYCHON] Endpoint Protection Status", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T21:17:53.197Z", - "id": "tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "f9a975c1-d99b-436b-9173-c616f0059426:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "dca19098-8eb9-440e-abf0-19ef55cee62c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "4383ee4c-ec16-48c2-bb13-8f896a9519d4:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "d3b08c18-3a64-4ea0-95f1-39ac4198013d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "ac716d8e-e533-4072-aa74-65848d4e0925:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "e5b0bf6c-69e6-4892-b691-9bc21f0c6b25:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "bc5b8947-a82b-44d5-bea7-addfad736ad2:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "370c3dc5-5a15-4347-b9a7-7d75ac86cb10:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "116cc01e-5861-4993-baaf-3f0cc2a312cf:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "94022264-e2ce-4661-b384-b2b5454b02c8:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "0336a4e3-a647-415d-84b5-fef984ac4a3f:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "5fa1a00d-8e9c-441f-be66-9b5c01663fd7:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "4d4e6682-9758-4359-a6f0-1ba6ca5e40f5:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "6a29e48e-892b-4c8a-a3de-8884fd1d9820:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "33d492ba-c62f-405e-84a2-c0254e8e743c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "685110fd-a3a4-441b-b9b6-42316b8e33ee:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "f985f8a3-3272-43d8-90e6-76e56aac5f91:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "16205847-2ebc-46db-bc4b-606228f52996:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "fb20b198-fe52-4bb3-b6dd-d4d74855ca73:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "5b9ce41f-1950-4c60-8322-a6aa80be383d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e00a8c06-9b49-4cb8-9cd5-598dbcb26113:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9dd45bd7-37df-4418-bcf0-00b80fe159a5:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5aa080e4-d756-4967-92d3-f92a920b315f:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:39600cce-a379-46d1-9b6a-42c97b06c32d:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:8d9908e0-205b-43ec-8fd4-343ce4057237:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "d0f95b46-cb78-4246-b605-cf764851569e:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "d0f95b46-cb78-4246-b605-cf764851569e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9b0c3115-07d2-4a63-be6e-424b453fd041:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:641eddc6-5d50-4512-9409-a6d9f49e7e8a:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:04264bb0-25f8-4128-b7dc-821f46b7dd54:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "dad722ab-af91-4d03-a313-faab0d9533c5:indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "dad722ab-af91-4d03-a313-faab0d9533c5:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:24732923-c957-4110-8558-e38a86ad50bf:dashboardId", - "type": "dashboard" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "426f8706-b652-422d-a763-19eb6a28916f:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "426f8706-b652-422d-a763-19eb6a28916f:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:547ea5a0-a1ae-4a90-8cd0-7ad0e177b613:dashboardId", - "type": "dashboard" - }, - { - "id": "bae88930-1133-11ee-af86-538da1394f27", - "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T21:17:53.197Z", - "version": "WzgyMjcwNiwyMl0=" + "attributes": { + "description": "TYCHON captures the status of Trellix, Elastic Defender, and Windows Defender features and versions on endpoints and reports the information in this dashboard.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":14,\"i\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\"},\"panelIndex\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protection Status\\nTYCHON tracks specific Endpoint Protection vendors for enabled features, installed software, and definition versions. Currently, TYCHON supports Trellix, Elastic Defender, and Windows Defender.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":0,\"w\":4,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":4,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":4,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":0,\"w\":4,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":4,\"h\":7,\"i\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\"},\"panelIndex\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Trellix Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\" or not trellix.service.accm.version :\\\"\\\" or not trellix.service.dlp.version :\\\"\\\" or not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":4,\"h\":7,\"i\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\"},\"panelIndex\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ENS Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.status : \\\"Running\\\" and not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":0,\"w\":4,\"h\":7,\"i\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\"},\"panelIndex\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with PA Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.pa.status : \\\"Running\\\" and not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":4,\"h\":7,\"i\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\"},\"panelIndex\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Elastic Defender Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.malware : \\\"\\\" and not elastic.service.endpoint.memory_protection : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":0,\"w\":4,\"h\":7,\"i\":\"94022264-e2ce-4661-b384-b2b5454b02c8\"},\"panelIndex\":\"94022264-e2ce-4661-b384-b2b5454b02c8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Malware Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.malware: \\\"\\\" and not elastic.service.endpoint.malware : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":7,\"w\":4,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":7,\"w\":4,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":7,\"w\":4,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":7,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":7,\"w\":4,\"h\":7,\"i\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\"},\"panelIndex\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ACCM Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.accm.status : \\\"Running\\\" and not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":7,\"w\":4,\"h\":7,\"i\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\"},\"panelIndex\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with DLP Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.dlp.status : \\\"Running\\\" and not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":7,\"w\":4,\"h\":7,\"i\":\"16205847-2ebc-46db-bc4b-606228f52996\"},\"panelIndex\":\"16205847-2ebc-46db-bc4b-606228f52996\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RSD Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.rsd.status : \\\"Running\\\" and not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":7,\"w\":4,\"h\":7,\"i\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\"},\"panelIndex\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Behavior Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.behavior_protection : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\"},\"panelIndex\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Memory Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.memory_protection: \\\"\\\" and not elastic.service.endpoint..memory_protection: \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":24,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e00a8c06-9b49-4cb8-9cd5-598dbcb26113\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Protection\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":8,\"i\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\"},\"panelIndex\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"isTransposed\":false},{\"columnId\":\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"7e2c653a-cc31-404e-847d-913fb28c20b8\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aa495d01-49df-4dfa-9117-2efb3d4407b5\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9dd45bd7-37df-4418-bcf0-00b80fe159a5\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Elastic Endpoint Status \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":22,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5aa080e4-d756-4967-92d3-f92a920b315f\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":22,\"w\":24,\"h\":8,\"i\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\"},\"panelIndex\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\":{\"label\":\"ENS Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"39600cce-a379-46d1-9b6a-42c97b06c32d\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Endpoint Security Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"8d9908e0-205b-43ec-8fd4-343ce4057237\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":8,\"i\":\"d0f95b46-cb78-4246-b605-cf764851569e\"},\"panelIndex\":\"d0f95b46-cb78-4246-b605-cf764851569e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9b0c3115-07d2-4a63-be6e-424b453fd041\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"ACCM Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":38,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"hidden\":false,\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"641eddc6-5d50-4512-9409-a6d9f49e7e8a\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":30,\"w\":24,\"h\":8,\"i\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\"},\"panelIndex\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"04264bb0-25f8-4128-b7dc-821f46b7dd54\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Rogue System Detection \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"24732923-c957-4110-8558-e38a86ad50bf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":38,\"w\":24,\"h\":8,\"i\":\"426f8706-b652-422d-a763-19eb6a28916f\"},\"panelIndex\":\"426f8706-b652-422d-a763-19eb6a28916f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Policy Auditor Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Policy Auditor Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"547ea5a0-a1ae-4a90-8cd0-7ad0e177b613\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Policy Auditor Status\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": " [TYCHON] Endpoint Protection Status", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T21:17:53.197Z", + "id": "tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "f9a975c1-d99b-436b-9173-c616f0059426:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "dca19098-8eb9-440e-abf0-19ef55cee62c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "4383ee4c-ec16-48c2-bb13-8f896a9519d4:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "d3b08c18-3a64-4ea0-95f1-39ac4198013d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "ac716d8e-e533-4072-aa74-65848d4e0925:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "e5b0bf6c-69e6-4892-b691-9bc21f0c6b25:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "bc5b8947-a82b-44d5-bea7-addfad736ad2:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "370c3dc5-5a15-4347-b9a7-7d75ac86cb10:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "116cc01e-5861-4993-baaf-3f0cc2a312cf:indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "94022264-e2ce-4661-b384-b2b5454b02c8:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "0336a4e3-a647-415d-84b5-fef984ac4a3f:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5fa1a00d-8e9c-441f-be66-9b5c01663fd7:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "4d4e6682-9758-4359-a6f0-1ba6ca5e40f5:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "6a29e48e-892b-4c8a-a3de-8884fd1d9820:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "33d492ba-c62f-405e-84a2-c0254e8e743c:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "685110fd-a3a4-441b-b9b6-42316b8e33ee:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "f985f8a3-3272-43d8-90e6-76e56aac5f91:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "16205847-2ebc-46db-bc4b-606228f52996:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "fb20b198-fe52-4bb3-b6dd-d4d74855ca73:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5b9ce41f-1950-4c60-8322-a6aa80be383d:indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "8bbedd4e-bc5e-413d-81a1-b17dd5152428:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e00a8c06-9b49-4cb8-9cd5-598dbcb26113:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "5b7f5afe-074d-4b2e-8a81-53c925c2b698:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9dd45bd7-37df-4418-bcf0-00b80fe159a5:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "3e9e34b5-9c30-4ef2-b616-bd55af84812a:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5aa080e4-d756-4967-92d3-f92a920b315f:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "469ca4f4-f561-461b-8067-52e9ccdd675d:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:39600cce-a379-46d1-9b6a-42c97b06c32d:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "3e1efdc5-02e7-46ff-bb1d-4642aa1f1327:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:8d9908e0-205b-43ec-8fd4-343ce4057237:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "d0f95b46-cb78-4246-b605-cf764851569e:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "d0f95b46-cb78-4246-b605-cf764851569e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:9b0c3115-07d2-4a63-be6e-424b453fd041:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "08341f8a-a71d-414d-8b73-d1648e343d3c:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:641eddc6-5d50-4512-9409-a6d9f49e7e8a:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:04264bb0-25f8-4128-b7dc-821f46b7dd54:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "dad722ab-af91-4d03-a313-faab0d9533c5:indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "dad722ab-af91-4d03-a313-faab0d9533c5:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:24732923-c957-4110-8558-e38a86ad50bf:dashboardId", + "type": "dashboard" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "426f8706-b652-422d-a763-19eb6a28916f:indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "426f8706-b652-422d-a763-19eb6a28916f:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:547ea5a0-a1ae-4a90-8cd0-7ad0e177b613:dashboardId", + "type": "dashboard" + }, + { + "id": "bae88930-1133-11ee-af86-538da1394f27", + "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T21:17:53.197Z", + "version": "WzgyMjcwNiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json b/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json index a830b0a6dce..195fc2fb98f 100644 --- a/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json +++ b/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json @@ -1,86 +1,86 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExists\":true,\"hideExclude\":true,\"id\":\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\",\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Software Inventory view displays all installed Applications and Products on a computer, its version, and the last time it was seen.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":true,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},\"panelIndex\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":5,\"h\":10,\"i\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\"},\"panelIndex\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Software Installed\\nTYCHON reports both Windows Store applications and typical installed programs. TYCHON does not drop records when applications are removed and will update apps when they are added or upgraded.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":3,\"w\":7,\"h\":10,\"i\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\"},\"panelIndex\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3\"}],\"state\":{\"visualization\":{\"layerId\":\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\",\"accessor\":\"e78025b8-c96b-45bd-8202-8b5a06fb8355\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\":{\"columns\":{\"e78025b8-c96b-45bd-8202-8b5a06fb8355\":{\"label\":\"Total Software Installed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"package.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"e78025b8-c96b-45bd-8202-8b5a06fb8355\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":3,\"w\":10,\"h\":10,\"i\":\"b75181e4-77ee-4c10-b857-154234080c8c\"},\"panelIndex\":\"b75181e4-77ee-4c10-b857-154234080c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0\"}],\"state\":{\"visualization\":{\"shape\":\"mosaic\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"03a2e212-519d-46f5-868b-a7c914f289e0\",\"primaryGroups\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\"],\"secondaryGroups\":[],\"metrics\":[\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"03a2e212-519d-46f5-868b-a7c914f289e0\":{\"columns\":{\"cbf846c8-f838-4483-8097-2225de0b3d57\":{\"label\":\"Package Types\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\",\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software Type\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":3,\"w\":26,\"h\":10,\"i\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\"},\"panelIndex\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"057703a5-7f81-4be1-82c4-2f27bbf2615c\",\"accessors\":[\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"yConfig\":[{\"forAccessor\":\"3ffc6314-731f-4048-b5b6-a1d673384858\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"057703a5-7f81-4be1-82c4-2f27bbf2615c\":{\"columns\":{\"888ceeac-4036-4b29-a96a-c49d9b4602c3\":{\"label\":\"Publisher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.publisher\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ffc6314-731f-4048-b5b6-a1d673384858\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ffc6314-731f-4048-b5b6-a1d673384858\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software By Publisher\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":33,\"i\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\"},\"panelIndex\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\"}],\"state\":{\"visualization\":{\"layerId\":\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"alignment\":\"left\"},{\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"hidden\":true},{\"columnId\":\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"isTransposed\":false,\"alignment\":\"left\"},{\"columnId\":\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"28fd934b-7413-4196-b397-f42832cfa4c1\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\":{\"columns\":{\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.name\",\"isBucketed\":true,\"params\":{\"size\":500,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"529bf337-2458-4752-a815-7a5d0d84dc32\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a20d1958-fa8e-476c-acf9-74c0323c65d3\":{\"label\":\"Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"28fd934b-7413-4196-b397-f42832cfa4c1\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"28fd934b-7413-4196-b397-f42832cfa4c1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Installed Software and Applications\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-24h/h", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Software Inventory", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:46:31.347Z", - "id": "tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "341d7ddd-16bc-4f9d-ab47-a7f337ad3a76:panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76", - "type": "visualization" - }, - { - "id": "e0015160-781d-4885-9ae6-04230d059bfb", - "name": "ea1f4eb7-c8ef-4907-a106-734dac97ec4b:indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3", - "type": "index-pattern" - }, - { - "id": "e0015160-781d-4885-9ae6-04230d059bfb", - "name": "b75181e4-77ee-4c10-b857-154234080c8c:indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0", - "type": "index-pattern" - }, - { - "id": "e0015160-781d-4885-9ae6-04230d059bfb", - "name": "92b47b97-ad52-40c2-9b89-bbde77e7f00e:indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c", - "type": "index-pattern" - }, - { - "id": "e0015160-781d-4885-9ae6-04230d059bfb", - "name": "6e3b23f2-6754-4dda-a428-f68e622ed411:indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_8f5ba1f4-07f6-41a9-85c0-6060d10c200a:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "27edf330-3dfd-11ee-9610-15dee918f31a", - "name": "tag-ref-27edf330-3dfd-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:46:31.347Z", - "version": "WzgyMDk3MSwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExists\":true,\"hideExclude\":true,\"id\":\"8f5ba1f4-07f6-41a9-85c0-6060d10c200a\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Software Inventory view displays all installed Applications and Products on a computer, its version, and the last time it was seen.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":true,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},\"panelIndex\":\"341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":5,\"h\":10,\"i\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\"},\"panelIndex\":\"f9aaeeaf-3553-4857-b4e6-d6d73056341e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Software Installed\\nTYCHON reports both Windows Store applications and typical installed programs. TYCHON does not drop records when applications are removed and will update apps when they are added or upgraded.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":3,\"w\":7,\"h\":10,\"i\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\"},\"panelIndex\":\"ea1f4eb7-c8ef-4907-a106-734dac97ec4b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3\"}],\"state\":{\"visualization\":{\"layerId\":\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\",\"accessor\":\"e78025b8-c96b-45bd-8202-8b5a06fb8355\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8edfce3b-22f2-4c48-a63f-825b9418bcf3\":{\"columns\":{\"e78025b8-c96b-45bd-8202-8b5a06fb8355\":{\"label\":\"Total Software Installed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"package.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"e78025b8-c96b-45bd-8202-8b5a06fb8355\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":3,\"w\":10,\"h\":10,\"i\":\"b75181e4-77ee-4c10-b857-154234080c8c\"},\"panelIndex\":\"b75181e4-77ee-4c10-b857-154234080c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0\"}],\"state\":{\"visualization\":{\"shape\":\"mosaic\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"03a2e212-519d-46f5-868b-a7c914f289e0\",\"primaryGroups\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\"],\"secondaryGroups\":[],\"metrics\":[\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"03a2e212-519d-46f5-868b-a7c914f289e0\":{\"columns\":{\"cbf846c8-f838-4483-8097-2225de0b3d57\":{\"label\":\"Package Types\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cbf846c8-f838-4483-8097-2225de0b3d57\",\"dd21a1e4-6110-4b11-a1a7-674a03e262c0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software Type\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":3,\"w\":26,\"h\":10,\"i\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\"},\"panelIndex\":\"92b47b97-ad52-40c2-9b89-bbde77e7f00e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"057703a5-7f81-4be1-82c4-2f27bbf2615c\",\"accessors\":[\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"yConfig\":[{\"forAccessor\":\"3ffc6314-731f-4048-b5b6-a1d673384858\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"057703a5-7f81-4be1-82c4-2f27bbf2615c\":{\"columns\":{\"888ceeac-4036-4b29-a96a-c49d9b4602c3\":{\"label\":\"Publisher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.publisher\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ffc6314-731f-4048-b5b6-a1d673384858\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ffc6314-731f-4048-b5b6-a1d673384858\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"888ceeac-4036-4b29-a96a-c49d9b4602c3\",\"3ffc6314-731f-4048-b5b6-a1d673384858\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Software By Publisher\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":33,\"i\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\"},\"panelIndex\":\"6e3b23f2-6754-4dda-a428-f68e622ed411\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e0015160-781d-4885-9ae6-04230d059bfb\",\"name\":\"indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\"}],\"state\":{\"visualization\":{\"layerId\":\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"alignment\":\"left\"},{\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"hidden\":true},{\"columnId\":\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"isTransposed\":false,\"alignment\":\"left\"},{\"columnId\":\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"28fd934b-7413-4196-b397-f42832cfa4c1\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a8eb0e1b-2c4e-4717-b533-0b39e227a2a8\":{\"columns\":{\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.name\",\"isBucketed\":true,\"params\":{\"size\":500,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"529bf337-2458-4752-a815-7a5d0d84dc32\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a20d1958-fa8e-476c-acf9-74c0323c65d3\":{\"label\":\"Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"package.type\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"529bf337-2458-4752-a815-7a5d0d84dc32\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"28fd934b-7413-4196-b397-f42832cfa4c1\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"bd55582e-c727-4f43-93cf-c1dfbfc46c40\",\"a4df1e47-a590-44d4-8bc5-e120c094a1ca\",\"a20d1958-fa8e-476c-acf9-74c0323c65d3\",\"529bf337-2458-4752-a815-7a5d0d84dc32\",\"28fd934b-7413-4196-b397-f42832cfa4c1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Installed Software and Applications\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Software Inventory", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:46:31.347Z", + "id": "tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "341d7ddd-16bc-4f9d-ab47-a7f337ad3a76:panel_341d7ddd-16bc-4f9d-ab47-a7f337ad3a76", + "type": "visualization" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "ea1f4eb7-c8ef-4907-a106-734dac97ec4b:indexpattern-datasource-layer-8edfce3b-22f2-4c48-a63f-825b9418bcf3", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "b75181e4-77ee-4c10-b857-154234080c8c:indexpattern-datasource-layer-03a2e212-519d-46f5-868b-a7c914f289e0", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "92b47b97-ad52-40c2-9b89-bbde77e7f00e:indexpattern-datasource-layer-057703a5-7f81-4be1-82c4-2f27bbf2615c", + "type": "index-pattern" + }, + { + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "name": "6e3b23f2-6754-4dda-a428-f68e622ed411:indexpattern-datasource-layer-a8eb0e1b-2c4e-4717-b533-0b39e227a2a8", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_8f5ba1f4-07f6-41a9-85c0-6060d10c200a:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "27edf330-3dfd-11ee-9610-15dee918f31a", + "name": "tag-ref-27edf330-3dfd-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:46:31.347Z", + "version": "WzgyMDk3MSwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json index db71a370ddf..91262d3932d 100644 --- a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json @@ -1,116 +1,116 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date < now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Vulnerabilities ", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:51:50.468Z", - "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "e243d9ab-d083-4b45-88a2-9581bf3689ae:panel_e243d9ab-d083-4b45-88a2-9581bf3689ae", - "type": "visualization" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "18ef0327-ab0a-46d7-ac9c-bf8d01e28eba:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "0f3331b8-da1a-452c-a1b0-39a5558a1379:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "91a3fb55-660d-48ec-89f2-4e5b3122b49b:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ecee7b3f-f07e-4911-bb36-405e687f3ae0:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "721cfff2-211b-4e21-a5a7-874dcd0e6edc:indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "b146db26-e963-43f4-b2cd-60eb96128506:indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_8c4d7403-b7c0-4274-9e12-cec69c62e01e:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "9c222660-1100-11ee-af86-538da1394f27", - "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:51:50.468Z", - "version": "WzgyMTUxMywyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date \u003c now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Vulnerabilities ", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:51:50.468Z", + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "e243d9ab-d083-4b45-88a2-9581bf3689ae:panel_e243d9ab-d083-4b45-88a2-9581bf3689ae", + "type": "visualization" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "18ef0327-ab0a-46d7-ac9c-bf8d01e28eba:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "0f3331b8-da1a-452c-a1b0-39a5558a1379:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "91a3fb55-660d-48ec-89f2-4e5b3122b49b:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ecee7b3f-f07e-4911-bb36-405e687f3ae0:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "721cfff2-211b-4e21-a5a7-874dcd0e6edc:indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "b146db26-e963-43f4-b2cd-60eb96128506:indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_8c4d7403-b7c0-4274-9e12-cec69c62e01e:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:51:50.468Z", + "version": "WzgyMTUxMywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json index 5bf5731ad11..92a033e8db0 100644 --- a/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json +++ b/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json @@ -1,91 +1,91 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\",\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Drives and Disks view displays current Hard Drive and Partitions attached to endpoints at the time TYCHON performed its check.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},\"panelIndex\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | Benchmark Results | Patches | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | Protections\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":12,\"i\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\"},\"panelIndex\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Drives and Volumes\\nInvestigate the hard drives and volumes attached to this endpoint. TYCHON will evaluate this dataset every hour and report all attached drives (hard drives, cd roms, etc.) and all assigned volumes (c:\\\\, d:\\\\, boot, etc.). You will be able to investigate the hardware in-use, the size of the volume and other datapoints critical to the function of the compute on this device.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":6,\"i\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\"},\"panelIndex\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Drives\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":12,\"i\":\"f40d683e-92a6-422e-876c-4363f16dade0\"},\"panelIndex\":\"f40d683e-92a6-422e-876c-4363f16dade0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"bb301745-ba84-41cf-a000-5c7bdf0ae217\"},{\"isTransposed\":false,\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#cc5642\",\"stop\":10},{\"color\":\"#e7664c\",\"stop\":30},{\"color\":\"#d6bf57\",\"stop\":60},{\"color\":\"#54b399\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":0},{\"color\":\"#e7664c\",\"stop\":10},{\"color\":\"#d6bf57\",\"stop\":30},{\"color\":\"#54b399\",\"stop\":60},{\"color\":\"#209280\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"rangeType\":\"percent\"}}},{\"columnId\":\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"isTransposed\":false},{\"columnId\":\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"isTransposed\":false},{\"columnId\":\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"isTransposed\":false},{\"columnId\":\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092C0\",\"stop\":1},{\"color\":\"#54b399\",\"stop\":90},{\"color\":\"#d9816f\",\"stop\":95},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092C0\",\"stop\":0},{\"color\":\"#54b399\",\"stop\":1},{\"color\":\"#d9816f\",\"stop\":90},{\"color\":\"#cc5642\",\"stop\":95}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ab5ae478-53f7-419a-a1ec-7b08492df989\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ab5ae478-53f7-419a-a1ec-7b08492df989\":{\"columns\":{\"bb301745-ba84-41cf-a000-5c7bdf0ae217\":{\"label\":\"Drive Letter\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dc614c64-8d46-46ac-b6a7-419bc064d294\":{\"label\":\"Freespace\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.freespace\",\"filter\":{\"query\":\"volume.freespace: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"31942166-8460-454d-af8d-2f4c3ea1ac36\":{\"label\":\"File System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.file_system\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\":{\"label\":\"Total Size\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"c362c064-87fe-4a40-abae-a2fe669d0d9e\":{\"label\":\"Volume Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\":{\"label\":\"Percent Full\",\"dataType\":\"number\",\"operationType\":\"median\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\":{\"label\":\"System Volume\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.system_volume\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"bb301745-ba84-41cf-a000-5c7bdf0ae217\",\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Volumes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":15,\"w\":48,\"h\":8,\"i\":\"20040d41-ab77-43a7-b5e2-a962b042275c\"},\"panelIndex\":\"20040d41-ab77-43a7-b5e2-a962b042275c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"466ad901-c0e8-4f1c-a36f-b8c8370de454\"},{\"columnId\":\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"isTransposed\":false},{\"columnId\":\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"isTransposed\":false,\"oneClickFilter\":false},{\"columnId\":\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"isTransposed\":false},{\"columnId\":\"5b76281a-e942-4469-ae3a-5d756240a842\",\"isTransposed\":false},{\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"alignment\":\"center\"},{\"columnId\":\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"isTransposed\":false},{\"columnId\":\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"isTransposed\":false},{\"columnId\":\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"isTransposed\":false}],\"layerId\":\"9836a928-d429-4c9f-be78-970504fd7573\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9836a928-d429-4c9f-be78-970504fd7573\":{\"columns\":{\"466ad901-c0e8-4f1c-a36f-b8c8370de454\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a8ee904a-9d39-496b-a859-9bc09827b706\":{\"label\":\"Boot Device\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.is_boot\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\":{\"label\":\"Health\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5b76281a-e942-4469-ae3a-5d756240a842\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\":{\"label\":\"Sum of disk.size\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}}},\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\":{\"label\":\"Offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"da851de3-b924-48b8-afaa-588e632a6cdb\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\":{\"label\":\"Firmware Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.firmware.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"466ad901-c0e8-4f1c-a36f-b8c8370de454\",\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"5b76281a-e942-4469-ae3a-5d756240a842\",\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":7,\"i\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\"},\"panelIndex\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},{\"columnId\":\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"isTransposed\":false},{\"columnId\":\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"faab2332-ae0e-4731-8443-d8beb158987e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\":{\"columns\":{\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\":{\"label\":\"Adapter Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.adapter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\":{\"label\":\"Bus Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.bus\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\":{\"label\":\"Disk Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\":{\"label\":\"PCI Slot\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.pci_slot\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\":{\"label\":\"Function\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.function\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"faab2332-ae0e-4731-8443-d8beb158987e\":{\"label\":\"Device Location\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.device\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"faab2332-ae0e-4731-8443-d8beb158987e\",\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Locations\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":9,\"w\":5,\"h\":6,\"i\":\"13d03391-5f61-4049-833c-e90f550134ee\"},\"panelIndex\":\"13d03391-5f61-4049-833c-e90f550134ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Volumes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-24h", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Drives and Disks", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:45:01.909Z", - "id": "tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea:panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea", - "type": "visualization" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "aba0b52b-5f8e-4c87-956d-eea8f7c385fb:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", - "type": "index-pattern" - }, - { - "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "name": "f40d683e-92a6-422e-876c-4363f16dade0:indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "20040d41-ab77-43a7-b5e2-a962b042275c:indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "4944f397-3eac-4bf8-a31e-8f6477febb89:indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6", - "type": "index-pattern" - }, - { - "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "name": "13d03391-5f61-4049-833c-e90f550134ee:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_fddd86d2-bc58-48d0-880d-f1d537f90bdc:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "7f851220-3d41-11ee-9610-15dee918f31a", - "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:45:01.909Z", - "version": "WzgyMDc1MywyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"fddd86d2-bc58-48d0-880d-f1d537f90bdc\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Drives and Disks view displays current Hard Drive and Partitions attached to endpoints at the time TYCHON performed its check.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},\"panelIndex\":\"d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | Benchmark Results | Patches | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | Protections\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":12,\"i\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\"},\"panelIndex\":\"fa484c10-d1a8-45e8-9385-be1a0df6ddba\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Drives and Volumes\\nInvestigate the hard drives and volumes attached to this endpoint. TYCHON will evaluate this dataset every hour and report all attached drives (hard drives, cd roms, etc.) and all assigned volumes (c:\\\\, d:\\\\, boot, etc.). You will be able to investigate the hardware in-use, the size of the volume and other datapoints critical to the function of the compute on this device.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":5,\"h\":6,\"i\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\"},\"panelIndex\":\"aba0b52b-5f8e-4c87-956d-eea8f7c385fb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Drives\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":3,\"w\":37,\"h\":12,\"i\":\"f40d683e-92a6-422e-876c-4363f16dade0\"},\"panelIndex\":\"f40d683e-92a6-422e-876c-4363f16dade0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"bb301745-ba84-41cf-a000-5c7bdf0ae217\"},{\"isTransposed\":false,\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#cc5642\",\"stop\":10},{\"color\":\"#e7664c\",\"stop\":30},{\"color\":\"#d6bf57\",\"stop\":60},{\"color\":\"#54b399\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":0},{\"color\":\"#e7664c\",\"stop\":10},{\"color\":\"#d6bf57\",\"stop\":30},{\"color\":\"#54b399\",\"stop\":60},{\"color\":\"#209280\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"rangeType\":\"percent\"}}},{\"columnId\":\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"isTransposed\":false},{\"columnId\":\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"isTransposed\":false},{\"columnId\":\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"isTransposed\":false},{\"columnId\":\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092C0\",\"stop\":1},{\"color\":\"#54b399\",\"stop\":90},{\"color\":\"#d9816f\",\"stop\":95},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092C0\",\"stop\":0},{\"color\":\"#54b399\",\"stop\":1},{\"color\":\"#d9816f\",\"stop\":90},{\"color\":\"#cc5642\",\"stop\":95}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ab5ae478-53f7-419a-a1ec-7b08492df989\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ab5ae478-53f7-419a-a1ec-7b08492df989\":{\"columns\":{\"bb301745-ba84-41cf-a000-5c7bdf0ae217\":{\"label\":\"Drive Letter\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dc614c64-8d46-46ac-b6a7-419bc064d294\":{\"label\":\"Freespace\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.freespace\",\"filter\":{\"query\":\"volume.freespace: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"31942166-8460-454d-af8d-2f4c3ea1ac36\":{\"label\":\"File System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.file_system\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\":{\"label\":\"Total Size\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\",\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"c362c064-87fe-4a40-abae-a2fe669d0d9e\":{\"label\":\"Volume Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\":{\"label\":\"Percent Full\",\"dataType\":\"number\",\"operationType\":\"median\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\":{\"label\":\"System Volume\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.system_volume\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dc614c64-8d46-46ac-b6a7-419bc064d294\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"bb301745-ba84-41cf-a000-5c7bdf0ae217\",\"c362c064-87fe-4a40-abae-a2fe669d0d9e\",\"31942166-8460-454d-af8d-2f4c3ea1ac36\",\"e3caee5f-96aa-404c-ba25-e1dbd58f75ee\",\"dc614c64-8d46-46ac-b6a7-419bc064d294\",\"6e3c8cf1-6de2-4760-9e2b-24be0f13b383\",\"a22124c5-1d7c-4bf4-96b1-1acbfeae8a69\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Volumes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":15,\"w\":48,\"h\":8,\"i\":\"20040d41-ab77-43a7-b5e2-a962b042275c\"},\"panelIndex\":\"20040d41-ab77-43a7-b5e2-a962b042275c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"466ad901-c0e8-4f1c-a36f-b8c8370de454\"},{\"columnId\":\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"isTransposed\":false},{\"columnId\":\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"isTransposed\":false,\"oneClickFilter\":false},{\"columnId\":\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"isTransposed\":false},{\"columnId\":\"5b76281a-e942-4469-ae3a-5d756240a842\",\"isTransposed\":false},{\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"alignment\":\"center\"},{\"columnId\":\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"isTransposed\":false},{\"columnId\":\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"isTransposed\":false},{\"columnId\":\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"isTransposed\":false}],\"layerId\":\"9836a928-d429-4c9f-be78-970504fd7573\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9836a928-d429-4c9f-be78-970504fd7573\":{\"columns\":{\"466ad901-c0e8-4f1c-a36f-b8c8370de454\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a8ee904a-9d39-496b-a859-9bc09827b706\":{\"label\":\"Boot Device\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.is_boot\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\":{\"label\":\"Health\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5b76281a-e942-4469-ae3a-5d756240a842\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\":{\"label\":\"Sum of disk.size\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}}},\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\":{\"label\":\"Offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"da851de3-b924-48b8-afaa-588e632a6cdb\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\":{\"label\":\"Firmware Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.firmware.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"466ad901-c0e8-4f1c-a36f-b8c8370de454\",\"ee278da4-5b1a-4e70-b4db-7ffc47a3c227\",\"5b76281a-e942-4469-ae3a-5d756240a842\",\"a8ee904a-9d39-496b-a859-9bc09827b706\",\"8a78a361-1cac-40b6-a0f4-f4f1253f0941\",\"ef7ef096-329c-45a0-91b3-85e31ddbfcb7\",\"da851de3-b924-48b8-afaa-588e632a6cdb\",\"7f594f0b-a1ca-4244-bfbc-84b803eff59f\",\"a3c42a2e-e6c9-44ce-88ed-0664fb15a79f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":7,\"i\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\"},\"panelIndex\":\"4944f397-3eac-4bf8-a31e-8f6477febb89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},{\"columnId\":\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"isTransposed\":false},{\"columnId\":\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"faab2332-ae0e-4731-8443-d8beb158987e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb34ca0a-d538-48ee-ba32-3a258367dcc6\":{\"columns\":{\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\":{\"label\":\"Adapter Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.adapter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\":{\"label\":\"Bus Location\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.bus\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\":{\"label\":\"Disk Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\":{\"label\":\"PCI Slot\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.location.pci_slot\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\":{\"label\":\"Function\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.function\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"faab2332-ae0e-4731-8443-d8beb158987e\":{\"label\":\"Device Location\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"disk.location.device\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"1149bbca-2c04-4d09-822d-dc0a4a0d419e\",\"4f2d2bac-b756-40d3-80ac-8ff4be4cd605\",\"8ad0cfb3-0f6d-4812-83a5-9839604bd3bf\",\"a0c8e3f2-e88a-4fc8-acc1-3a73985a5e81\",\"b9ce9f0e-8634-42b2-8717-f64db6f1d7ae\",\"faab2332-ae0e-4731-8443-d8beb158987e\",\"927d6f73-38bc-4ab6-b19d-53a7ca3969bf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Locations\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":9,\"w\":5,\"h\":6,\"i\":\"13d03391-5f61-4049-833c-e90f550134ee\"},\"panelIndex\":\"13d03391-5f61-4049-833c-e90f550134ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a\"}],\"state\":{\"visualization\":{\"layerId\":\"7cbc7137-0f64-4584-a31c-272e19b5be9a\",\"accessor\":\"06ea4772-193a-450f-a877-f50c5a4e283a\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7cbc7137-0f64-4584-a31c-272e19b5be9a\":{\"columns\":{\"06ea4772-193a-450f-a877-f50c5a4e283a\":{\"label\":\"Total Number of Volumes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"06ea4772-193a-450f-a877-f50c5a4e283a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Drives and Disks", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:45:01.909Z", + "id": "tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea:panel_d8ad9dec-a73f-4cc6-b9d3-c175e2b6feea", + "type": "visualization" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "aba0b52b-5f8e-4c87-956d-eea8f7c385fb:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", + "type": "index-pattern" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "f40d683e-92a6-422e-876c-4363f16dade0:indexpattern-datasource-layer-ab5ae478-53f7-419a-a1ec-7b08492df989", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "20040d41-ab77-43a7-b5e2-a962b042275c:indexpattern-datasource-layer-9836a928-d429-4c9f-be78-970504fd7573", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "4944f397-3eac-4bf8-a31e-8f6477febb89:indexpattern-datasource-layer-cb34ca0a-d538-48ee-ba32-3a258367dcc6", + "type": "index-pattern" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "13d03391-5f61-4049-833c-e90f550134ee:indexpattern-datasource-layer-7cbc7137-0f64-4584-a31c-272e19b5be9a", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_fddd86d2-bc58-48d0-880d-f1d537f90bdc:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:45:01.909Z", + "version": "WzgyMDc1MywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json index b8d53029eb9..ea6671fe98c 100644 --- a/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json +++ b/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json @@ -1,104 +1,104 @@ { - "attributes": { - "description": "TYCHON collects all network adapters attached to computers. It tracks WIFI modules, DHCP lease information as well as Hardware data like drivers and MAC addresses.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":12,\"i\":\"d49517b7-b398-4f73-8ece-762088585b93\"},\"panelIndex\":\"d49517b7-b398-4f73-8ece-762088585b93\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\n\\nTYCHON collects network adapters, including their settings and the hardware associated with them, on an hourly basis. This is a running configuration of the endpoint; updates are sent for previously identified adapters and new records are sent if they are found.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":8,\"h\":12,\"i\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\"},\"panelIndex\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"d0ae3dee-4383-481f-aef0-daf860c05856\",\"primaryGroups\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\"],\"metrics\":[\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":1,\"emptySizeRatio\":0.7,\"collapseFns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d0ae3dee-4383-481f-aef0-daf860c05856\":{\"columns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":{\"label\":\"Top 5 values of host.adapter.ip_filter.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip_filter.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"bd0319f0-b85b-481d-abde-21648d07caa7\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"bd0319f0-b85b-481d-abde-21648d07caa7\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\",\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IP Filtering Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":9,\"h\":12,\"i\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\"},\"panelIndex\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\",\"primaryGroups\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\"],\"metrics\":[\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\":{\"columns\":{\"da1553ec-49af-40ed-ae81-3f0f934cb82c\":{\"label\":\"Top 5 values of host.adapter.dhcp.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e9a53c29-8278-4d38-86d9-c3d714781f13\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"e9a53c29-8278-4d38-86d9-c3d714781f13\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\",\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":0,\"w\":9,\"h\":12,\"i\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\"},\"panelIndex\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\",\"primaryGroups\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\"],\"metrics\":[\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\":{\"columns\":{\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\":{\"label\":\"Top 5 values of host.adapter.wifi.enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"85eb49da-cefb-4e08-b5e1-8a420138b003\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":false},\"85eb49da-cefb-4e08-b5e1-8a420138b003\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\",\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wifi Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":9,\"h\":12,\"i\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\"},\"panelIndex\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce\"}],\"state\":{\"visualization\":{\"layerId\":\"478c5274-7721-46c2-b0f5-d42bd3449cce\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"2601cadf-de30-40c7-84fb-c3f338ccc376\"},{\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"478c5274-7721-46c2-b0f5-d42bd3449cce\":{\"columns\":{\"2601cadf-de30-40c7-84fb-c3f338ccc376\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cb480377-d348-4319-9392-8cd5de727be0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2601cadf-de30-40c7-84fb-c3f338ccc376\",\"cb480377-d348-4319-9392-8cd5de727be0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Authentication\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":0,\"w\":8,\"h\":12,\"i\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\"},\"panelIndex\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\"}],\"state\":{\"visualization\":{\"layerId\":\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\"},{\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\":{\"columns\":{\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"066b12e0-e98d-463e-9786-758d37cdd4cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\",\"066b12e0-e98d-463e-9786-758d37cdd4cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Ciphers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":31,\"h\":12,\"i\":\"543e1534-9b02-483a-a90d-64133a9f3949\"},\"panelIndex\":\"543e1534-9b02-483a-a90d-64133a9f3949\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"aeef0279-8407-4694-9a27-0c3160e7ac86\",\"accessors\":[\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"yConfig\":[{\"forAccessor\":\"bfa9be94-5153-418c-89aa-3629fc8e8977\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"event.code:8502 \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"aeef0279-8407-4694-9a27-0c3160e7ac86\":{\"columns\":{\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\":{\"label\":\"events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"d\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"bfa9be94-5153-418c-89aa-3629fc8e8977\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":12,\"w\":17,\"h\":12,\"i\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\"},\"panelIndex\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"isTransposed\":false},{\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\",\"isTransposed\":false}],\"layerId\":\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\":{\"columns\":{\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"afb2746e-d5b5-4e13-b935-4d5c2d553258\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wireless SSIDs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":31,\"h\":15,\"i\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\"},\"panelIndex\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"844bced9-2788-47f0-a95c-866804591aab\"},{\"isTransposed\":false,\"columnId\":\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\"},{\"isTransposed\":false,\"columnId\":\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\"},{\"isTransposed\":false,\"columnId\":\"97cd8085-627d-4dc1-b014-3b9a9281a580\"},{\"isTransposed\":false,\"columnId\":\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\"},{\"isTransposed\":false,\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\",\"hidden\":true},{\"columnId\":\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"isTransposed\":false,\"oneClickFilter\":true}],\"layerId\":\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\":{\"columns\":{\"844bced9-2788-47f0-a95c-866804591aab\":{\"label\":\"Host IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\":{\"label\":\"Adapter IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"97cd8085-627d-4dc1-b014-3b9a9281a580\":{\"label\":\"Adapter MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"887116a6-6ac3-4495-a2b0-dffe493e7963\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fd305582-42c8-4034-af5b-9bad7687ca56\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"844bced9-2788-47f0-a95c-866804591aab\",\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\",\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\",\"97cd8085-627d-4dc1-b014-3b9a9281a580\",\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\",\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"887116a6-6ac3-4495-a2b0-dffe493e7963\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"f98ddf9f-1272-4629-a78f-34be39b396c9\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Adapter Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":24,\"w\":17,\"h\":29,\"i\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\"},\"panelIndex\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"60a1e7e5-b330-4283-801d-5257bd50d8ff\"},{\"isTransposed\":false,\"columnId\":\"cc510be1-9910-472e-9293-4d969fed4df5\"},{\"isTransposed\":false,\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"width\":164.4,\"hidden\":true},{\"columnId\":\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"84773659-f553-44c6-a891-2a319c961733\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\":{\"columns\":{\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"60a1e7e5-b330-4283-801d-5257bd50d8ff\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc510be1-9910-472e-9293-4d969fed4df5\":{\"label\":\"DHCP Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"298203d5-0914-4aaa-97a8-bd1a1c99f441\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"84773659-f553-44c6-a891-2a319c961733\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"60a1e7e5-b330-4283-801d-5257bd50d8ff\",\"cc510be1-9910-472e-9293-4d969fed4df5\",\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"84773659-f553-44c6-a891-2a319c961733\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"06b99334-2f3a-4fea-88a9-f8ff484a0273\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"DHCP Leases\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":31,\"h\":14,\"i\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\"},\"panelIndex\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"80d969cb-519d-4f44-896e-414e3855ff30\"},{\"isTransposed\":false,\"columnId\":\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\"},{\"isTransposed\":false,\"columnId\":\"5ed2292c-513d-4a4b-81f0-450b471824bf\"},{\"isTransposed\":false,\"columnId\":\"0d310f9d-a56d-4091-979d-170a9f4c6933\"},{\"isTransposed\":false,\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\",\"width\":139.66666666666666,\"hidden\":true}],\"layerId\":\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\":{\"columns\":{\"80d969cb-519d-4f44-896e-414e3855ff30\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\":{\"label\":\"Driver Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5ed2292c-513d-4a4b-81f0-450b471824bf\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0d310f9d-a56d-4091-979d-170a9f4c6933\":{\"label\":\"File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4ebd68ae-b793-42be-a295-0271f7ab93cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"80d969cb-519d-4f44-896e-414e3855ff30\",\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\",\"5ed2292c-513d-4a4b-81f0-450b471824bf\",\"0d310f9d-a56d-4091-979d-170a9f4c6933\",\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Network Card Drivers\"}]", - "timeRestore": false, - "title": "[TYCHON] Host Network Adapters", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-24T11:25:58.181Z", - "id": "tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-newtorkadapter", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "7f62756c-e202-4cfe-941c-efadbe5e5d44:indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "e32e4e7e-d84d-4f31-9a0d-a57ab471c406:indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "9936786e-a55c-4b9a-aa4b-b8d980f57126:indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "df122ed7-85d7-41b1-a9a9-047e43b8f3a1:indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "d648a9c0-0648-419b-b79b-71e1ee8a9a72:indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "543e1534-9b02-483a-a90d-64133a9f3949:indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "1f76e42c-0430-4e02-97bb-62ebd19fd592:indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4", - "type": "index-pattern" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1", - "type": "index-pattern" - }, - { - "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", - "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:f98ddf9f-1272-4629-a78f-34be39b396c9:dashboardId", - "type": "dashboard" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592", - "type": "index-pattern" - }, - { - "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", - "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:06b99334-2f3a-4fea-88a9-f8ff484a0273:dashboardId", - "type": "dashboard" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "e44243ce-1dd7-4d08-bdfd-ada361b702ba:indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e", - "type": "index-pattern" - }, - { - "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", - "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-24T11:25:58.181Z", - "version": "WzgyNzcwNywyMl0=" + "attributes": { + "description": "TYCHON collects all network adapters attached to computers. It tracks WIFI modules, DHCP lease information as well as Hardware data like drivers and MAC addresses.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":12,\"i\":\"d49517b7-b398-4f73-8ece-762088585b93\"},\"panelIndex\":\"d49517b7-b398-4f73-8ece-762088585b93\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Network Adapters\\n\\nTYCHON collects network adapters, including their settings and the hardware associated with them, on an hourly basis. This is a running configuration of the endpoint; updates are sent for previously identified adapters and new records are sent if they are found.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":8,\"h\":12,\"i\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\"},\"panelIndex\":\"7f62756c-e202-4cfe-941c-efadbe5e5d44\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"d0ae3dee-4383-481f-aef0-daf860c05856\",\"primaryGroups\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\"],\"metrics\":[\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":1,\"emptySizeRatio\":0.7,\"collapseFns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d0ae3dee-4383-481f-aef0-daf860c05856\":{\"columns\":{\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\":{\"label\":\"Top 5 values of host.adapter.ip_filter.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip_filter.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"bd0319f0-b85b-481d-abde-21648d07caa7\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"bd0319f0-b85b-481d-abde-21648d07caa7\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"5d80b5b5-18f3-4e68-89ea-9e8f4f3a5513\",\"bd0319f0-b85b-481d-abde-21648d07caa7\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IP Filtering Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":9,\"h\":12,\"i\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\"},\"panelIndex\":\"e32e4e7e-d84d-4f31-9a0d-a57ab471c406\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\",\"primaryGroups\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\"],\"metrics\":[\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8c16b6e7-b3ab-468a-be34-9eaa64761bc4\":{\"columns\":{\"da1553ec-49af-40ed-ae81-3f0f934cb82c\":{\"label\":\"Top 5 values of host.adapter.dhcp.enabled\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e9a53c29-8278-4d38-86d9-c3d714781f13\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"e9a53c29-8278-4d38-86d9-c3d714781f13\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"da1553ec-49af-40ed-ae81-3f0f934cb82c\",\"e9a53c29-8278-4d38-86d9-c3d714781f13\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"DHCP Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":22,\"y\":0,\"w\":9,\"h\":12,\"i\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\"},\"panelIndex\":\"9936786e-a55c-4b9a-aa4b-b8d980f57126\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\",\"primaryGroups\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\"],\"metrics\":[\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"89d857bd-b2bf-4a46-a223-daa5fbc8d974\":{\"columns\":{\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\":{\"label\":\"Top 5 values of host.adapter.wifi.enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"85eb49da-cefb-4e08-b5e1-8a420138b003\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":false},\"85eb49da-cefb-4e08-b5e1-8a420138b003\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"ab2f98ea-92e9-4b85-8ac9-83aa0cadfcef\",\"85eb49da-cefb-4e08-b5e1-8a420138b003\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wifi Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":9,\"h\":12,\"i\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\"},\"panelIndex\":\"df122ed7-85d7-41b1-a9a9-047e43b8f3a1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce\"}],\"state\":{\"visualization\":{\"layerId\":\"478c5274-7721-46c2-b0f5-d42bd3449cce\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"2601cadf-de30-40c7-84fb-c3f338ccc376\"},{\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"478c5274-7721-46c2-b0f5-d42bd3449cce\":{\"columns\":{\"2601cadf-de30-40c7-84fb-c3f338ccc376\":{\"label\":\"WIFI Authentication\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.authentication\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"cb480377-d348-4319-9392-8cd5de727be0\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cb480377-d348-4319-9392-8cd5de727be0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2601cadf-de30-40c7-84fb-c3f338ccc376\",\"cb480377-d348-4319-9392-8cd5de727be0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Authentication\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":0,\"w\":8,\"h\":12,\"i\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\"},\"panelIndex\":\"d648a9c0-0648-419b-b79b-71e1ee8a9a72\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\"}],\"state\":{\"visualization\":{\"layerId\":\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\"},{\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a9f337a1-9ff1-4aae-ad4f-594b27fae2b3\":{\"columns\":{\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\":{\"label\":\"WIFI Cipher\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.cipher\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"066b12e0-e98d-463e-9786-758d37cdd4cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"066b12e0-e98d-463e-9786-758d37cdd4cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"59edd0fe-bf89-4d01-bbd4-02affe8ec26b\",\"066b12e0-e98d-463e-9786-758d37cdd4cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top WIFI Ciphers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":31,\"h\":12,\"i\":\"543e1534-9b02-483a-a90d-64133a9f3949\"},\"panelIndex\":\"543e1534-9b02-483a-a90d-64133a9f3949\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"aeef0279-8407-4694-9a27-0c3160e7ac86\",\"accessors\":[\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"yConfig\":[{\"forAccessor\":\"bfa9be94-5153-418c-89aa-3629fc8e8977\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"event.code:8502 \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"aeef0279-8407-4694-9a27-0c3160e7ac86\":{\"columns\":{\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\":{\"label\":\"events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"d\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"bfa9be94-5153-418c-89aa-3629fc8e8977\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"f5441746-7ad5-47c1-a7f1-5bb1c1ebbc5b\",\"bfa9be94-5153-418c-89aa-3629fc8e8977\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":12,\"w\":17,\"h\":12,\"i\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\"},\"panelIndex\":\"1f76e42c-0430-4e02-97bb-62ebd19fd592\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"isTransposed\":false},{\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\",\"isTransposed\":false}],\"layerId\":\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3c9abebd-e23f-413d-abb5-f2bcca35a2f4\":{\"columns\":{\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\":{\"label\":\"SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"afb2746e-d5b5-4e13-b935-4d5c2d553258\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"97ec5e03-9fbc-4f67-8023-d03a325cd9c1\",\"afb2746e-d5b5-4e13-b935-4d5c2d553258\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Wireless SSIDs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":31,\"h\":15,\"i\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\"},\"panelIndex\":\"c6dfaa90-2cfe-4e80-9df0-668ed93cc376\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"844bced9-2788-47f0-a95c-866804591aab\"},{\"isTransposed\":false,\"columnId\":\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\"},{\"isTransposed\":false,\"columnId\":\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\"},{\"isTransposed\":false,\"columnId\":\"97cd8085-627d-4dc1-b014-3b9a9281a580\"},{\"isTransposed\":false,\"columnId\":\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\"},{\"isTransposed\":false,\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\",\"hidden\":true},{\"columnId\":\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"isTransposed\":false,\"oneClickFilter\":true}],\"layerId\":\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1\":{\"columns\":{\"844bced9-2788-47f0-a95c-866804591aab\":{\"label\":\"Host IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\":{\"label\":\"Adapter IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"97cd8085-627d-4dc1-b014-3b9a9281a580\":{\"label\":\"Adapter MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"887116a6-6ac3-4495-a2b0-dffe493e7963\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fd305582-42c8-4034-af5b-9bad7687ca56\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"887116a6-6ac3-4495-a2b0-dffe493e7963\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"844bced9-2788-47f0-a95c-866804591aab\",\"7824c0bb-7bc5-4b20-a164-2c9ba76b0b20\",\"3c7a969e-bdf4-466b-8992-d15d21ed19a4\",\"97cd8085-627d-4dc1-b014-3b9a9281a580\",\"64ab5703-ecdb-4c44-9ea2-4a79689c8a33\",\"fd305582-42c8-4034-af5b-9bad7687ca56\",\"887116a6-6ac3-4495-a2b0-dffe493e7963\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"f98ddf9f-1272-4629-a78f-34be39b396c9\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Adapter Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":24,\"w\":17,\"h\":29,\"i\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\"},\"panelIndex\":\"b6ab1ca4-6059-46f3-aeb5-179d697bd31e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"60a1e7e5-b330-4283-801d-5257bd50d8ff\"},{\"isTransposed\":false,\"columnId\":\"cc510be1-9910-472e-9293-4d969fed4df5\"},{\"isTransposed\":false,\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"width\":164.4,\"hidden\":true},{\"columnId\":\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"84773659-f553-44c6-a891-2a319c961733\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b2b81cdf-b376-4b7b-8c8a-2dcba80a5592\":{\"columns\":{\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"60a1e7e5-b330-4283-801d-5257bd50d8ff\":{\"label\":\"DHCP Server\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.server\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc510be1-9910-472e-9293-4d969fed4df5\":{\"label\":\"DHCP Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"298203d5-0914-4aaa-97a8-bd1a1c99f441\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"298203d5-0914-4aaa-97a8-bd1a1c99f441\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\":{\"label\":\"Lease Expires\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_expires\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_expires: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"84773659-f553-44c6-a891-2a319c961733\":{\"label\":\"Lease Obtained\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.adapter.dhcp.lease_obtained\",\"filter\":{\"query\":\"host.adapter.dhcp.lease_obtained: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"db31a9cd-02fb-4e53-8189-6b4cf20e622b\",\"60a1e7e5-b330-4283-801d-5257bd50d8ff\",\"cc510be1-9910-472e-9293-4d969fed4df5\",\"298203d5-0914-4aaa-97a8-bd1a1c99f441\",\"09a3d3c8-e208-4954-aa8f-cc0e9adbb427\",\"84773659-f553-44c6-a891-2a319c961733\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"06b99334-2f3a-4fea-88a9-f8ff484a0273\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Go to Dashboard\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"DHCP Leases\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":31,\"h\":14,\"i\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\"},\"panelIndex\":\"e44243ce-1dd7-4d08-bdfd-ada361b702ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"80d969cb-519d-4f44-896e-414e3855ff30\"},{\"isTransposed\":false,\"columnId\":\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\"},{\"isTransposed\":false,\"columnId\":\"5ed2292c-513d-4a4b-81f0-450b471824bf\"},{\"isTransposed\":false,\"columnId\":\"0d310f9d-a56d-4091-979d-170a9f4c6933\"},{\"isTransposed\":false,\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\",\"width\":139.66666666666666,\"hidden\":true}],\"layerId\":\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5d4423cc-ea65-4dde-b95c-c03fc25f421e\":{\"columns\":{\"80d969cb-519d-4f44-896e-414e3855ff30\":{\"label\":\"Driver Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\":{\"label\":\"Driver Provider\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.provider\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5ed2292c-513d-4a4b-81f0-450b471824bf\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0d310f9d-a56d-4091-979d-170a9f4c6933\":{\"label\":\"File\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.driver.file_name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4ebd68ae-b793-42be-a295-0271f7ab93cb\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"80d969cb-519d-4f44-896e-414e3855ff30\",\"49a08f10-2a5d-45a1-80f4-c1217d6a3ba9\",\"5ed2292c-513d-4a4b-81f0-450b471824bf\",\"0d310f9d-a56d-4091-979d-170a9f4c6933\",\"4ebd68ae-b793-42be-a295-0271f7ab93cb\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Network Card Drivers\"}]", + "timeRestore": false, + "title": "[TYCHON] Host Network Adapters", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-24T11:25:58.181Z", + "id": "tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "7f62756c-e202-4cfe-941c-efadbe5e5d44:indexpattern-datasource-layer-d0ae3dee-4383-481f-aef0-daf860c05856", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "e32e4e7e-d84d-4f31-9a0d-a57ab471c406:indexpattern-datasource-layer-8c16b6e7-b3ab-468a-be34-9eaa64761bc4", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "9936786e-a55c-4b9a-aa4b-b8d980f57126:indexpattern-datasource-layer-89d857bd-b2bf-4a46-a223-daa5fbc8d974", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "df122ed7-85d7-41b1-a9a9-047e43b8f3a1:indexpattern-datasource-layer-478c5274-7721-46c2-b0f5-d42bd3449cce", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "d648a9c0-0648-419b-b79b-71e1ee8a9a72:indexpattern-datasource-layer-a9f337a1-9ff1-4aae-ad4f-594b27fae2b3", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "543e1534-9b02-483a-a90d-64133a9f3949:indexpattern-datasource-layer-aeef0279-8407-4694-9a27-0c3160e7ac86", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "1f76e42c-0430-4e02-97bb-62ebd19fd592:indexpattern-datasource-layer-3c9abebd-e23f-413d-abb5-f2bcca35a2f4", + "type": "index-pattern" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:indexpattern-datasource-layer-32ff30b7-29b3-4d44-ad6b-75b5ac82b7d1", + "type": "index-pattern" + }, + { + "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", + "name": "c6dfaa90-2cfe-4e80-9df0-668ed93cc376:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:f98ddf9f-1272-4629-a78f-34be39b396c9:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:indexpattern-datasource-layer-b2b81cdf-b376-4b7b-8c8a-2dcba80a5592", + "type": "index-pattern" + }, + { + "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", + "name": "b6ab1ca4-6059-46f3-aeb5-179d697bd31e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:06b99334-2f3a-4fea-88a9-f8ff484a0273:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "e44243ce-1dd7-4d08-bdfd-ada361b702ba:indexpattern-datasource-layer-5d4423cc-ea65-4dde-b95c-c03fc25f421e", + "type": "index-pattern" + }, + { + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-11990b80-41b6-11ee-83e4-c92ed141b9e5", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-24T11:25:58.181Z", + "version": "WzgyNzcwNywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json index f7565796496..666bee04e0e 100644 --- a/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json +++ b/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json @@ -1,151 +1,151 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\",\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Host Information view displays overall Operating System data and summary information from its subordinate datasets (disks, drives, vulnerabilities, benchmarks, etc.).", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},\"panelIndex\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":10,\"i\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\"},\"panelIndex\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"92d62e85-e917-436d-b8d3-f69df24ed02b\",\"type\":\"markdown\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"5c94a663-8135-4c09-acdf-a8e828c62ef4\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"2f2e4338-bd68-4176-966b-1f6aae9574e6\",\"type\":\"top_hit\",\"field\":\"host.os.name\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osname\",\"var_name\":\"osname\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"f04dc8d0-4151-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"f04dc8d1-4151-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.architecture\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostarch\",\"var_name\":\"hostarch\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"07d09d20-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"07d09d21-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.kernel\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostkern\",\"var_name\":\"hostkern\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"24089510-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"24089511-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.version\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osver\",\"var_name\":\"osver\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"b292c170-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"b292c171-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.description\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osdesc\",\"var_name\":\"osdesc\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"d3de77c0-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"d3de77c1-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.edition\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osedition\",\"var_name\":\"osedition\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"230bf020-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"230bf021-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.organization\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osorg\",\"var_name\":\"osorg\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"3b35d9e0-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"3b35d9e1-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.platform\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osplatform\",\"var_name\":\"osplatform\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"82b7d200-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"82b7d201-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.build\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osbuild\",\"var_name\":\"osbuild\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"markdown\":\"**Platform:** {{ osplatform.osplatform.last.formatted }} \\\\\\r\\n**Operating System:** {{ osname.osname.last.formatted }} \\\\\\r\\n**Architecture:** {{ hostarch.hostarch.last.formatted }} \\\\\\r\\n**Kernel:** {{ hostkern.hostkern.last.formatted }} \\\\\\r\\n**Version:** {{ osver.osver.last.formatted }} \\\\\\r\\n**Build:** {{ osbuild.osbuild.last.formatted }} \\\\\\r\\n**Description:** {{ osdesc.osdesc.last.formatted }} \\\\\\r\\n**Edition:** {{ osedition.osedition.last.formatted }} \\\\\\r\\n**Organization:** {{ osorg.osorg.last.formatted }}\",\"index_pattern_ref_name\":\"metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"OS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":17,\"h\":5,\"i\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\"},\"panelIndex\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212\"}],\"state\":{\"visualization\":{\"layerId\":\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\",\"hidden\":true},{\"columnId\":\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"isTransposed\":false},{\"columnId\":\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"isTransposed\":false},{\"columnId\":\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\":{\"columns\":{\"5db71250-e4a6-4352-9841-60bda3bb3d61\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"5ed56c44-5133-41e1-a6b9-53625ce522d3\":{\"label\":\"BIOS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.name\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\":{\"label\":\"BIOS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\":{\"label\":\"BIOS Serialnumber\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.biossn\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"5db71250-e4a6-4352-9841-60bda3bb3d61\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host BIOS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":3,\"w\":25,\"h\":5,\"i\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\"},\"panelIndex\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\"},{\"isTransposed\":false,\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\",\"hidden\":true},{\"columnId\":\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"isTransposed\":false},{\"columnId\":\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"isTransposed\":false},{\"columnId\":\"074126a4-578b-4f8d-85df-0a460025e011\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"596cb7b8-af7b-40db-affa-e7591c0165be\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"596cb7b8-af7b-40db-affa-e7591c0165be\":{\"columns\":{\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\":{\"label\":\"System Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f437a99-d536-4931-ae23-18509767b878\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\":{\"label\":\"Owner\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.owner\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9936688-2921-4cc7-b058-e0fc26c376ec\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"074126a4-578b-4f8d-85df-0a460025e011\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\",\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"074126a4-578b-4f8d-85df-0a460025e011\",\"0f437a99-d536-4931-ae23-18509767b878\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Computer Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":8,\"w\":42,\"h\":5,\"i\":\"7412b1ca-0c47-4905-aa6a-474686887f76\"},\"panelIndex\":\"7412b1ca-0c47-4905-aa6a-474686887f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"width\":387.2857142857143},{\"isTransposed\":false,\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},{\"columnId\":\"b718099c-427c-4132-95e5-660deafe078c\",\"isTransposed\":false},{\"columnId\":\"54346d91-c191-4452-a917-df1c036d9795\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":188.61904761904765},{\"columnId\":\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":196.21904761904761},{\"columnId\":\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":217.71904761904761},{\"columnId\":\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"21cf6cf3-6399-4b45-8e70-849aa6623d06\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"21cf6cf3-6399-4b45-8e70-849aa6623d06\":{\"columns\":{\"0f5c4a52-d271-4328-95b6-6c69453180bc\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52e60488-e5d3-40c2-80a0-07344374be6d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"b718099c-427c-4132-95e5-660deafe078c\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"54346d91-c191-4452-a917-df1c036d9795\":{\"label\":\"Cores\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\":{\"label\":\"Processors\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"eba3a044-1b3b-4a95-85a1-b16eda075894\":{\"label\":\"Speed GHZ\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"1d0ad394-868c-4a94-984b-20325b2e1304\":{\"label\":\"Virtualization Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.virtualization_firmware_enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\":{\"label\":\"Family\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.family\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\":{\"label\":\"Clock Speed\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"b718099c-427c-4132-95e5-660deafe078c\",\"54346d91-c191-4452-a917-df1c036d9795\",\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"52e60488-e5d3-40c2-80a0-07344374be6d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"System CPU\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":6,\"h\":6,\"i\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\"},\"panelIndex\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#CB4848\",\"stop\":4}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#CB4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\":{\"label\":\"Failing Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"69270630-ea7e-41db-a897-69da6ff72cdf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Vulnerabilities for this endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":13,\"w\":42,\"h\":7,\"i\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\"},\"panelIndex\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2\"}],\"state\":{\"visualization\":{\"layerId\":\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"alignment\":\"center\"},{\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"85ee823b-6334-4687-ab5f-43570c69996c\",\"isTransposed\":false},{\"columnId\":\"ab0584bf-ccba-47f9-8185-655880391447\",\"isTransposed\":false,\"width\":118.66666666666663,\"alignment\":\"center\"},{\"columnId\":\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":156.66666666666669},{\"columnId\":\"697b46cb-1d88-49da-9761-25a974891b4a\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\":{\"columns\":{\"359f23a5-abc4-4204-bbf3-16951a7c5d72\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"34e5c607-4963-4388-a2d1-5c925ff7ea54\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"85ee823b-6334-4687-ab5f-43570c69996c\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab0584bf-ccba-47f9-8185-655880391447\":{\"label\":\"DHCP\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f3863ce5-8d01-4f5e-a42b-137410f47c41\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52fb95cb-0446-4db0-93d7-d79a7fea0344\":{\"label\":\"Vitual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"697b46cb-1d88-49da-9761-25a974891b4a\":{\"label\":\"Connected SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"85ee823b-6334-4687-ab5f-43570c69996c\",\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"ab0584bf-ccba-47f9-8185-655880391447\",\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"697b46cb-1d88-49da-9761-25a974891b4a\",\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Network Cards Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Network Adapters\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":19,\"w\":6,\"h\":6,\"i\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\"},\"panelIndex\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cb4848\",\"stop\":64}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#cb4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\":{\"label\":\"Failed High SCAP\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" and rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5726c30e-a24d-4b78-9d26-deb2771144bd\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Hosts Benchmark Data\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":20,\"w\":42,\"h\":7,\"i\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\"},\"panelIndex\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"2e01df65-7787-4e15-86e3-a45eed285033\"},{\"isTransposed\":false,\"columnId\":\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\"},{\"columnId\":\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"isTransposed\":false},{\"columnId\":\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\":{\"columns\":{\"2e01df65-7787-4e15-86e3-a45eed285033\":{\"label\":\"Percent Full\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\":{\"label\":\"Drive\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\":{\"label\":\"Total Size\",\"dataType\":\"string\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ordinal\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"37ea1f0a-2f23-4435-9866-6d11677ca86b\":{\"label\":\"Freespace\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.freespace\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\",\"2e01df65-7787-4e15-86e3-a45eed285033\",\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"97fe566e-2647-47dc-a6fb-ccbbc69f8985\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Volumes and Drives for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Volumes \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":6,\"h\":7,\"i\":\"9b009011-6f72-4379-a69b-21e6feedfce7\"},\"panelIndex\":\"9b009011-6f72-4379-a69b-21e6feedfce7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd\"}],\"state\":{\"visualization\":{\"layerId\":\"4ac1c77b-306c-4a94-b080-f204193d6efd\",\"layerType\":\"data\",\"metricAccessor\":\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"maxAccessor\":\"00b8ad38-df28-49ec-a473-348fd0305876\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#d6bf57\",\"stop\":4},{\"color\":\"#cc5642\",\"stop\":14}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":4}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4ac1c77b-306c-4a94-b080-f204193d6efd\":{\"columns\":{\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.virtualizationbasedsecurity.status:Off\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.secureboot.available:false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.ueficodereadonly.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.ufi.enabled: false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"location\":{\"min\":0,\"max\":1030},\"text\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\"}},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\":{\"label\":\"Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\",\"isFormulaBroken\":false},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"customLabel\":true},\"00b8ad38-df28-49ec-a473-348fd0305876\":{\"label\":\"Static value: 15\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"15\"},\"references\":[]}},\"columnOrder\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"00b8ad38-df28-49ec-a473-348fd0305876\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"c3bbd434-5b28-4d1a-8013-b1553f622b22\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":27,\"w\":42,\"h\":5,\"i\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\"},\"panelIndex\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"isTransposed\":false},{\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"isTransposed\":false},{\"columnId\":\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"isTransposed\":false},{\"columnId\":\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"isTransposed\":false}],\"layerId\":\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\":{\"columns\":{\"7652d41d-2e97-48fd-93e2-e824d0429eb7\":{\"label\":\"AntiVirus Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6f018424-e6a2-4360-be1e-df25d68727f5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\":{\"label\":\"AV Exists\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.exists\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"795022df-3834-4ba5-b1a4-b747e4da1e2a\":{\"label\":\"State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.state\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c984f83e-d094-47ea-87d2-3dcd7154ae37\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"6f018424-e6a2-4360-be1e-df25d68727f5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e7f01244-f435-4359-ab17-7faca8d78f98\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Antivirus Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":32,\"w\":48,\"h\":4,\"i\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\"},\"panelIndex\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"isTransposed\":false},{\"columnId\":\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"isTransposed\":false},{\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"isTransposed\":false},{\"columnId\":\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\",\"isTransposed\":false},{\"columnId\":\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"isTransposed\":false,\"width\":695}],\"layerId\":\"ee0f709e-2211-41d5-afc0-086b3eb4d692\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ee0f709e-2211-41d5-afc0-086b3eb4d692\":{\"columns\":{\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\":{\"label\":\"TYCHON Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.agent\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\":{\"label\":\"Content Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.content\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\":{\"label\":\"OVAL Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.oval\",\"filter\":{\"query\":\"tychon.definition.oval: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\":{\"label\":\"SCAP Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.stig\",\"filter\":{\"query\":\"tychon.definition.stig: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"f80b87d6-0e6b-4489-863b-0164f889b4e6\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TYCHON Agentless Info\"},{\"version\":\"8.6.2\",\"type\":\"LOG_STREAM_EMBEDDABLE\",\"gridData\":{\"x\":0,\"y\":36,\"w\":48,\"h\":17,\"i\":\"649e620d-4cf9-4c17-978b-113e3df64c46\"},\"panelIndex\":\"649e620d-4cf9-4c17-978b-113e3df64c46\",\"embeddableConfig\":{\"enhancements\":{}},\"title\":\"Log stream\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Host Information", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-24T15:35:21.428Z", - "id": "tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d:panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d", - "type": "visualization" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "a5029f8a-476b-4375-bb7a-d60889ade8a4:metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern", - "type": "index-pattern" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "8ecc8919-ac6e-4281-a356-05f552ccf10f:indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212", - "type": "index-pattern" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "fd21cc47-2ac3-4a88-8598-c458a47d1e90:indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "7412b1ca-0c47-4905-aa6a-474686887f76:indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", - "type": "index-pattern" - }, - { - "id": "2de7a3c0-3e08-11ee-9610-15dee918f31a", - "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:69270630-ea7e-41db-a897-69da6ff72cdf:dashboardId", - "type": "dashboard" - }, - { - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2", - "type": "index-pattern" - }, - { - "id": "1af57010-41b6-11ee-83e4-c92ed141b9e5", - "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b:dashboardId", - "type": "dashboard" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", - "type": "index-pattern" - }, - { - "id": "e1c9c490-41a5-11ee-83e4-c92ed141b9e5", - "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5726c30e-a24d-4b78-9d26-deb2771144bd:dashboardId", - "type": "dashboard" - }, - { - "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d", - "type": "index-pattern" - }, - { - "id": "380b6c10-3dbd-11ee-9610-15dee918f31a", - "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:97fe566e-2647-47dc-a6fb-ccbbc69f8985:dashboardId", - "type": "dashboard" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "9b009011-6f72-4379-a69b-21e6feedfce7:indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "9b009011-6f72-4379-a69b-21e6feedfce7:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:c3bbd434-5b28-4d1a-8013-b1553f622b22:dashboardId", - "type": "dashboard" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0", - "type": "index-pattern" - }, - { - "id": "b85e87c0-41ab-11ee-83e4-c92ed141b9e5", - "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e7f01244-f435-4359-ab17-7faca8d78f98:dashboardId", - "type": "dashboard" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2:indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-24T15:35:21.428Z", - "version": "WzgzMzgzMywyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Host Information view displays overall Operating System data and summary information from its subordinate datasets (disks, drives, vulnerabilities, benchmarks, etc.).", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":true,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},\"panelIndex\":\"2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":10,\"i\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\"},\"panelIndex\":\"a5029f8a-476b-4375-bb7a-d60889ade8a4\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"92d62e85-e917-436d-b8d3-f69df24ed02b\",\"type\":\"markdown\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"5c94a663-8135-4c09-acdf-a8e828c62ef4\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"2f2e4338-bd68-4176-966b-1f6aae9574e6\",\"type\":\"top_hit\",\"field\":\"host.os.name\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osname\",\"var_name\":\"osname\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"f04dc8d0-4151-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"f04dc8d1-4151-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.architecture\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostarch\",\"var_name\":\"hostarch\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"07d09d20-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"07d09d21-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.kernel\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"hostkern\",\"var_name\":\"hostkern\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"24089510-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"24089511-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.version\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osver\",\"var_name\":\"osver\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"b292c170-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"b292c171-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.description\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osdesc\",\"var_name\":\"osdesc\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"d3de77c0-4152-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"d3de77c1-4152-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.edition\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osedition\",\"var_name\":\"osedition\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"230bf020-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"230bf021-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.organization\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osorg\",\"var_name\":\"osorg\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"3b35d9e0-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"3b35d9e1-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.platform\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osplatform\",\"var_name\":\"osplatform\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"82b7d200-4153-11ee-982a-2bb4f2d49090\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"order\":\"desc\",\"agg_with\":\"concat\",\"id\":\"82b7d201-4153-11ee-982a-2bb4f2d49090\",\"type\":\"top_hit\",\"field\":\"host.os.build\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"osbuild\",\"var_name\":\"osbuild\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"markdown\":\"**Platform:** {{ osplatform.osplatform.last.formatted }} \\\\\\r\\n**Operating System:** {{ osname.osname.last.formatted }} \\\\\\r\\n**Architecture:** {{ hostarch.hostarch.last.formatted }} \\\\\\r\\n**Kernel:** {{ hostkern.hostkern.last.formatted }} \\\\\\r\\n**Version:** {{ osver.osver.last.formatted }} \\\\\\r\\n**Build:** {{ osbuild.osbuild.last.formatted }} \\\\\\r\\n**Description:** {{ osdesc.osdesc.last.formatted }} \\\\\\r\\n**Edition:** {{ osedition.osedition.last.formatted }} \\\\\\r\\n**Organization:** {{ osorg.osorg.last.formatted }}\",\"index_pattern_ref_name\":\"metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"OS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":17,\"h\":5,\"i\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\"},\"panelIndex\":\"8ecc8919-ac6e-4281-a356-05f552ccf10f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212\"}],\"state\":{\"visualization\":{\"layerId\":\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\",\"hidden\":true},{\"columnId\":\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"isTransposed\":false},{\"columnId\":\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"isTransposed\":false},{\"columnId\":\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f4ed5a42-075e-4684-a82d-9b69f3ff5212\":{\"columns\":{\"5db71250-e4a6-4352-9841-60bda3bb3d61\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"5ed56c44-5133-41e1-a6b9-53625ce522d3\":{\"label\":\"BIOS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.name\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\":{\"label\":\"BIOS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.bios.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\":{\"label\":\"BIOS Serialnumber\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.biossn\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"5db71250-e4a6-4352-9841-60bda3bb3d61\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"5ed56c44-5133-41e1-a6b9-53625ce522d3\",\"18ea8a72-e8df-47b2-ad13-56ae22d6e75e\",\"6b659b27-bfc8-452e-b8f9-3893e43a24ab\",\"5db71250-e4a6-4352-9841-60bda3bb3d61\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host BIOS Information\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":3,\"w\":25,\"h\":5,\"i\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\"},\"panelIndex\":\"fd21cc47-2ac3-4a88-8598-c458a47d1e90\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\"},{\"isTransposed\":false,\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\",\"hidden\":true},{\"columnId\":\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"isTransposed\":false},{\"columnId\":\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"isTransposed\":false},{\"columnId\":\"074126a4-578b-4f8d-85df-0a460025e011\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"596cb7b8-af7b-40db-affa-e7591c0165be\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"596cb7b8-af7b-40db-affa-e7591c0165be\":{\"columns\":{\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\":{\"label\":\"System Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f437a99-d536-4931-ae23-18509767b878\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\":{\"label\":\"Owner\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.owner\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b9936688-2921-4cc7-b058-e0fc26c376ec\":{\"label\":\"Serial Number\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.serial_number\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"074126a4-578b-4f8d-85df-0a460025e011\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0f437a99-d536-4931-ae23-18509767b878\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"703fc954-3aab-4cea-b5b5-ec2b68e311bb\",\"84fbf0d5-cd51-41c0-a7c7-6072fd807f0b\",\"b9936688-2921-4cc7-b058-e0fc26c376ec\",\"074126a4-578b-4f8d-85df-0a460025e011\",\"0f437a99-d536-4931-ae23-18509767b878\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Computer Info\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":8,\"w\":42,\"h\":5,\"i\":\"7412b1ca-0c47-4905-aa6a-474686887f76\"},\"panelIndex\":\"7412b1ca-0c47-4905-aa6a-474686887f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"width\":387.2857142857143},{\"isTransposed\":false,\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},{\"columnId\":\"b718099c-427c-4132-95e5-660deafe078c\",\"isTransposed\":false},{\"columnId\":\"54346d91-c191-4452-a917-df1c036d9795\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":188.61904761904765},{\"columnId\":\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":196.21904761904761},{\"columnId\":\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":217.71904761904761},{\"columnId\":\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"21cf6cf3-6399-4b45-8e70-849aa6623d06\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"21cf6cf3-6399-4b45-8e70-849aa6623d06\":{\"columns\":{\"0f5c4a52-d271-4328-95b6-6c69453180bc\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52e60488-e5d3-40c2-80a0-07344374be6d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"b718099c-427c-4132-95e5-660deafe078c\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"54346d91-c191-4452-a917-df1c036d9795\":{\"label\":\"Cores\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\":{\"label\":\"Processors\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"eba3a044-1b3b-4a95-85a1-b16eda075894\":{\"label\":\"Speed GHZ\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true},\"1d0ad394-868c-4a94-984b-20325b2e1304\":{\"label\":\"Virtualization Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.virtualization_firmware_enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\":{\"label\":\"Family\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.family\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"52e60488-e5d3-40c2-80a0-07344374be6d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\":{\"label\":\"Clock Speed\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"0f5c4a52-d271-4328-95b6-6c69453180bc\",\"b718099c-427c-4132-95e5-660deafe078c\",\"54346d91-c191-4452-a917-df1c036d9795\",\"0d7c7fc3-2b87-4d1b-9032-2a962327b5b6\",\"eba3a044-1b3b-4a95-85a1-b16eda075894\",\"fa120ad2-0f99-4d28-bc0d-e387ad82614b\",\"1d0ad394-868c-4a94-984b-20325b2e1304\",\"18b6d48d-b1d6-4d14-8f46-f7132ab3ecff\",\"52e60488-e5d3-40c2-80a0-07344374be6d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"System CPU\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":6,\"h\":6,\"i\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\"},\"panelIndex\":\"88c54662-3d8e-4484-9bad-ab4d1aac4ffc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#CB4848\",\"stop\":4}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#CB4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\":{\"label\":\"Failing Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"0e0ad3dc-89f4-471c-bf9c-55e1fa0cc457\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"69270630-ea7e-41db-a897-69da6ff72cdf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Vulnerabilities for this endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":13,\"w\":42,\"h\":7,\"i\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\"},\"panelIndex\":\"5ba071e0-cef6-4e8f-b34a-11b1cc806714\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"e886429e-9532-4f44-bb36-6465fe760866\",\"name\":\"indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2\"}],\"state\":{\"visualization\":{\"layerId\":\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"alignment\":\"center\"},{\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"85ee823b-6334-4687-ab5f-43570c69996c\",\"isTransposed\":false},{\"columnId\":\"ab0584bf-ccba-47f9-8185-655880391447\",\"isTransposed\":false,\"width\":118.66666666666663,\"alignment\":\"center\"},{\"columnId\":\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":156.66666666666669},{\"columnId\":\"697b46cb-1d88-49da-9761-25a974891b4a\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"56f3ea8a-a52d-462c-a5d6-2446d6826ad2\":{\"columns\":{\"359f23a5-abc4-4204-bbf3-16951a7c5d72\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.ip\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"34e5c607-4963-4388-a2d1-5c925ff7ea54\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"85ee823b-6334-4687-ab5f-43570c69996c\":{\"label\":\"Alias\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.alias\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab0584bf-ccba-47f9-8185-655880391447\":{\"label\":\"DHCP\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.dhcp.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\":{\"label\":\"Gateway\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.gateway\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f3863ce5-8d01-4f5e-a42b-137410f47c41\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.mac\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"52fb95cb-0446-4db0-93d7-d79a7fea0344\":{\"label\":\"Vitual\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.virtual\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"697b46cb-1d88-49da-9761-25a974891b4a\":{\"label\":\"Connected SSID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.adapter.wifi.ssid\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"85ee823b-6334-4687-ab5f-43570c69996c\",\"359f23a5-abc4-4204-bbf3-16951a7c5d72\",\"ab0584bf-ccba-47f9-8185-655880391447\",\"99c6b2d5-c246-46a3-86dd-55d9e30491fd\",\"f3863ce5-8d01-4f5e-a42b-137410f47c41\",\"52fb95cb-0446-4db0-93d7-d79a7fea0344\",\"697b46cb-1d88-49da-9761-25a974891b4a\",\"34e5c607-4963-4388-a2d1-5c925ff7ea54\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Network Cards Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Network Adapters\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":19,\"w\":6,\"h\":6,\"i\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\"},\"panelIndex\":\"d64e1165-e5d6-46d2-abb9-e4315e238f9e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707\"}],\"state\":{\"visualization\":{\"layerId\":\"72f117b5-7ab9-41e7-a1f4-423f8b423707\",\"accessor\":\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cb4848\",\"stop\":64}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#cb4848\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}},\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"72f117b5-7ab9-41e7-a1f4-423f8b423707\":{\"columns\":{\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\":{\"label\":\"Failed High SCAP\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" and rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"42fcfbaf-a528-4d05-8486-2bbf3a01d173\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5726c30e-a24d-4b78-9d26-deb2771144bd\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Hosts Benchmark Data\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":20,\"w\":42,\"h\":7,\"i\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\"},\"panelIndex\":\"0a48a778-6cb1-44c3-89b8-76d6169e29a8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"62456a9a-bd4c-4b57-b6b5-5556b6869ce5\",\"name\":\"indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"2e01df65-7787-4e15-86e3-a45eed285033\"},{\"isTransposed\":false,\"columnId\":\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\"},{\"columnId\":\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"isTransposed\":false},{\"columnId\":\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7fbad8bf-b2fd-44ee-b47b-5b2260b8498d\":{\"columns\":{\"2e01df65-7787-4e15-86e3-a45eed285033\":{\"label\":\"Percent Full\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.percent_full\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\":{\"label\":\"Drive\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.drive.letter\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\":{\"label\":\"Total Size\",\"dataType\":\"string\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ordinal\",\"sourceField\":\"volume.size\",\"filter\":{\"query\":\"volume.size: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"37ea1f0a-2f23-4435-9866-6d11677ca86b\":{\"label\":\"Freespace\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"volume.freespace\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d65a1a00-5ae8-443b-82bc-62dce81f7ac5\",\"2e01df65-7787-4e15-86e3-a45eed285033\",\"ed56a46c-f9da-4d58-b0f3-06e0ecc264ef\",\"37ea1f0a-2f23-4435-9866-6d11677ca86b\",\"d5c5e6ac-d61c-4bf2-94de-62b85d9e945a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"97fe566e-2647-47dc-a6fb-ccbbc69f8985\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Volumes and Drives for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Volumes \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":6,\"h\":7,\"i\":\"9b009011-6f72-4379-a69b-21e6feedfce7\"},\"panelIndex\":\"9b009011-6f72-4379-a69b-21e6feedfce7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd\"}],\"state\":{\"visualization\":{\"layerId\":\"4ac1c77b-306c-4a94-b080-f204193d6efd\",\"layerType\":\"data\",\"metricAccessor\":\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"maxAccessor\":\"00b8ad38-df28-49ec-a473-348fd0305876\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#d6bf57\",\"stop\":4},{\"color\":\"#cc5642\",\"stop\":14}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":4}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4ac1c77b-306c-4a94-b080-f204193d6efd\":{\"columns\":{\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.credentialguard.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.virtualizationbasedsecurity.status:Off\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.secureboot.available:false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running: false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.ueficodereadonly.available : false\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.ufi.enabled: false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\":{\"label\":\"Part of Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[{\"type\":\"function\",\"name\":\"add\",\"args\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\"]},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"location\":{\"min\":0,\"max\":1030},\"text\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\"}},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\"],\"customLabel\":true},\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\":{\"label\":\"Virtualization Security Features Disabled\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='event.deviceguard.credentialguard.enabled : false ')+\\r\\ncount(kql='event.deviceguard.credentialguard.running: false')+\\r\\ncount(kql='event.deviceguard.virtualizationbasedsecurity.status:Off')+\\r\\ncount(kql='event.deviceguard.basevirtualizationsupport.available : false')+\\r\\ncount(kql='event.deviceguard.dmaprotection.available : false ')+\\r\\ncount(kql='event.deviceguard.secureboot.available:false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.enabled: false')+\\r\\ncount(kql='event.deviceguard.hypervisorenforcedcodeint.running: false')+\\r\\ncount(kql='event.deviceguard.securememoverwrite.available : false')+\\r\\ncount(kql='event.deviceguard.smmsecuritymigrations.available : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.enabled : false')+\\r\\ncount(kql='event.deviceguard.systemguardsecurelaunch.running : false')+\\r\\ncount(kql='event.deviceguard.ueficodereadonly.available : false')+\\r\\ncount(kql='event.deviceguard.usermodecodeintegrity.policyenforcement: \\\"Off\\\" ')+\\r\\ncount(kql='event.ufi.enabled: false ')\",\"isFormulaBroken\":false},\"references\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"customLabel\":true},\"00b8ad38-df28-49ec-a473-348fd0305876\":{\"label\":\"Static value: 15\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"15\"},\"references\":[]}},\"columnOrder\":[\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X0\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X1\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X2\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X3\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X4\",\"00b8ad38-df28-49ec-a473-348fd0305876\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X5\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X6\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X7\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X8\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X9\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X10\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X11\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X12\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X13\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X14\",\"2bcd5106-f375-4a03-bb55-a5b2ecfcd869X15\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"c3bbd434-5b28-4d1a-8013-b1553f622b22\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":27,\"w\":42,\"h\":5,\"i\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\"},\"panelIndex\":\"58ca195d-92a8-4a9d-bd11-1954002c8693\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"isTransposed\":false},{\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"isTransposed\":false},{\"columnId\":\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"isTransposed\":false},{\"columnId\":\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"isTransposed\":false}],\"layerId\":\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bae2bbb2-5c2c-406b-8deb-d02970643aa0\":{\"columns\":{\"7652d41d-2e97-48fd-93e2-e824d0429eb7\":{\"label\":\"AntiVirus Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6f018424-e6a2-4360-be1e-df25d68727f5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\":{\"label\":\"AV Exists\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.exists\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"795022df-3834-4ba5-b1a4-b747e4da1e2a\":{\"label\":\"State\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.state\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c984f83e-d094-47ea-87d2-3dcd7154ae37\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.security.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6f018424-e6a2-4360-be1e-df25d68727f5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"936ad955-bf89-4c25-908d-d8d4e1e71bb0\",\"7652d41d-2e97-48fd-93e2-e824d0429eb7\",\"795022df-3834-4ba5-b1a4-b747e4da1e2a\",\"c984f83e-d094-47ea-87d2-3dcd7154ae37\",\"6f018424-e6a2-4360-be1e-df25d68727f5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e7f01244-f435-4359-ab17-7faca8d78f98\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Protection Status for Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Antivirus Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":32,\"w\":48,\"h\":4,\"i\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\"},\"panelIndex\":\"5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"isTransposed\":false},{\"columnId\":\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"isTransposed\":false},{\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"isTransposed\":false},{\"columnId\":\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\",\"isTransposed\":false},{\"columnId\":\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"isTransposed\":false,\"width\":695}],\"layerId\":\"ee0f709e-2211-41d5-afc0-086b3eb4d692\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ee0f709e-2211-41d5-afc0-086b3eb4d692\":{\"columns\":{\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\":{\"label\":\"TYCHON Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.agent\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\":{\"label\":\"Content Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.version.content\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\":{\"label\":\"OVAL Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.oval\",\"filter\":{\"query\":\"tychon.definition.oval: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\":{\"label\":\"SCAP Def Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"tychon.definition.stig\",\"filter\":{\"query\":\"tychon.definition.stig: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"f80b87d6-0e6b-4489-863b-0164f889b4e6\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"tychon.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"f80b87d6-0e6b-4489-863b-0164f889b4e6\",\"4bae6e8b-82e3-4e86-b8cc-017cd41c4cdc\",\"6d563e2d-f0dd-40fc-b9c4-c003f69b6fd7\",\"be8ac2ad-1ff9-4123-9ca6-ab95e7b1a50f\",\"41f62f4c-295f-424b-b44f-452ed3b0dcd0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TYCHON Agentless Info\"},{\"version\":\"8.6.2\",\"type\":\"LOG_STREAM_EMBEDDABLE\",\"gridData\":{\"x\":0,\"y\":36,\"w\":48,\"h\":17,\"i\":\"649e620d-4cf9-4c17-978b-113e3df64c46\"},\"panelIndex\":\"649e620d-4cf9-4c17-978b-113e3df64c46\",\"embeddableConfig\":{\"enhancements\":{}},\"title\":\"Log stream\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Host Information", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-24T15:35:21.428Z", + "id": "tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d:panel_2d1446f2-6aee-4a7c-84e2-aeffa6c5cf9d", + "type": "visualization" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "a5029f8a-476b-4375-bb7a-d60889ade8a4:metrics_a5029f8a-476b-4375-bb7a-d60889ade8a4_0_index_pattern", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "8ecc8919-ac6e-4281-a356-05f552ccf10f:indexpattern-datasource-layer-f4ed5a42-075e-4684-a82d-9b69f3ff5212", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "fd21cc47-2ac3-4a88-8598-c458a47d1e90:indexpattern-datasource-layer-596cb7b8-af7b-40db-affa-e7591c0165be", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "7412b1ca-0c47-4905-aa6a-474686887f76:indexpattern-datasource-layer-21cf6cf3-6399-4b45-8e70-849aa6623d06", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", + "type": "index-pattern" + }, + { + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "name": "88c54662-3d8e-4484-9bad-ab4d1aac4ffc:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:69270630-ea7e-41db-a897-69da6ff72cdf:dashboardId", + "type": "dashboard" + }, + { + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:indexpattern-datasource-layer-56f3ea8a-a52d-462c-a5d6-2446d6826ad2", + "type": "index-pattern" + }, + { + "id": "tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter", + "name": "5ba071e0-cef6-4e8f-b34a-11b1cc806714:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:601d0e2a-08ac-4442-bbfc-fdfb6ed68c0b:dashboardId", + "type": "dashboard" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:indexpattern-datasource-layer-72f117b5-7ab9-41e7-a1f4-423f8b423707", + "type": "index-pattern" + }, + { + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "name": "d64e1165-e5d6-46d2-abb9-e4315e238f9e:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5726c30e-a24d-4b78-9d26-deb2771144bd:dashboardId", + "type": "dashboard" + }, + { + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:indexpattern-datasource-layer-7fbad8bf-b2fd-44ee-b47b-5b2260b8498d", + "type": "index-pattern" + }, + { + "id": "tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive", + "name": "0a48a778-6cb1-44c3-89b8-76d6169e29a8:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:97fe566e-2647-47dc-a6fb-ccbbc69f8985:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "9b009011-6f72-4379-a69b-21e6feedfce7:indexpattern-datasource-layer-4ac1c77b-306c-4a94-b080-f204193d6efd", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "9b009011-6f72-4379-a69b-21e6feedfce7:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:c3bbd434-5b28-4d1a-8013-b1553f622b22:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:indexpattern-datasource-layer-bae2bbb2-5c2c-406b-8deb-d02970643aa0", + "type": "index-pattern" + }, + { + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "name": "58ca195d-92a8-4a9d-bd11-1954002c8693:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e7f01244-f435-4359-ab17-7faca8d78f98:dashboardId", + "type": "dashboard" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "5a0cbef6-cb66-4850-8dd1-4fc4f81ddaf2:indexpattern-datasource-layer-ee0f709e-2211-41d5-afc0-086b3eb4d692", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_374dee3b-0adb-43f7-87d4-a8b9c1c9c1c5:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-24T15:35:21.428Z", + "version": "WzgzMzgzMywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json index 41b79921281..b2c80ce9a71 100644 --- a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json @@ -1,176 +1,176 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\":{\"order\":0,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.ip\",\"title\":\"Host IP:\",\"id\":\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\",\"enhancements\":{}}},\"1b36863c-a2c8-4696-b534-12cebeca49d1\":{\"order\":2,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.id\",\"title\":\"CVE ID\",\"id\":\"1b36863c-a2c8-4696-b534-12cebeca49d1\",\"enhancements\":{}}},\"67760ce6-5bda-4c39-8960-45439ff4d45b\":{\"order\":3,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.iava\",\"title\":\"IAVA ID:\",\"id\":\"67760ce6-5bda-4c39-8960-45439ff4d45b\",\"enhancements\":{}}},\"9c746f36-33ae-4b53-bb32-7153abb17ba4\":{\"order\":1,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.mac\",\"title\":\"MAC Address\",\"id\":\"9c746f36-33ae-4b53-bb32-7153abb17ba4\",\"enhancements\":{}}},\"db910041-b09f-4b02-b3fe-70c3db05ff62\":{\"order\":4,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.os.name\",\"title\":\"Operating System\",\"id\":\"db910041-b09f-4b02-b3fe-70c3db05ff62\",\"enhancements\":{}}}}" - }, - "description": "TYCHON scans vulnerabilities on every endpoint, it has thousands of checks and leverages the OVAL standard to determine if a CVE applies to an endpoint. TYCHON updates scan results for failed vulnerabilities every hour and performs full vulnerability checks at every reboot of a computer. The results and findings display in this dashboard.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"vulnerability.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Monitored CVE Count\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Host Monitored\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":11,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":11,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] - Vulnerability Dashboard", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:54:42.361Z", - "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "886b38ad-89f2-4800-ae61-61bcdb4e3b07:indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:684eca00-cba8-4853-a931-4e9d535efaec", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:044d8cc9-a39b-4007-94e6-d34fd9dc0970", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:27d89493-bc6a-4979-a35a-59a5983c3d4c", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:28b051dd-fb8d-449a-b21a-2d70308979bb", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "5dc1ffd0-8ed6-4d64-975b-7522c194ea8c:indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "c83f05f4-47e2-4b2d-a359-c8ab8ac09e88:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ab52ed71-894c-466e-b53f-7f0dec7852be:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "35429b34-65a5-4af0-99b6-b9980cdc13ba:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ec9edb3d-0069-489a-94a7-c7ee626b9f76:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "f4148e30-8031-419e-aafc-375334eb93bb:indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "26748b80-0759-4316-b554-d2309ea63ce6:indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_a8ba17fc-ba2f-4329-95f5-e4d645c5ae59:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_1b36863c-a2c8-4696-b534-12cebeca49d1:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_67760ce6-5bda-4c39-8960-45439ff4d45b:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_9c746f36-33ae-4b53-bb32-7153abb17ba4:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_db910041-b09f-4b02-b3fe-70c3db05ff62:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "9c222660-1100-11ee-af86-538da1394f27", - "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:54:42.361Z", - "version": "WzgyMTY2MSwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\":{\"order\":0,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.ip\",\"title\":\"Host IP:\",\"id\":\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\",\"enhancements\":{}}},\"1b36863c-a2c8-4696-b534-12cebeca49d1\":{\"order\":2,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.id\",\"title\":\"CVE ID\",\"id\":\"1b36863c-a2c8-4696-b534-12cebeca49d1\",\"enhancements\":{}}},\"67760ce6-5bda-4c39-8960-45439ff4d45b\":{\"order\":3,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.iava\",\"title\":\"IAVA ID:\",\"id\":\"67760ce6-5bda-4c39-8960-45439ff4d45b\",\"enhancements\":{}}},\"9c746f36-33ae-4b53-bb32-7153abb17ba4\":{\"order\":1,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.mac\",\"title\":\"MAC Address\",\"id\":\"9c746f36-33ae-4b53-bb32-7153abb17ba4\",\"enhancements\":{}}},\"db910041-b09f-4b02-b3fe-70c3db05ff62\":{\"order\":4,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.os.name\",\"title\":\"Operating System\",\"id\":\"db910041-b09f-4b02-b3fe-70c3db05ff62\",\"enhancements\":{}}}}" + }, + "description": "TYCHON scans vulnerabilities on every endpoint, it has thousands of checks and leverages the OVAL standard to determine if a CVE applies to an endpoint. TYCHON updates scan results for failed vulnerabilities every hour and performs full vulnerability checks at every reboot of a computer. The results and findings display in this dashboard.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"vulnerability.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Monitored CVE Count\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Host Monitored\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":11,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":11,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] - Vulnerability Dashboard", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:54:42.361Z", + "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "886b38ad-89f2-4800-ae61-61bcdb4e3b07:indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:684eca00-cba8-4853-a931-4e9d535efaec", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:044d8cc9-a39b-4007-94e6-d34fd9dc0970", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "27499756-536c-4e62-b081-addbffdff28d:27d89493-bc6a-4979-a35a-59a5983c3d4c", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:28b051dd-fb8d-449a-b21a-2d70308979bb", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "5dc1ffd0-8ed6-4d64-975b-7522c194ea8c:indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "c83f05f4-47e2-4b2d-a359-c8ab8ac09e88:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ab52ed71-894c-466e-b53f-7f0dec7852be:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "35429b34-65a5-4af0-99b6-b9980cdc13ba:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "ec9edb3d-0069-489a-94a7-c7ee626b9f76:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "f4148e30-8031-419e-aafc-375334eb93bb:indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "26748b80-0759-4316-b554-d2309ea63ce6:indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_a8ba17fc-ba2f-4329-95f5-e4d645c5ae59:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_1b36863c-a2c8-4696-b534-12cebeca49d1:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_67760ce6-5bda-4c39-8960-45439ff4d45b:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_9c746f36-33ae-4b53-bb32-7153abb17ba4:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "controlGroup_db910041-b09f-4b02-b3fe-70c3db05ff62:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:54:42.361Z", + "version": "WzgyMTY2MSwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json index 64260f4cb01..1a7d118acd1 100644 --- a/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json +++ b/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json @@ -1,100 +1,100 @@ { - "attributes": { - "description": "TYCHON collects information about hard drives and volumes attached to computers.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":28,\"h\":27,\"i\":\"b5ddabd8-3016-4232-b28b-06d714106a89\"},\"panelIndex\":\"b5ddabd8-3016-4232-b28b-06d714106a89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\"},{\"isTransposed\":false,\"columnId\":\"aebe1da3-7bee-43ec-8a75-a8be55373d20\"},{\"isTransposed\":false,\"columnId\":\"040edfd5-86a3-4298-9068-e97f6828acc2\"},{\"isTransposed\":false,\"columnId\":\"317c7190-beca-4bee-80ad-791840ec4b41\"},{\"isTransposed\":false,\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"}],\"layerId\":\"221c8cb0-1779-45ef-8d12-3923317e3366\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"221c8cb0-1779-45ef-8d12-3923317e3366\":{\"columns\":{\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aebe1da3-7bee-43ec-8a75-a8be55373d20\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"040edfd5-86a3-4298-9068-e97f6828acc2\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"317c7190-beca-4bee-80ad-791840ec4b41\":{\"label\":\"Partition Style\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.partition_style\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\",\"aebe1da3-7bee-43ec-8a75-a8be55373d20\",\"040edfd5-86a3-4298-9068-e97f6828acc2\",\"317c7190-beca-4bee-80ad-791840ec4b41\",\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Physical Disks\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":0,\"w\":13,\"h\":17,\"i\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\"},\"panelIndex\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e\"}],\"state\":{\"visualization\":{\"layerId\":\"002038df-af67-4b41-9b1c-06b855c4713e\",\"layerType\":\"data\",\"metricAccessor\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\",\"breakdownByAccessor\":\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"maxCols\":2},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"002038df-af67-4b41-9b1c-06b855c4713e\":{\"columns\":{\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9dffdf45-9da5-41d1-8c37-437e1d70306e\":{\"label\":\"Top 10 values of host.hardware.manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Avg Disk Size by Manufacturer\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":17,\"i\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\"},\"panelIndex\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd\"}],\"state\":{\"visualization\":{\"layerId\":\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\",\"layerType\":\"data\",\"metricAccessor\":\"6d005070-a8da-48b0-b946-da89fbabd90e\",\"breakdownByAccessor\":\"d990970c-7e22-4928-805b-18a6962b6799\",\"color\":\"#ededed\",\"maxCols\":1,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\":{\"columns\":{\"6d005070-a8da-48b0-b946-da89fbabd90e\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"d990970c-7e22-4928-805b-18a6962b6799\":{\"label\":\"Operating System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.platform\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6d005070-a8da-48b0-b946-da89fbabd90e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d990970c-7e22-4928-805b-18a6962b6799\",\"6d005070-a8da-48b0-b946-da89fbabd90e\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":17,\"w\":5,\"h\":23,\"i\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\"},\"panelIndex\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\":{\"columns\":{\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\":{\"label\":\"System Disk\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.system\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":17,\"w\":5,\"h\":23,\"i\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\"},\"panelIndex\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617\"}],\"state\":{\"visualization\":{\"layerId\":\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"986480e5-18b5-4695-85ce-5266db9d4f47\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\":{\"columns\":{\"986480e5-18b5-4695-85ce-5266db9d4f47\":{\"label\":\"Bootable Drive\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.boot_from\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"986480e5-18b5-4695-85ce-5266db9d4f47\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":38,\"y\":17,\"w\":5,\"h\":23,\"i\":\"d401251f-ad81-4c51-9844-f7b09319b927\"},\"panelIndex\":\"d401251f-ad81-4c51-9844-f7b09319b927\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0\"}],\"state\":{\"visualization\":{\"layerId\":\"e8b77360-a165-4a1b-8178-1269a1ddcce0\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"838e1571-1035-4b70-be49-400aec480639\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e8b77360-a165-4a1b-8178-1269a1ddcce0\":{\"columns\":{\"838e1571-1035-4b70-be49-400aec480639\":{\"label\":\"Clustered\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.clustered\",\"isBucketed\":false,\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}},\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"838e1571-1035-4b70-be49-400aec480639\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":17,\"w\":5,\"h\":23,\"i\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\"},\"panelIndex\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8\"}],\"state\":{\"visualization\":{\"layerId\":\"9c59f356-6617-4fb4-8d1d-0a31def292f8\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33},{\"color\":\"#7AABDA\",\"stop\":66.5},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33},{\"color\":\"#6092C0\",\"stop\":66.5}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"771f348e-4c25-4739-ab12-de837a5611fb\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9c59f356-6617-4fb4-8d1d-0a31def292f8\":{\"columns\":{\"771f348e-4c25-4739-ab12-de837a5611fb\":{\"label\":\"Highly Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.highly_available\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"771f348e-4c25-4739-ab12-de837a5611fb\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":27,\"w\":10,\"h\":13,\"i\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\"},\"panelIndex\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"f62528d5-75c0-4261-a0e4-b78884ac618b\",\"primaryGroups\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\"],\"metrics\":[\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f62528d5-75c0-4261-a0e4-b78884ac618b\":{\"columns\":{\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\":{\"label\":\"Top 5 values of disk.health_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\",\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Overall drive health\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":10,\"y\":27,\"w\":10,\"h\":13,\"i\":\"452aa111-8e0c-4403-9c94-3602ec607617\"},\"panelIndex\":\"452aa111-8e0c-4403-9c94-3602ec607617\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\",\"primaryGroups\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\"],\"metrics\":[\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"numberDisplay\":\"hidden\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\":{\"columns\":{\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"94813be9-4122-4d2d-a449-f24cc8a62167\":{\"label\":\"Top 2 values of disk.offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\",\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Offline\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":27,\"w\":8,\"h\":13,\"i\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\"},\"panelIndex\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca\"}],\"state\":{\"visualization\":{\"layerId\":\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\",\"layerType\":\"data\",\"breakdownByAccessor\":\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"metricAccessor\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\",\"maxCols\":2,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\":{\"columns\":{\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\":{\"label\":\"Top 2 values of disk.operational_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.operational_status\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\":{\"label\":\"Count of Disks\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Host Drives", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T19:54:38.220Z", - "id": "tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "b5ddabd8-3016-4232-b28b-06d714106a89:indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "6859fbab-c985-4bfe-9100-8c5e5326021d:indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "cb0c8de2-4fd0-4911-9e61-adab9c11c090:indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "db1eb37d-8675-44d1-891a-9a8a7c2e8ade:indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "f85bb00e-3b05-48b5-a447-fb210ba95ff9:indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "d401251f-ad81-4c51-9844-f7b09319b927:indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "3d2627b6-09a8-41ff-8e43-9deb9125cf9b:indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "af88c038-d0f3-4189-acbc-4c61caca3bdb:indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "452aa111-8e0c-4403-9c94-3602ec607617:indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70", - "type": "index-pattern" - }, - { - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "name": "56fbe10e-dff8-4436-8a42-588b38208cfc:indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca", - "type": "index-pattern" - }, - { - "id": "7f851220-3d41-11ee-9610-15dee918f31a", - "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T19:54:38.220Z", - "version": "WzgxODg4MiwyMl0=" + "attributes": { + "description": "TYCHON collects information about hard drives and volumes attached to computers.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":28,\"h\":27,\"i\":\"b5ddabd8-3016-4232-b28b-06d714106a89\"},\"panelIndex\":\"b5ddabd8-3016-4232-b28b-06d714106a89\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\"},{\"isTransposed\":false,\"columnId\":\"aebe1da3-7bee-43ec-8a75-a8be55373d20\"},{\"isTransposed\":false,\"columnId\":\"040edfd5-86a3-4298-9068-e97f6828acc2\"},{\"isTransposed\":false,\"columnId\":\"317c7190-beca-4bee-80ad-791840ec4b41\"},{\"isTransposed\":false,\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"}],\"layerId\":\"221c8cb0-1779-45ef-8d12-3923317e3366\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"221c8cb0-1779-45ef-8d12-3923317e3366\":{\"columns\":{\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aebe1da3-7bee-43ec-8a75-a8be55373d20\":{\"label\":\"Model\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.model\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"040edfd5-86a3-4298-9068-e97f6828acc2\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"317c7190-beca-4bee-80ad-791840ec4b41\":{\"label\":\"Partition Style\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.partition_style\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"72a526ec-1d67-4606-a5ff-fecbe1b12ee6\",\"aebe1da3-7bee-43ec-8a75-a8be55373d20\",\"040edfd5-86a3-4298-9068-e97f6828acc2\",\"317c7190-beca-4bee-80ad-791840ec4b41\",\"82052aa7-a5b0-4b79-9d2e-7f8ccc5808cf\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Physical Disks\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":0,\"w\":13,\"h\":17,\"i\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\"},\"panelIndex\":\"6859fbab-c985-4bfe-9100-8c5e5326021d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e\"}],\"state\":{\"visualization\":{\"layerId\":\"002038df-af67-4b41-9b1c-06b855c4713e\",\"layerType\":\"data\",\"metricAccessor\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\",\"breakdownByAccessor\":\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"maxCols\":2},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"002038df-af67-4b41-9b1c-06b855c4713e\":{\"columns\":{\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9dffdf45-9da5-41d1-8c37-437e1d70306e\":{\"label\":\"Top 10 values of host.hardware.manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hardware.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9dffdf45-9da5-41d1-8c37-437e1d70306e\",\"6090f9f1-96d7-4a5c-8828-00ff9ac2c3ba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Avg Disk Size by Manufacturer\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":17,\"i\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\"},\"panelIndex\":\"cb0c8de2-4fd0-4911-9e61-adab9c11c090\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd\"}],\"state\":{\"visualization\":{\"layerId\":\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\",\"layerType\":\"data\",\"metricAccessor\":\"6d005070-a8da-48b0-b946-da89fbabd90e\",\"breakdownByAccessor\":\"d990970c-7e22-4928-805b-18a6962b6799\",\"color\":\"#ededed\",\"maxCols\":1,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"488a6893-9138-46f9-adbe-e8ce2c47e8bd\":{\"columns\":{\"6d005070-a8da-48b0-b946-da89fbabd90e\":{\"label\":\"Avg Disk Size\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"disk.size\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"bytes\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"d990970c-7e22-4928-805b-18a6962b6799\":{\"label\":\"Operating System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.platform\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6d005070-a8da-48b0-b946-da89fbabd90e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d990970c-7e22-4928-805b-18a6962b6799\",\"6d005070-a8da-48b0-b946-da89fbabd90e\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":17,\"w\":5,\"h\":23,\"i\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\"},\"panelIndex\":\"db1eb37d-8675-44d1-891a-9a8a7c2e8ade\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3\":{\"columns\":{\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\":{\"label\":\"System Disk\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.system\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4f64099d-20b2-4d74-ba9e-05a9ff5c498e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":17,\"w\":5,\"h\":23,\"i\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\"},\"panelIndex\":\"f85bb00e-3b05-48b5-a447-fb210ba95ff9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617\"}],\"state\":{\"visualization\":{\"layerId\":\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"986480e5-18b5-4695-85ce-5266db9d4f47\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"064d2f28-8ccf-4c45-a28e-5a5816cd7617\":{\"columns\":{\"986480e5-18b5-4695-85ce-5266db9d4f47\":{\"label\":\"Bootable Drive\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.boot_from\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"986480e5-18b5-4695-85ce-5266db9d4f47\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":38,\"y\":17,\"w\":5,\"h\":23,\"i\":\"d401251f-ad81-4c51-9844-f7b09319b927\"},\"panelIndex\":\"d401251f-ad81-4c51-9844-f7b09319b927\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0\"}],\"state\":{\"visualization\":{\"layerId\":\"e8b77360-a165-4a1b-8178-1269a1ddcce0\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33.33},{\"color\":\"#7AABDA\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"838e1571-1035-4b70-be49-400aec480639\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e8b77360-a165-4a1b-8178-1269a1ddcce0\":{\"columns\":{\"838e1571-1035-4b70-be49-400aec480639\":{\"label\":\"Clustered\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.clustered\",\"isBucketed\":false,\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}},\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"838e1571-1035-4b70-be49-400aec480639\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":17,\"w\":5,\"h\":23,\"i\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\"},\"panelIndex\":\"3d2627b6-09a8-41ff-8e43-9deb9125cf9b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8\"}],\"state\":{\"visualization\":{\"layerId\":\"9c59f356-6617-4fb4-8d1d-0a31def292f8\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#94C5F4\",\"stop\":33},{\"color\":\"#7AABDA\",\"stop\":66.5},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#94C5F4\",\"stop\":null},{\"color\":\"#7AABDA\",\"stop\":33},{\"color\":\"#6092C0\",\"stop\":66.5}],\"continuity\":\"all\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"771f348e-4c25-4739-ab12-de837a5611fb\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9c59f356-6617-4fb4-8d1d-0a31def292f8\":{\"columns\":{\"771f348e-4c25-4739-ab12-de837a5611fb\":{\"label\":\"Highly Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.highly_available\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"771f348e-4c25-4739-ab12-de837a5611fb\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":27,\"w\":10,\"h\":13,\"i\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\"},\"panelIndex\":\"af88c038-d0f3-4189-acbc-4c61caca3bdb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"f62528d5-75c0-4261-a0e4-b78884ac618b\",\"primaryGroups\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\"],\"metrics\":[\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f62528d5-75c0-4261-a0e4-b78884ac618b\":{\"columns\":{\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\":{\"label\":\"Top 5 values of disk.health_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.health_status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"64a6a506-ad81-42bf-9fef-6df18bacd6c7\",\"4a013b2a-4c57-4c45-afb7-8f5a70f2bb3d\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Overall drive health\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":10,\"y\":27,\"w\":10,\"h\":13,\"i\":\"452aa111-8e0c-4403-9c94-3602ec607617\"},\"panelIndex\":\"452aa111-8e0c-4403-9c94-3602ec607617\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"},\"layers\":[{\"layerId\":\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\",\"primaryGroups\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\"],\"metrics\":[\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"numberDisplay\":\"hidden\",\"categoryDisplay\":\"hide\",\"legendDisplay\":\"hide\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.7}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b6a3c283-b27e-4ea5-a36d-ff799f06dc70\":{\"columns\":{\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"94813be9-4122-4d2d-a449-f24cc8a62167\":{\"label\":\"Top 2 values of disk.offline\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.offline\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"94813be9-4122-4d2d-a449-f24cc8a62167\",\"a3a8c58a-64ec-4424-a1dd-355a86f6f615\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Disk Offline\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":27,\"w\":8,\"h\":13,\"i\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\"},\"panelIndex\":\"56fbe10e-dff8-4436-8a42-588b38208cfc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"2dc584bc-c446-4150-b561-1415a45ebe87\",\"name\":\"indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca\"}],\"state\":{\"visualization\":{\"layerId\":\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\",\"layerType\":\"data\",\"breakdownByAccessor\":\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"metricAccessor\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\",\"maxCols\":2,\"collapseFn\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"521e98b0-32d0-48f4-b3a8-1d5673af21ca\":{\"columns\":{\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\":{\"label\":\"Top 2 values of disk.operational_status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"disk.operational_status\",\"isBucketed\":true,\"params\":{\"size\":2,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\":{\"label\":\"Count of Disks\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"disk.serial_number\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"0dea645b-ae9c-4d11-8a3f-6823e94f2e6d\",\"c0892a53-0ed3-47c0-8dbc-03288c3acefa\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Host Drives", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T19:54:38.220Z", + "id": "tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "b5ddabd8-3016-4232-b28b-06d714106a89:indexpattern-datasource-layer-221c8cb0-1779-45ef-8d12-3923317e3366", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "6859fbab-c985-4bfe-9100-8c5e5326021d:indexpattern-datasource-layer-002038df-af67-4b41-9b1c-06b855c4713e", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "cb0c8de2-4fd0-4911-9e61-adab9c11c090:indexpattern-datasource-layer-488a6893-9138-46f9-adbe-e8ce2c47e8bd", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "db1eb37d-8675-44d1-891a-9a8a7c2e8ade:indexpattern-datasource-layer-6d559375-a858-4fbb-a7cf-2f8fe9e1c7f3", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "f85bb00e-3b05-48b5-a447-fb210ba95ff9:indexpattern-datasource-layer-064d2f28-8ccf-4c45-a28e-5a5816cd7617", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "d401251f-ad81-4c51-9844-f7b09319b927:indexpattern-datasource-layer-e8b77360-a165-4a1b-8178-1269a1ddcce0", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "3d2627b6-09a8-41ff-8e43-9deb9125cf9b:indexpattern-datasource-layer-9c59f356-6617-4fb4-8d1d-0a31def292f8", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "af88c038-d0f3-4189-acbc-4c61caca3bdb:indexpattern-datasource-layer-f62528d5-75c0-4261-a0e4-b78884ac618b", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "452aa111-8e0c-4403-9c94-3602ec607617:indexpattern-datasource-layer-b6a3c283-b27e-4ea5-a36d-ff799f06dc70", + "type": "index-pattern" + }, + { + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "name": "56fbe10e-dff8-4436-8a42-588b38208cfc:indexpattern-datasource-layer-521e98b0-32d0-48f4-b3a8-1d5673af21ca", + "type": "index-pattern" + }, + { + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "name": "tag-ref-7f851220-3d41-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T19:54:38.220Z", + "version": "WzgxODg4MiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json b/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json index e9f529fd3a1..b93e7292bf0 100644 --- a/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json +++ b/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json @@ -1,106 +1,106 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\":{\"order\":0,\"width\":\"small\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"host.hostname\",\"id\":\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\",\"enhancements\":{}}}}" - }, - "description": "TYCHON collects the CPUs attached to an endpoint and records it as part of an endpoint's current state.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":13,\"i\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\"},\"panelIndex\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\"}],\"state\":{\"visualization\":{\"layerId\":\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\",\"accessor\":\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\",\"colorMode\":\"None\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\":{\"columns\":{\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":6,\"h\":13,\"i\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\"},\"panelIndex\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg Clockspeed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":0,\"w\":6,\"h\":13,\"i\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\"},\"panelIndex\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg CPU Speed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":13,\"i\":\"1fd537c1-8c02-4381-8205-51082031f6e8\"},\"panelIndex\":\"1fd537c1-8c02-4381-8205-51082031f6e8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373\"},{\"type\":\"index-pattern\",\"name\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\"}],\"state\":{\"visualization\":{\"layerId\":\"cb07cf4d-d716-4baf-be01-16f87e981373\",\"accessor\":\"d5f83eee-7539-4f81-b82f-df6437e6c19b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"type\":\"exists\",\"key\":\"tychon.id\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"tychon.id\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb07cf4d-d716-4baf-be01-16f87e981373\":{\"columns\":{\"d5f83eee-7539-4f81-b82f-df6437e6c19b\":{\"label\":\"Virtualized Firmware Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.cpu.virtualization_firmware_enabled : true \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"d5f83eee-7539-4f81-b82f-df6437e6c19b\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"Virtualization Firmware Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":13,\"i\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\"},\"panelIndex\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\"},{\"isTransposed\":false,\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\",\"hidden\":true,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"summaryRow\":\"avg\"},{\"columnId\":\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"isTransposed\":false,\"alignment\":\"center\",\"summaryRow\":\"avg\"}],\"layerId\":\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"direction\":\"asc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\":{\"columns\":{\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"42dd2ee2-bc93-420d-accf-98ce681d07e6\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"min\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ca5a9861-c2f3-410a-be88-410a360f15a5\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"10a4327d-d156-471f-9695-32836a13f2c7\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\",\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"10a4327d-d156-471f-9695-32836a13f2c7\",\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 100 Chipsets\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":21,\"i\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\"},\"panelIndex\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a76b7191-7ce1-41ce-8df5-868260fc46b6\"},{\"isTransposed\":false,\"columnId\":\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\"},{\"isTransposed\":false,\"columnId\":\"7e900d75-20d0-43bf-8dea-bf4d594416af\"},{\"isTransposed\":false,\"columnId\":\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\"},{\"isTransposed\":false,\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\",\"hidden\":true},{\"isTransposed\":false,\"columnId\":\"d56fc6a7-9748-47c7-8379-a29823b578bb\"},{\"isTransposed\":false,\"columnId\":\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\"},{\"isTransposed\":false,\"columnId\":\"00f91685-a38f-449d-94c3-5f2428aec1b4\"}],\"layerId\":\"759ddcaa-7578-426f-9a74-24c6026ed05b\",\"layerType\":\"data\",\"paging\":{\"size\":10,\"enabled\":true},\"rowHeight\":\"auto\",\"headerRowHeight\":\"auto\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"759ddcaa-7578-426f-9a74-24c6026ed05b\":{\"columns\":{\"a76b7191-7ce1-41ce-8df5-868260fc46b6\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7e900d75-20d0-43bf-8dea-bf4d594416af\":{\"label\":\"Architecture\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.architecture\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"724d8257-99b5-4149-9007-f97df1355eac\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d56fc6a7-9748-47c7-8379-a29823b578bb\":{\"label\":\"# of Cores\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\":{\"label\":\"Logical Processors\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"00f91685-a38f-449d-94c3-5f2428aec1b4\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"a76b7191-7ce1-41ce-8df5-868260fc46b6\",\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\",\"7e900d75-20d0-43bf-8dea-bf4d594416af\",\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\",\"724d8257-99b5-4149-9007-f97df1355eac\",\"d56fc6a7-9748-47c7-8379-a29823b578bb\",\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\",\"00f91685-a38f-449d-94c3-5f2428aec1b4\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5c2fbf68-47f9-403f-a3a9-71b9b7c870ef\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Information\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":34,\"w\":48,\"h\":10,\"i\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\"},\"panelIndex\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"ca388af1-4820-4a41-b392-da6c505cfc19\",\"accessors\":[\"4801ad21-f333-4454-968c-49415af0dc0b\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"yConfig\":[{\"forAccessor\":\"4801ad21-f333-4454-968c-49415af0dc0b\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ca388af1-4820-4a41-b392-da6c505cfc19\":{\"columns\":{\"37228917-276b-4623-b15e-f3426e2f4a0b\":{\"label\":\"Report Events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0bX0\":{\"label\":\"Part of Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count()\",\"isFormulaBroken\":false},\"references\":[\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"customLabel\":true}},\"columnOrder\":[\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"4801ad21-f333-4454-968c-49415af0dc0b\",\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Events Reported over Time\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Host CPUs", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:53:52.146Z", - "id": "tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "d484eecf-9300-4edc-86ad-1d364f2cd912:indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "c546b60e-cb07-4096-a664-ddc9c3cfdf34:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "a6b31f35-2b50-4382-91ab-d4d444435cd5:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "1fd537c1-8c02-4381-8205-51082031f6e8:indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "1fd537c1-8c02-4381-8205-51082031f6e8:4e5bed99-c054-480f-97cb-e4add7cda1ec", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "082ec4db-99e5-4bcb-a0bf-1b574d96e0ab:indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b", - "type": "index-pattern" - }, - { - "id": "6165bf50-3dbf-11ee-9610-15dee918f31a", - "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5c2fbf68-47f9-403f-a3a9-71b9b7c870ef:dashboardId", - "type": "dashboard" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "86be9e95-687e-4826-b72c-3d2b4f574a85:indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19", - "type": "index-pattern" - }, - { - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "name": "controlGroup_37c0c6aa-5a66-4423-8f05-c055e3679ed7:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "b08ff050-41c5-11ee-83e4-c92ed141b9e5", - "name": "tag-ref-b08ff050-41c5-11ee-83e4-c92ed141b9e5", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:53:52.146Z", - "version": "WzgyMTY0NiwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\":{\"order\":0,\"width\":\"small\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"host.hostname\",\"id\":\"37c0c6aa-5a66-4423-8f05-c055e3679ed7\",\"enhancements\":{}}}}" + }, + "description": "TYCHON collects the CPUs attached to an endpoint and records it as part of an endpoint's current state.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":13,\"i\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\"},\"panelIndex\":\"d484eecf-9300-4edc-86ad-1d364f2cd912\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\"}],\"state\":{\"visualization\":{\"layerId\":\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\",\"accessor\":\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\",\"colorMode\":\"None\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c2d45ad-d83f-47e4-9ae4-c10df0f06b45\":{\"columns\":{\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"11e77fc2-d3fa-4e24-bc42-c85b39e12f0b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":6,\"h\":13,\"i\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\"},\"panelIndex\":\"c546b60e-cb07-4096-a664-ddc9c3cfdf34\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg Clockspeed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.clockspeed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":12,\"y\":0,\"w\":6,\"h\":13,\"i\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\"},\"panelIndex\":\"a6b31f35-2b50-4382-91ab-d4d444435cd5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9\"}],\"state\":{\"visualization\":{\"layerId\":\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\",\"accessor\":\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1572e37a-4766-4cd7-9241-7bf6dd20f0d9\":{\"columns\":{\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\":{\"label\":\"Avg CPU Speed\",\"dataType\":\"number\",\"operationType\":\"average\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"6649c4f7-3f42-40eb-8b0e-763b91c56d8d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":13,\"i\":\"1fd537c1-8c02-4381-8205-51082031f6e8\"},\"panelIndex\":\"1fd537c1-8c02-4381-8205-51082031f6e8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373\"},{\"type\":\"index-pattern\",\"name\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\"}],\"state\":{\"visualization\":{\"layerId\":\"cb07cf4d-d716-4baf-be01-16f87e981373\",\"accessor\":\"d5f83eee-7539-4f81-b82f-df6437e6c19b\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"4e5bed99-c054-480f-97cb-e4add7cda1ec\",\"type\":\"exists\",\"key\":\"tychon.id\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"tychon.id\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cb07cf4d-d716-4baf-be01-16f87e981373\":{\"columns\":{\"d5f83eee-7539-4f81-b82f-df6437e6c19b\":{\"label\":\"Virtualized Firmware Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.cpu.virtualization_firmware_enabled : true \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"d5f83eee-7539-4f81-b82f-df6437e6c19b\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"Virtualization Firmware Enabled\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":13,\"i\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\"},\"panelIndex\":\"082ec4db-99e5-4bcb-a0bf-1b574d96e0ab\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\"},{\"isTransposed\":false,\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\",\"hidden\":true,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"summaryRow\":\"avg\"},{\"columnId\":\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"isTransposed\":false,\"alignment\":\"center\",\"summaryRow\":\"avg\"}],\"layerId\":\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"10a4327d-d156-471f-9695-32836a13f2c7\",\"direction\":\"asc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3\":{\"columns\":{\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"42dd2ee2-bc93-420d-accf-98ce681d07e6\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"min\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ca5a9861-c2f3-410a-be88-410a360f15a5\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"10a4327d-d156-471f-9695-32836a13f2c7\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"4ca765a0-4fd5-43c8-ba75-0dbad474e481\",\"ca5a9861-c2f3-410a-be88-410a360f15a5\",\"10a4327d-d156-471f-9695-32836a13f2c7\",\"42dd2ee2-bc93-420d-accf-98ce681d07e6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 100 Chipsets\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":21,\"i\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\"},\"panelIndex\":\"c0e77f2e-4bb6-4ee2-af50-248b3cc98549\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a76b7191-7ce1-41ce-8df5-868260fc46b6\"},{\"isTransposed\":false,\"columnId\":\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\"},{\"isTransposed\":false,\"columnId\":\"7e900d75-20d0-43bf-8dea-bf4d594416af\"},{\"isTransposed\":false,\"columnId\":\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\"},{\"isTransposed\":false,\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\",\"hidden\":true},{\"isTransposed\":false,\"columnId\":\"d56fc6a7-9748-47c7-8379-a29823b578bb\"},{\"isTransposed\":false,\"columnId\":\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\"},{\"isTransposed\":false,\"columnId\":\"00f91685-a38f-449d-94c3-5f2428aec1b4\"}],\"layerId\":\"759ddcaa-7578-426f-9a74-24c6026ed05b\",\"layerType\":\"data\",\"paging\":{\"size\":10,\"enabled\":true},\"rowHeight\":\"auto\",\"headerRowHeight\":\"auto\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"759ddcaa-7578-426f-9a74-24c6026ed05b\":{\"columns\":{\"a76b7191-7ce1-41ce-8df5-868260fc46b6\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7e900d75-20d0-43bf-8dea-bf4d594416af\":{\"label\":\"Architecture\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.architecture\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"724d8257-99b5-4149-9007-f97df1355eac\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"724d8257-99b5-4149-9007-f97df1355eac\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d56fc6a7-9748-47c7-8379-a29823b578bb\":{\"label\":\"# of Cores\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_cores\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\":{\"label\":\"Logical Processors\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.number_of_logical_processors\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"00f91685-a38f-449d-94c3-5f2428aec1b4\":{\"label\":\"CPU Speed\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"host.cpu.speed\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true}},\"columnOrder\":[\"a76b7191-7ce1-41ce-8df5-868260fc46b6\",\"87934d9d-9e53-437e-a9db-b9c9cb30c95e\",\"7e900d75-20d0-43bf-8dea-bf4d594416af\",\"9a1d7d63-2ee6-4bc4-9ff5-1a35a12cbdd7\",\"724d8257-99b5-4149-9007-f97df1355eac\",\"d56fc6a7-9748-47c7-8379-a29823b578bb\",\"8cb19bc9-6ac6-42e1-a7b7-7abea80ac2b2\",\"00f91685-a38f-449d-94c3-5f2428aec1b4\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5c2fbf68-47f9-403f-a3a9-71b9b7c870ef\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Information\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":34,\"w\":48,\"h\":10,\"i\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\"},\"panelIndex\":\"86be9e95-687e-4826-b72c-3d2b4f574a85\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a264bf8d-abc3-4789-9f4c-bf76397e06ba\",\"name\":\"indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"ca388af1-4820-4a41-b392-da6c505cfc19\",\"accessors\":[\"4801ad21-f333-4454-968c-49415af0dc0b\"],\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"yConfig\":[{\"forAccessor\":\"4801ad21-f333-4454-968c-49415af0dc0b\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ca388af1-4820-4a41-b392-da6c505cfc19\":{\"columns\":{\"37228917-276b-4623-b15e-f3426e2f4a0b\":{\"label\":\"Report Events\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0bX0\":{\"label\":\"Part of Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4801ad21-f333-4454-968c-49415af0dc0b\":{\"label\":\"Reporting Hosts\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count()\",\"isFormulaBroken\":false},\"references\":[\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"customLabel\":true}},\"columnOrder\":[\"37228917-276b-4623-b15e-f3426e2f4a0b\",\"4801ad21-f333-4454-968c-49415af0dc0b\",\"4801ad21-f333-4454-968c-49415af0dc0bX0\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Events Reported over Time\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Host CPUs", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:53:52.146Z", + "id": "tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "d484eecf-9300-4edc-86ad-1d364f2cd912:indexpattern-datasource-layer-1c2d45ad-d83f-47e4-9ae4-c10df0f06b45", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "c546b60e-cb07-4096-a664-ddc9c3cfdf34:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "a6b31f35-2b50-4382-91ab-d4d444435cd5:indexpattern-datasource-layer-1572e37a-4766-4cd7-9241-7bf6dd20f0d9", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "1fd537c1-8c02-4381-8205-51082031f6e8:indexpattern-datasource-layer-cb07cf4d-d716-4baf-be01-16f87e981373", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "1fd537c1-8c02-4381-8205-51082031f6e8:4e5bed99-c054-480f-97cb-e4add7cda1ec", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "082ec4db-99e5-4bcb-a0bf-1b574d96e0ab:indexpattern-datasource-layer-31533f5b-1ffc-42a1-8f19-d84d8bbf6fc3", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:indexpattern-datasource-layer-759ddcaa-7578-426f-9a74-24c6026ed05b", + "type": "index-pattern" + }, + { + "id": "tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host", + "name": "c0e77f2e-4bb6-4ee2-af50-248b3cc98549:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:5c2fbf68-47f9-403f-a3a9-71b9b7c870ef:dashboardId", + "type": "dashboard" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "86be9e95-687e-4826-b72c-3d2b4f574a85:indexpattern-datasource-layer-ca388af1-4820-4a41-b392-da6c505cfc19", + "type": "index-pattern" + }, + { + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "name": "controlGroup_37c0c6aa-5a66-4423-8f05-c055e3679ed7:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "b08ff050-41c5-11ee-83e4-c92ed141b9e5", + "name": "tag-ref-b08ff050-41c5-11ee-83e4-c92ed141b9e5", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:53:52.146Z", + "version": "WzgyMTY0NiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json b/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json index 03a289d9664..e3bc9982610 100644 --- a/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json +++ b/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json @@ -1,96 +1,96 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\":{\"order\":0,\"width\":\"medium\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\",\"enhancements\":{},\"selectedOptions\":[]}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Hardware Inventory view displays all hardware currently or previously attached to a computer.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"ae9194f3-7df8-415d-870c-3480f12e4971\"},\"panelIndex\":\"ae9194f3-7df8-415d-870c-3480f12e4971\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_ae9194f3-7df8-415d-870c-3480f12e4971\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":3,\"w\":20,\"h\":14,\"i\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\"},\"panelIndex\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"7c2eef60-6291-469e-976b-a5f2ed860552\",\"accessors\":[\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"yConfig\":[{\"forAccessor\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7c2eef60-6291-469e-976b-a5f2ed860552\":{\"columns\":{\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"431903e4-23c5-4170-b4b6-5b4c46d85fba\":{\"label\":\"Count of device.manufacturer\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.manufacturer\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 15 Device Manufacturers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":14,\"i\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\"},\"panelIndex\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8\"}],\"state\":{\"visualization\":{\"layerId\":\"6c93481d-09a6-47eb-857d-e98b13758ec8\",\"accessor\":\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6c93481d-09a6-47eb-857d-e98b13758ec8\":{\"columns\":{\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\":{\"label\":\"Total Device Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":12,\"h\":7,\"i\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\"},\"panelIndex\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Present\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":3,\"w\":10,\"h\":14,\"i\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\"},\"panelIndex\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\",\"primaryGroups\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\"],\"metrics\":[\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\":{\"columns\":{\"bf8b9c18-8de4-41de-9651-3b2bf7787362\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[\"System\"],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\",\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device Type Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":10,\"w\":12,\"h\":7,\"i\":\"ce341abb-5aea-4712-969d-9748b4de78af\"},\"panelIndex\":\"ce341abb-5aea-4712-969d-9748b4de78af\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Missing\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":48,\"h\":36,\"i\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\"},\"panelIndex\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"isTransposed\":false},{\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"isTransposed\":false},{\"columnId\":\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\":{\"columns\":{\"83a1475f-1b10-4670-8a5c-d02639c31b16\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.name\",\"isBucketed\":true,\"params\":{\"size\":250,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"5d04b4db-7c47-429b-baa4-dcde47c17256\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\":{\"label\":\"Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.present\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device List\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-7d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Hardware Inventory", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:47:46.348Z", - "id": "tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "ae9194f3-7df8-415d-870c-3480f12e4971:panel_ae9194f3-7df8-415d-870c-3480f12e4971", - "type": "visualization" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "f065275d-50bf-4f95-a7a8-90d7bbaafacb:indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552", - "type": "index-pattern" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "fe594ff8-c22c-40c4-9ab2-e9b2fea85847:indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8", - "type": "index-pattern" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "26f1102d-2afc-4e57-ac53-25d4cb848ed5:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", - "type": "index-pattern" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9:indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97", - "type": "index-pattern" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "ce341abb-5aea-4712-969d-9748b4de78af:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", - "type": "index-pattern" - }, - { - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "name": "5ff3e63e-e71b-4b11-a07c-9c1315d604ce:indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", - "name": "tag-ref-7b7ab4c0-3e02-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:47:46.348Z", - "version": "WzgyMTE0NywyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\":{\"order\":0,\"width\":\"medium\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae\",\"enhancements\":{},\"selectedOptions\":[]}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Hardware Inventory view displays all hardware currently or previously attached to a computer.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"ae9194f3-7df8-415d-870c-3480f12e4971\"},\"panelIndex\":\"ae9194f3-7df8-415d-870c-3480f12e4971\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_ae9194f3-7df8-415d-870c-3480f12e4971\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":28,\"y\":3,\"w\":20,\"h\":14,\"i\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\"},\"panelIndex\":\"f065275d-50bf-4f95-a7a8-90d7bbaafacb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"7c2eef60-6291-469e-976b-a5f2ed860552\",\"accessors\":[\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"yConfig\":[{\"forAccessor\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7c2eef60-6291-469e-976b-a5f2ed860552\":{\"columns\":{\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"431903e4-23c5-4170-b4b6-5b4c46d85fba\":{\"label\":\"Count of device.manufacturer\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.manufacturer\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76354b85-6c58-49a1-a1f7-2f0d0fd30970\",\"431903e4-23c5-4170-b4b6-5b4c46d85fba\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 15 Device Manufacturers\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":3,\"w\":6,\"h\":14,\"i\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\"},\"panelIndex\":\"fe594ff8-c22c-40c4-9ab2-e9b2fea85847\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8\"}],\"state\":{\"visualization\":{\"layerId\":\"6c93481d-09a6-47eb-857d-e98b13758ec8\",\"accessor\":\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6c93481d-09a6-47eb-857d-e98b13758ec8\":{\"columns\":{\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\":{\"label\":\"Total Device Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"8bf6ff37-6dc7-442a-bbd5-629562840b8c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":3,\"w\":12,\"h\":7,\"i\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\"},\"panelIndex\":\"26f1102d-2afc-4e57-ac53-25d4cb848ed5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Present\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":3,\"w\":10,\"h\":14,\"i\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\"},\"panelIndex\":\"0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\",\"primaryGroups\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\"],\"metrics\":[\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"82dd98f7-71b6-4e8f-84b2-a5bacc5afa97\":{\"columns\":{\"bf8b9c18-8de4-41de-9651-3b2bf7787362\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[\"System\"],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"bf8b9c18-8de4-41de-9651-3b2bf7787362\",\"ba99dfe6-7e5f-45d3-a688-2bd52ef92c5f\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device Type Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":10,\"w\":12,\"h\":7,\"i\":\"ce341abb-5aea-4712-969d-9748b4de78af\"},\"panelIndex\":\"ce341abb-5aea-4712-969d-9748b4de78af\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43\"}],\"state\":{\"visualization\":{\"layerId\":\"16326d6b-8de2-4f2f-945f-3d9a23538c43\",\"layerType\":\"data\",\"metricAccessor\":\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"maxAccessor\":\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"16326d6b-8de2-4f2f-945f-3d9a23538c43\":{\"columns\":{\"3e10af95-976a-44c0-8a98-d7fade76dda6\":{\"label\":\"Total Missing\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"device.present\",\"filter\":{\"query\":\"device.present : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3e10af95-976a-44c0-8a98-d7fade76dda6\",\"e1a9c4eb-e9e4-425a-abdd-7c0a829be528\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":48,\"h\":36,\"i\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\"},\"panelIndex\":\"5ff3e63e-e71b-4b11-a07c-9c1315d604ce\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"isTransposed\":false},{\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"isTransposed\":false},{\"columnId\":\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f761e14-aaf2-4318-ad8c-83d391b55ef3\":{\"columns\":{\"83a1475f-1b10-4670-8a5c-d02639c31b16\":{\"label\":\"Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.name\",\"isBucketed\":true,\"params\":{\"size\":250,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"5d04b4db-7c47-429b-baa4-dcde47c17256\":{\"label\":\"Manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\":{\"label\":\"Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.present\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\":{\"label\":\"Device Type\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\":{\"label\":\"ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"83a1475f-1b10-4670-8a5c-d02639c31b16\",\"5d04b4db-7c47-429b-baa4-dcde47c17256\",\"206f4ddf-480c-4fa8-b76b-a277ee56c6d3\",\"bd378ce9-b1e3-4ee9-ac61-dcac3c668582\",\"b6aaa1bc-ba97-4a64-be3e-7b165d3c84b7\",\"807673da-bcf0-4a23-8fc6-e49efcfcd6d3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device List\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Hardware Inventory", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:47:46.348Z", + "id": "tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "ae9194f3-7df8-415d-870c-3480f12e4971:panel_ae9194f3-7df8-415d-870c-3480f12e4971", + "type": "visualization" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "f065275d-50bf-4f95-a7a8-90d7bbaafacb:indexpattern-datasource-layer-7c2eef60-6291-469e-976b-a5f2ed860552", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "fe594ff8-c22c-40c4-9ab2-e9b2fea85847:indexpattern-datasource-layer-6c93481d-09a6-47eb-857d-e98b13758ec8", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "26f1102d-2afc-4e57-ac53-25d4cb848ed5:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "0ef9aa2c-73b1-4b65-89cc-1c68441fe5b9:indexpattern-datasource-layer-82dd98f7-71b6-4e8f-84b2-a5bacc5afa97", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "ce341abb-5aea-4712-969d-9748b4de78af:indexpattern-datasource-layer-16326d6b-8de2-4f2f-945f-3d9a23538c43", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "5ff3e63e-e71b-4b11-a07c-9c1315d604ce:indexpattern-datasource-layer-4f761e14-aaf2-4318-ad8c-83d391b55ef3", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_2b9581fc-f55b-46f5-bf71-0cbfba5cc9ae:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "name": "tag-ref-7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:47:46.348Z", + "version": "WzgyMTE0NywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json index b621a813e68..39593f0b7cf 100644 --- a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json @@ -1,106 +1,106 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a9a1905e-d884-49b1-9f30-bae69dd0f668\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"id\":\"a9a1905e-d884-49b1-9f30-bae69dd0f668\",\"selectedOptions\":[\"BotanyBayEP1\"],\"existsSelected\":false,\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Endpoint Protection view displays the status of your AV vendors and virtualization protection mechanisms, whether they are enabled, and if they are up to date.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"02c59767-547c-4cda-bba5-77ad8a00a068\"},\"panelIndex\":\"02c59767-547c-4cda-bba5-77ad8a00a068\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_02c59767-547c-4cda-bba5-77ad8a00a068\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":10,\"i\":\"cefa3c11-9742-4955-9569-40a38489d62a\"},\"panelIndex\":\"cefa3c11-9742-4955-9569-40a38489d62a\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protections\\nTYCHON monitors the endpoint for installed endpoint protection software. TYCHON integrates with EPP vendors to report the status of each specific vendor and its features to ensure all the proper protections are in place.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":5,\"i\":\"12e45058-431b-4504-a6ea-b37cdb08043d\"},\"panelIndex\":\"12e45058-431b-4504-a6ea-b37cdb08043d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588\"}],\"state\":{\"visualization\":{\"layerId\":\"9aeae475-3f70-4b1f-8e37-3d09bb018588\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"alignment\":\"center\"},{\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9aeae475-3f70-4b1f-8e37-3d09bb018588\":{\"columns\":{\"de290752-f19c-48d6-88b4-bbacb0a643ba\":{\"label\":\"Elastic Defender Behavior Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.behavior_protection\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1a761e73-7d11-44ba-b41d-12792debe4cc\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\":{\"label\":\"Elastic Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.malware\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b4ec867-8b7e-4d41-8b61-5615715413eb\":{\"label\":\"Elastic Defender Memory Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.memory_protection\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"1a761e73-7d11-44ba-b41d-12792debe4cc\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Elastic Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":5,\"i\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\"},\"panelIndex\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf\"}],\"state\":{\"visualization\":{\"layerId\":\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"alignment\":\"center\"},{\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\",\"hidden\":true},{\"columnId\":\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"005add0c-a692-4d2d-9758-6beb27289076\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\":{\"columns\":{\"fdfec985-df5b-4716-b4b7-fc583b364c03\":{\"label\":\"TPM Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.present\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6bca86d-5a9b-4e18-902b-a573c57e734f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\":{\"label\":\"TPM Digest\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.digest.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfc72b21-55c2-4913-bcff-15362a0f8500\":{\"label\":\"TPM Compliant\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.compliant\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"005add0c-a692-4d2d-9758-6beb27289076\":{\"label\":\"TPM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"005add0c-a692-4d2d-9758-6beb27289076\",\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Trusted Platform Module Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":5,\"i\":\"21705463-1697-44dc-9a09-62df26148332\"},\"panelIndex\":\"21705463-1697-44dc-9a09-62df26148332\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\",\"isTransposed\":false,\"colorMode\":\"none\",\"alignment\":\"center\",\"hidden\":true},{\"columnId\":\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5560824c-b749-475f-8423-603ee0107b9e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\":{\"columns\":{\"dd967aec-5d3a-4e98-b8bb-1861bff07184\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d9295119-6956-41e0-8b42-ac2e47a370de\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33408527-4b67-4ab8-985a-5f4b9bcb0618\":{\"label\":\"Trellix PA Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\":{\"label\":\"Trellix DLP Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5560824c-b749-475f-8423-603ee0107b9e\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"5560824c-b749-475f-8423-603ee0107b9e\",\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":48,\"h\":5,\"i\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\"},\"panelIndex\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"0ac16482-70d8-47af-9017-43495072b88a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"04332c65-6c71-4235-8823-49823d7deda5\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"04332c65-6c71-4235-8823-49823d7deda5\":{\"columns\":{\"dbfeb47c-32b6-474c-8677-dae820f07b2d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"512f9032-b127-4739-b5bf-3eb959638ff5\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cf12a36e-89b5-4367-b35f-9afb91f70d09\":{\"label\":\"Trellix DLP Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c05bb470-b273-4a26-bf5d-a81b3c58767f\":{\"label\":\"Trellix PA Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\":{\"label\":\"Trellix RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0ac16482-70d8-47af-9017-43495072b88a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"0ac16482-70d8-47af-9017-43495072b88a\",\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":5,\"i\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\"},\"panelIndex\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"29924658-9aa3-42ea-bd98-79e173958e42\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\":{\"columns\":{\"eb149617-f610-4378-ba74-d639147b5601\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"29924658-9aa3-42ea-bd98-79e173958e42\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33c42b63-ee69-433c-95af-9d7d01e4f845\":{\"label\":\"Windows Defender Anti-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\":{\"label\":\"Windows Defender Anti-Virus \",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\":{\"label\":\"Windows Defender Real-Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d88f0d3a-2942-49fc-bd63-a971fa819412\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\":{\"label\":\"Windows Defender On-Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"29924658-9aa3-42ea-bd98-79e173958e42\",\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"eb149617-f610-4378-ba74-d639147b5601\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":5,\"i\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\"},\"panelIndex\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c4d70098-785e-4a47-814e-9e380659c08a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"6cde8617-3e7c-4778-a329-d928e36d7275\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6cde8617-3e7c-4778-a329-d928e36d7275\":{\"columns\":{\"beb6fb15-943b-4309-90f7-f4dce874a09b\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"2ecb665e-6607-46bb-b133-227e2a1f86e5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\":{\"label\":\"Windows Defender Anit-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\":{\"label\":\"Windows Defender AV\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c4d70098-785e-4a47-814e-9e380659c08a\":{\"label\":\"Trellix ENS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"c4d70098-785e-4a47-814e-9e380659c08a\",\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Endpoint Protection Signature Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":33,\"w\":48,\"h\":5,\"i\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\"},\"panelIndex\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\":{\"columns\":{\"407f21d2-19c4-4989-af6d-6d1874ed4adb\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b16cb63b-c175-474d-92c1-8a4259f824a6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\":{\"label\":\"Credential Guard Running\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.running\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"485d3df1-2842-46fa-8709-b9e1c226c7fa\":{\"label\":\"Device Guard Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4001a32-8acc-4546-ad61-096ef4ada2da\":{\"label\":\"Secure Boot Available\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.secureboot.available\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"20655296-06de-4a2f-8c5c-d3f11575f76b\":{\"label\":\"Usermode Integrity Policy Enforcement\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.usermodecodeintegrity.policyenforcement\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"93d9fdc5-1776-4120-b653-35f6ade218ff\":{\"label\":\"Virtualization Based Security\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.virtualizationbasedsecurity.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d17a739-c24f-47da-8215-5f85d7fab0eb\":{\"label\":\"Secure Launch Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.systemguardsecurelaunch.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\":{\"label\":\"UFI Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.ufi.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"b16cb63b-c175-474d-92c1-8a4259f824a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Security Settings\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-7d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Endpoint Protection", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:53:06.434Z", - "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "02c59767-547c-4cda-bba5-77ad8a00a068:panel_02c59767-547c-4cda-bba5-77ad8a00a068", - "type": "visualization" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "12e45058-431b-4504-a6ea-b37cdb08043d:indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588", - "type": "index-pattern" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "ea31c98b-3c46-4f95-a986-c4693b92b89e:indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "21705463-1697-44dc-9a09-62df26148332:indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "a8c6851c-3730-4c20-b9e0-43af84a176d0:indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "52a76f9f-e799-4d4a-b9e4-eae7014038e4:indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111", - "type": "index-pattern" - }, - { - "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "name": "8ad0f3f2-f823-482a-94f5-438a5f4e63ad:indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275", - "type": "index-pattern" - }, - { - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "name": "165a86cb-4d74-46e5-b01a-c8aa699bb62d:indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_a9a1905e-d884-49b1-9f30-bae69dd0f668:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "bae88930-1133-11ee-af86-538da1394f27", - "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:53:06.434Z", - "version": "WzgyMTYxNywyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"a9a1905e-d884-49b1-9f30-bae69dd0f668\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"id\":\"a9a1905e-d884-49b1-9f30-bae69dd0f668\",\"selectedOptions\":[\"BotanyBayEP1\"],\"existsSelected\":false,\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Endpoint Protection view displays the status of your AV vendors and virtualization protection mechanisms, whether they are enabled, and if they are up to date.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"02c59767-547c-4cda-bba5-77ad8a00a068\"},\"panelIndex\":\"02c59767-547c-4cda-bba5-77ad8a00a068\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_02c59767-547c-4cda-bba5-77ad8a00a068\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":10,\"i\":\"cefa3c11-9742-4955-9569-40a38489d62a\"},\"panelIndex\":\"cefa3c11-9742-4955-9569-40a38489d62a\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protections\\nTYCHON monitors the endpoint for installed endpoint protection software. TYCHON integrates with EPP vendors to report the status of each specific vendor and its features to ensure all the proper protections are in place.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":5,\"i\":\"12e45058-431b-4504-a6ea-b37cdb08043d\"},\"panelIndex\":\"12e45058-431b-4504-a6ea-b37cdb08043d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588\"}],\"state\":{\"visualization\":{\"layerId\":\"9aeae475-3f70-4b1f-8e37-3d09bb018588\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"alignment\":\"center\"},{\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9aeae475-3f70-4b1f-8e37-3d09bb018588\":{\"columns\":{\"de290752-f19c-48d6-88b4-bbacb0a643ba\":{\"label\":\"Elastic Defender Behavior Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.behavior_protection\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1a761e73-7d11-44ba-b41d-12792debe4cc\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\":{\"label\":\"Elastic Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.malware\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b4ec867-8b7e-4d41-8b61-5615715413eb\":{\"label\":\"Elastic Defender Memory Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.memory_protection\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"1a761e73-7d11-44ba-b41d-12792debe4cc\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Elastic Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":5,\"i\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\"},\"panelIndex\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf\"}],\"state\":{\"visualization\":{\"layerId\":\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"alignment\":\"center\"},{\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\",\"hidden\":true},{\"columnId\":\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"005add0c-a692-4d2d-9758-6beb27289076\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\":{\"columns\":{\"fdfec985-df5b-4716-b4b7-fc583b364c03\":{\"label\":\"TPM Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.present\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6bca86d-5a9b-4e18-902b-a573c57e734f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\":{\"label\":\"TPM Digest\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.digest.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfc72b21-55c2-4913-bcff-15362a0f8500\":{\"label\":\"TPM Compliant\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.compliant\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"005add0c-a692-4d2d-9758-6beb27289076\":{\"label\":\"TPM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"005add0c-a692-4d2d-9758-6beb27289076\",\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Trusted Platform Module Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":5,\"i\":\"21705463-1697-44dc-9a09-62df26148332\"},\"panelIndex\":\"21705463-1697-44dc-9a09-62df26148332\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\",\"isTransposed\":false,\"colorMode\":\"none\",\"alignment\":\"center\",\"hidden\":true},{\"columnId\":\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5560824c-b749-475f-8423-603ee0107b9e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\":{\"columns\":{\"dd967aec-5d3a-4e98-b8bb-1861bff07184\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d9295119-6956-41e0-8b42-ac2e47a370de\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33408527-4b67-4ab8-985a-5f4b9bcb0618\":{\"label\":\"Trellix PA Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\":{\"label\":\"Trellix DLP Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5560824c-b749-475f-8423-603ee0107b9e\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"5560824c-b749-475f-8423-603ee0107b9e\",\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":48,\"h\":5,\"i\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\"},\"panelIndex\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"0ac16482-70d8-47af-9017-43495072b88a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"04332c65-6c71-4235-8823-49823d7deda5\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"04332c65-6c71-4235-8823-49823d7deda5\":{\"columns\":{\"dbfeb47c-32b6-474c-8677-dae820f07b2d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"512f9032-b127-4739-b5bf-3eb959638ff5\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cf12a36e-89b5-4367-b35f-9afb91f70d09\":{\"label\":\"Trellix DLP Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c05bb470-b273-4a26-bf5d-a81b3c58767f\":{\"label\":\"Trellix PA Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\":{\"label\":\"Trellix RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0ac16482-70d8-47af-9017-43495072b88a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"0ac16482-70d8-47af-9017-43495072b88a\",\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":5,\"i\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\"},\"panelIndex\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"29924658-9aa3-42ea-bd98-79e173958e42\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\":{\"columns\":{\"eb149617-f610-4378-ba74-d639147b5601\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"29924658-9aa3-42ea-bd98-79e173958e42\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33c42b63-ee69-433c-95af-9d7d01e4f845\":{\"label\":\"Windows Defender Anti-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\":{\"label\":\"Windows Defender Anti-Virus \",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\":{\"label\":\"Windows Defender Real-Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d88f0d3a-2942-49fc-bd63-a971fa819412\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\":{\"label\":\"Windows Defender On-Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"29924658-9aa3-42ea-bd98-79e173958e42\",\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"eb149617-f610-4378-ba74-d639147b5601\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":5,\"i\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\"},\"panelIndex\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c4d70098-785e-4a47-814e-9e380659c08a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"6cde8617-3e7c-4778-a329-d928e36d7275\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6cde8617-3e7c-4778-a329-d928e36d7275\":{\"columns\":{\"beb6fb15-943b-4309-90f7-f4dce874a09b\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"2ecb665e-6607-46bb-b133-227e2a1f86e5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\":{\"label\":\"Windows Defender Anit-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\":{\"label\":\"Windows Defender AV\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c4d70098-785e-4a47-814e-9e380659c08a\":{\"label\":\"Trellix ENS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"c4d70098-785e-4a47-814e-9e380659c08a\",\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Endpoint Protection Signature Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":33,\"w\":48,\"h\":5,\"i\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\"},\"panelIndex\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\":{\"columns\":{\"407f21d2-19c4-4989-af6d-6d1874ed4adb\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b16cb63b-c175-474d-92c1-8a4259f824a6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\":{\"label\":\"Credential Guard Running\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.running\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"485d3df1-2842-46fa-8709-b9e1c226c7fa\":{\"label\":\"Device Guard Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4001a32-8acc-4546-ad61-096ef4ada2da\":{\"label\":\"Secure Boot Available\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.secureboot.available\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"20655296-06de-4a2f-8c5c-d3f11575f76b\":{\"label\":\"Usermode Integrity Policy Enforcement\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.usermodecodeintegrity.policyenforcement\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"93d9fdc5-1776-4120-b653-35f6ade218ff\":{\"label\":\"Virtualization Based Security\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.virtualizationbasedsecurity.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d17a739-c24f-47da-8215-5f85d7fab0eb\":{\"label\":\"Secure Launch Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.systemguardsecurelaunch.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\":{\"label\":\"UFI Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.ufi.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"b16cb63b-c175-474d-92c1-8a4259f824a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Security Settings\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-7d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Endpoint Protection", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:53:06.434Z", + "id": "tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "02c59767-547c-4cda-bba5-77ad8a00a068:panel_02c59767-547c-4cda-bba5-77ad8a00a068", + "type": "visualization" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "12e45058-431b-4504-a6ea-b37cdb08043d:indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "ea31c98b-3c46-4f95-a986-c4693b92b89e:indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "21705463-1697-44dc-9a09-62df26148332:indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "a8c6851c-3730-4c20-b9e0-43af84a176d0:indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "52a76f9f-e799-4d4a-b9e4-eae7014038e4:indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111", + "type": "index-pattern" + }, + { + "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "name": "8ad0f3f2-f823-482a-94f5-438a5f4e63ad:indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275", + "type": "index-pattern" + }, + { + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "name": "165a86cb-4d74-46e5-b01a-c8aa699bb62d:indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_a9a1905e-d884-49b1-9f30-bae69dd0f668:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "bae88930-1133-11ee-af86-538da1394f27", + "name": "tag-ref-bae88930-1133-11ee-af86-538da1394f27", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:53:06.434Z", + "version": "WzgyMTYxNywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json b/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json index cf765c6956c..6c4798875b6 100644 --- a/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json +++ b/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json @@ -1,80 +1,80 @@ { - "attributes": { - "description": "TYCHON captures ARP tables from endpoints. It tracks new ARP table entries and updates previously captured ones. Historical tracking is for previously found ARP lookups that are no longer seen.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":17,\"i\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\"},\"panelIndex\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"## ARP Tables\\n\\n**Overview** \\\\\\nTYCHON collects ARP tables every 30 minutes from endpoints and returns results to Elasticsearch. TYCHON assigns each ARP connection a unique identifier and updates previously captured ARP data. When TYCHON recognizes the same data, it updates the information. However, if TYCHON stops reporting an ARP entry, it is not removed. Therefore, this data is both the current ARP table and a historical view of ARP entries.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":13,\"h\":52,\"i\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\"},\"panelIndex\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245\"}],\"state\":{\"visualization\":{\"layerId\":\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"oneClickFilter\":true},{\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\",\"alignment\":\"right\",\"isTransposed\":false},{\"columnId\":\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\":{\"columns\":{\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\":{\"label\":\"Number of ARP Records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\":{\"label\":\"Unique IPs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\":{\"label\":\"Unique MACs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Connection Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Endpoint List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":52,\"i\":\"a718b065-8aa4-4122-8209-9e8166809166\"},\"panelIndex\":\"a718b065-8aa4-4122-8209-9e8166809166\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e\"}],\"state\":{\"visualization\":{\"layerId\":\"75e99f33-af21-4c5b-bf43-27e613d19f1e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\"},{\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\",\"isTransposed\":false,\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75e99f33-af21-4c5b-bf43-27e613d19f1e\":{\"columns\":{\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\":{\"label\":\"Network Interface\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.interface\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\",\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Interfaces\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":52,\"i\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\"},\"panelIndex\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18\"}],\"state\":{\"visualization\":{\"layerId\":\"939ae107-5b48-47e3-a385-121998a30d18\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"oneClickFilter\":true},{\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\",\"isTransposed\":false},{\"columnId\":\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"isTransposed\":false},{\"columnId\":\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"isTransposed\":false,\"alignment\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"939ae107-5b48-47e3-a385-121998a30d18\":{\"columns\":{\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5341642-c7db-4c93-b27d-47844eeb8ee6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"432028bb-1cb7-44a8-8446-0f3f023112c4\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"452d1f2a-645c-4b66-85da-ad52242236bf\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Search Google\",\"config\":{\"url\":{\"template\":\"https://google.com/search?q={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}},{\"eventId\":\"70b722a9-59f3-4b68-8341-0cda9ef41b28\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Lookup MAC Address\",\"config\":{\"url\":{\"template\":\"https://maclookup.app/search/result?mac={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}}]}}},\"title\":\"ARP Table\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":5,\"h\":12,\"i\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\"},\"panelIndex\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74\"},{\"type\":\"index-pattern\",\"name\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\"}],\"state\":{\"visualization\":{\"layerId\":\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\",\"accessor\":\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"type\":\"exists\",\"key\":\"destination.mac\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"destination.mac\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\":{\"columns\":{\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\":{\"label\":\"Unique MAC Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":29,\"w\":5,\"h\":12,\"i\":\"4139858c-c579-479b-aad7-90883296a136\"},\"panelIndex\":\"4139858c-c579-479b-aad7-90883296a136\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113\"}],\"state\":{\"visualization\":{\"layerId\":\"25e8d64c-1846-4743-950d-89d0fb6f1113\",\"accessor\":\"976f2848-673c-414f-bc8d-fb5f861fc48e\",\"layerType\":\"data\",\"textAlign\":\"center\",\"size\":\"xl\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"25e8d64c-1846-4743-950d-89d0fb6f1113\":{\"columns\":{\"976f2848-673c-414f-bc8d-fb5f861fc48e\":{\"label\":\"Unique IP Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"976f2848-673c-414f-bc8d-fb5f861fc48e\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] ARP Tables", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:35:07.156Z", - "id": "tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245", - "type": "index-pattern" - }, - { - "id": "0c036be0-3de5-11ee-9610-15dee918f31a", - "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34:dashboardId", - "type": "dashboard" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "a718b065-8aa4-4122-8209-9e8166809166:indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e", - "type": "index-pattern" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "cdc2012f-9e23-4d08-b87d-df42e57ba04f:indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18", - "type": "index-pattern" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74", - "type": "index-pattern" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:eec5b6be-b56e-44ea-b6df-dc957dd00778", - "type": "index-pattern" - }, - { - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "name": "4139858c-c579-479b-aad7-90883296a136:indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113", - "type": "index-pattern" - }, - { - "id": "c957d710-3d4c-11ee-9610-15dee918f31a", - "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:35:07.156Z", - "version": "WzgxOTc4MiwyMl0=" + "attributes": { + "description": "TYCHON captures ARP tables from endpoints. It tracks new ARP table entries and updates previously captured ones. Historical tracking is for previously found ARP lookups that are no longer seen.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":5,\"h\":17,\"i\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\"},\"panelIndex\":\"590b900e-fdb0-4f3f-8b3f-27fcaa636c0c\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"## ARP Tables\\n\\n**Overview** \\\\\\nTYCHON collects ARP tables every 30 minutes from endpoints and returns results to Elasticsearch. TYCHON assigns each ARP connection a unique identifier and updates previously captured ARP data. When TYCHON recognizes the same data, it updates the information. However, if TYCHON stops reporting an ARP entry, it is not removed. Therefore, this data is both the current ARP table and a historical view of ARP entries.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":5,\"y\":0,\"w\":13,\"h\":52,\"i\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\"},\"panelIndex\":\"ce775759-5615-4c75-9ef3-2a0330abbf25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245\"}],\"state\":{\"visualization\":{\"layerId\":\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"oneClickFilter\":true},{\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\",\"alignment\":\"right\",\"isTransposed\":false},{\"columnId\":\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"afc52d89-e35c-44fa-9d4f-3edd6b5dd245\":{\"columns\":{\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\":{\"label\":\"Number of ARP Records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\":{\"label\":\"Unique IPs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\":{\"label\":\"Unique MACs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"648d98c9-1dfe-4a03-92dd-95529f0c34d4\",\"8d87ad64-7076-47a7-ad7a-0b4ccf48b95e\",\"7ca8b3cd-e25c-47f2-a92e-51bc61e138b5\",\"07fe3a38-3801-46d4-a87b-f6c09df2cb56\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View TYCHON Host Connection Details\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Endpoint List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":6,\"h\":52,\"i\":\"a718b065-8aa4-4122-8209-9e8166809166\"},\"panelIndex\":\"a718b065-8aa4-4122-8209-9e8166809166\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e\"}],\"state\":{\"visualization\":{\"layerId\":\"75e99f33-af21-4c5b-bf43-27e613d19f1e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\"},{\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\",\"isTransposed\":false,\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75e99f33-af21-4c5b-bf43-27e613d19f1e\":{\"columns\":{\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\":{\"label\":\"Network Interface\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.interface\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"76ad0139-f4ce-47f6-8d1a-e3c6c545de46\",\"3d56cfc4-b5ca-4f33-99e7-26bea3bb0781\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Interfaces\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":52,\"i\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\"},\"panelIndex\":\"cdc2012f-9e23-4d08-b87d-df42e57ba04f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18\"}],\"state\":{\"visualization\":{\"layerId\":\"939ae107-5b48-47e3-a385-121998a30d18\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"oneClickFilter\":true},{\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\",\"isTransposed\":false},{\"columnId\":\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"isTransposed\":false},{\"columnId\":\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"isTransposed\":false,\"alignment\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"939ae107-5b48-47e3-a385-121998a30d18\":{\"columns\":{\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5341642-c7db-4c93-b27d-47844eeb8ee6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\":{\"label\":\"MAC Address\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.mac\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"destination.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"432028bb-1cb7-44a8-8446-0f3f023112c4\":{\"label\":\"Last Seen\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"629fcd61-a24e-4c3f-9756-8e1ab90bca37\",\"1e935b13-21c4-4c7c-bbdd-6cd440f9c198\",\"ab8a2ee6-37ba-424c-8e09-f59a80cdc5c2\",\"432028bb-1cb7-44a8-8446-0f3f023112c4\",\"e5341642-c7db-4c93-b27d-47844eeb8ee6\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"452d1f2a-645c-4b66-85da-ad52242236bf\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Search Google\",\"config\":{\"url\":{\"template\":\"https://google.com/search?q={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}},{\"eventId\":\"70b722a9-59f3-4b68-8341-0cda9ef41b28\",\"triggers\":[\"VALUE_CLICK_TRIGGER\"],\"action\":{\"factoryId\":\"URL_DRILLDOWN\",\"name\":\"Lookup MAC Address\",\"config\":{\"url\":{\"template\":\"https://maclookup.app/search/result?mac={{event.value}}\"},\"openInNewTab\":true,\"encodeUrl\":true}}}]}}},\"title\":\"ARP Table\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":5,\"h\":12,\"i\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\"},\"panelIndex\":\"4a40f01c-b8af-4bb3-832b-de481355be2f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74\"},{\"type\":\"index-pattern\",\"name\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\"}],\"state\":{\"visualization\":{\"layerId\":\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\",\"accessor\":\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"eec5b6be-b56e-44ea-b6df-dc957dd00778\",\"type\":\"exists\",\"key\":\"destination.mac\",\"value\":\"exists\",\"disabled\":false,\"negate\":false,\"alias\":null},\"query\":{\"exists\":{\"field\":\"destination.mac\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8199203d-fd63-4a05-9df6-38bfa2c6eb74\":{\"columns\":{\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\":{\"label\":\"Unique MAC Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.mac\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"e016cc96-3489-4383-a9c1-865a5ba8f0dd\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":29,\"w\":5,\"h\":12,\"i\":\"4139858c-c579-479b-aad7-90883296a136\"},\"panelIndex\":\"4139858c-c579-479b-aad7-90883296a136\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"8532a0b4-2a02-4dfa-b6aa-aabe01125b61\",\"name\":\"indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113\"}],\"state\":{\"visualization\":{\"layerId\":\"25e8d64c-1846-4743-950d-89d0fb6f1113\",\"accessor\":\"976f2848-673c-414f-bc8d-fb5f861fc48e\",\"layerType\":\"data\",\"textAlign\":\"center\",\"size\":\"xl\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"25e8d64c-1846-4743-950d-89d0fb6f1113\":{\"columns\":{\"976f2848-673c-414f-bc8d-fb5f861fc48e\":{\"label\":\"Unique IP Addresses\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"destination.ip\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"976f2848-673c-414f-bc8d-fb5f861fc48e\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] ARP Tables", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:35:07.156Z", + "id": "tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:indexpattern-datasource-layer-afc52d89-e35c-44fa-9d4f-3edd6b5dd245", + "type": "index-pattern" + }, + { + "id": "tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice", + "name": "ce775759-5615-4c75-9ef3-2a0330abbf25:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:e9dae9b3-8ad2-444c-97e2-fdaa1f8a3a34:dashboardId", + "type": "dashboard" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "a718b065-8aa4-4122-8209-9e8166809166:indexpattern-datasource-layer-75e99f33-af21-4c5b-bf43-27e613d19f1e", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "cdc2012f-9e23-4d08-b87d-df42e57ba04f:indexpattern-datasource-layer-939ae107-5b48-47e3-a385-121998a30d18", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:indexpattern-datasource-layer-8199203d-fd63-4a05-9df6-38bfa2c6eb74", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4a40f01c-b8af-4bb3-832b-de481355be2f:eec5b6be-b56e-44ea-b6df-dc957dd00778", + "type": "index-pattern" + }, + { + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "name": "4139858c-c579-479b-aad7-90883296a136:indexpattern-datasource-layer-25e8d64c-1846-4743-950d-89d0fb6f1113", + "type": "index-pattern" + }, + { + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "name": "tag-ref-c957d710-3d4c-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:35:07.156Z", + "version": "WzgxOTc4MiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json index 1d5b6d7ee26..0d7e6f1d22e 100644 --- a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json @@ -1,101 +1,101 @@ { - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" - }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser - Benchmark Results view displays all Benchmark SCAP scan results for the OS and Software installed.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"type\":\"phrase\",\"key\":\"host.hostname\",\"params\":{\"query\":\"BotanyBayEP1\"},\"disabled\":false,\"negate\":false,\"alias\":null,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"host.hostname\":\"BotanyBayEP1\"}},\"$state\":{\"store\":\"appState\"}}]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Endpoint Browser - Benchmark Results", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:38:45.823Z", - "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "name": "8f6fafd2-91a2-424b-a877-284568fd3f98:panel_8f6fafd2-91a2-424b-a877-284568fd3f98", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", - "type": "index-pattern" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", - "type": "index-pattern" - }, - { - "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", - "name": "f96a0653-055c-46d2-9dfd-f44631a1428b:panel_f96a0653-055c-46d2-9dfd-f44631a1428b", - "type": "visualization" - }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", - "type": "index-pattern" - }, - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "controlGroup_accc2a18-0c16-4d33-b8df-09233a36a580:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "579051b0-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:38:45.823Z", - "version": "WzgyMDAyMiwyMl0=" + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" + }, + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser - Benchmark Results view displays all Benchmark SCAP scan results for the OS and Software installed.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"type\":\"phrase\",\"key\":\"host.hostname\",\"params\":{\"query\":\"BotanyBayEP1\"},\"disabled\":false,\"negate\":false,\"alias\":null,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"host.hostname\":\"BotanyBayEP1\"}},\"$state\":{\"store\":\"appState\"}}]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Endpoint Browser - Benchmark Results", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:38:45.823Z", + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "name": "8f6fafd2-91a2-424b-a877-284568fd3f98:panel_8f6fafd2-91a2-424b-a877-284568fd3f98", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "type": "index-pattern" + }, + { + "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", + "name": "f96a0653-055c-46d2-9dfd-f44631a1428b:panel_f96a0653-055c-46d2-9dfd-f44631a1428b", + "type": "visualization" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", + "type": "index-pattern" + }, + { + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "name": "controlGroup_accc2a18-0c16-4d33-b8df-09233a36a580:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:38:45.823Z", + "version": "WzgyMDAyMiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json index 9c0f9ff8401..521ad2d5dd6 100644 --- a/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json +++ b/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json @@ -1,85 +1,85 @@ { - "attributes": { - "description": "TYCHON monitors endpoints for listening ports and reports them to the server. Details are captured at the time of the check and can be a historical view. However, similar listening ports are updated with each check.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":18,\"h\":39,\"i\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\"},\"panelIndex\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\",\"seriesType\":\"bar_horizontal\",\"xAccessor\":\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"accessors\":[\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"yConfig\":[{\"forAccessor\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\",\"axisMode\":\"auto\",\"color\":\"#6092c0\"}],\"layerType\":\"data\"}],\"xTitle\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\":{\"columns\":{\"2afe8e01-1ca4-407f-a375-5c177d34fd47\":{\"label\":\"Process Names\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\":{\"label\":\"Processes Captured\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Most Active Processes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":29,\"h\":9,\"i\":\"5720248d-77b4-4c3a-a755-856207618998\"},\"panelIndex\":\"5720248d-77b4-4c3a-a755-856207618998\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"8f31e3a1-68a6-4044-8fab-397567f134ee\",\"seriesType\":\"line\",\"accessors\":[\"c0c36be5-29d6-448d-8729-267feb104868\"],\"layerType\":\"data\",\"xAccessor\":\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8f31e3a1-68a6-4044-8fab-397567f134ee\":{\"columns\":{\"c0c36be5-29d6-448d-8729-267feb104868\":{\"label\":\"Network Transport\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"network.transport\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\":{\"label\":\"Events Observed\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"1w\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true}},\"columnOrder\":[\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\",\"c0c36be5-29d6-448d-8729-267feb104868\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":9,\"w\":30,\"h\":20,\"i\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\"},\"panelIndex\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"width\":118.72222222222229},{\"isTransposed\":false,\"columnId\":\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"width\":534.3333333333333},{\"isTransposed\":false,\"columnId\":\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"width\":100.22222222222223,\"alignment\":\"center\"},{\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\",\"isTransposed\":false}],\"layerId\":\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\":{\"columns\":{\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b91b4f2-60e0-40cd-84ef-e465c214834f\":{\"label\":\"Command Line\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2b439f50-e5cc-47de-9273-d990402ffbcd\":{\"label\":\"Transport\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\":{\"label\":\"Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"process.pid\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":29,\"w\":30,\"h\":10,\"i\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\"},\"panelIndex\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsHeatmap\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72\"}],\"state\":{\"visualization\":{\"shape\":\"heatmap\",\"layerId\":\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\",\"layerType\":\"data\",\"legend\":{\"isVisible\":false,\"position\":\"right\",\"type\":\"heatmap_legend\",\"legendSize\":\"small\"},\"gridConfig\":{\"type\":\"heatmap_grid\",\"isCellLabelVisible\":false,\"isYAxisLabelVisible\":true,\"isXAxisLabelVisible\":true,\"isYAxisTitleVisible\":false,\"isXAxisTitleVisible\":false},\"valueAccessor\":\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\",\"xAccessor\":\"8f79caa9-e76d-405b-a271-ca4f58938886\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\":{\"columns\":{\"8f79caa9-e76d-405b-a271-ca4f58938886\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\",\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\":{\"label\":\"Usage Instances\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8f79caa9-e76d-405b-a271-ca4f58938886\",\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Most Prevalent Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":48,\"h\":16,\"i\":\"4ab60584-3359-4217-892c-3dddbf754aff\"},\"panelIndex\":\"4ab60584-3359-4217-892c-3dddbf754aff\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":false,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"0e20ed19-aae0-4939-a956-68aceebc3f7e\",\"accessors\":[\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"splitAccessor\":\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e20ed19-aae0-4939-a956-68aceebc3f7e\":{\"columns\":{\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":25,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Unique count of process.name\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"626edc6d-37d3-46f2-8e1b-91e57c836d22\":{\"label\":\"# of Unique Processes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\":{\"label\":\"Top 100 values of process.name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\",\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":55,\"w\":33,\"h\":22,\"i\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\"},\"panelIndex\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\",\"primaryGroups\":[\"98f90733-b8b7-4748-a4da-ea0023622259\"],\"metrics\":[\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\":{\"columns\":{\"98f90733-b8b7-4748-a4da-ea0023622259\":{\"label\":\"Process Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"98f90733-b8b7-4748-a4da-ea0023622259\",\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":55,\"w\":15,\"h\":22,\"i\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\"},\"panelIndex\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed\"}],\"state\":{\"visualization\":{\"layerId\":\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3a6015f2-d1cd-49fa-821a-e1205400f24a\"},{\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"}],\"paging\":{\"size\":10,\"enabled\":true}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\":{\"columns\":{\"3a6015f2-d1cd-49fa-821a-e1205400f24a\":{\"label\":\"Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3a6015f2-d1cd-49fa-821a-e1205400f24a\",\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Exposed Services", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:36:42.243Z", - "id": "tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "258910e8-1f41-4100-a8c6-1bd212f9d27e:indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "5720248d-77b4-4c3a-a755-856207618998:indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "3b75685e-24d0-4a07-bb8d-65011b6109e1:indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "87617db0-cd7c-4f32-99bd-1f2615d8d1a7:indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "4ab60584-3359-4217-892c-3dddbf754aff:indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "cee8b6b3-2032-4e8e-a12a-4f8b0023a506:indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9", - "type": "index-pattern" - }, - { - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "name": "8e36813d-4556-4641-8d29-4f2f295cb7c1:indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed", - "type": "index-pattern" - }, - { - "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", - "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-23T20:36:42.243Z", - "version": "WzgxOTg2NCwyMl0=" + "attributes": { + "description": "TYCHON monitors endpoints for listening ports and reports them to the server. Details are captured at the time of the check and can be a historical view. However, similar listening ports are updated with each check.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":18,\"h\":39,\"i\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\"},\"panelIndex\":\"258910e8-1f41-4100-a8c6-1bd212f9d27e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\",\"seriesType\":\"bar_horizontal\",\"xAccessor\":\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"accessors\":[\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"yConfig\":[{\"forAccessor\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\",\"axisMode\":\"auto\",\"color\":\"#6092c0\"}],\"layerType\":\"data\"}],\"xTitle\":\"\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"24de3dec-56cf-4cf2-98a6-3c78ed05d960\":{\"columns\":{\"2afe8e01-1ca4-407f-a375-5c177d34fd47\":{\"label\":\"Process Names\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\":{\"label\":\"Processes Captured\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"2afe8e01-1ca4-407f-a375-5c177d34fd47\",\"a3a0c1b6-7adc-46b9-ac80-d01429354e82\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Most Active Processes\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":29,\"h\":9,\"i\":\"5720248d-77b4-4c3a-a755-856207618998\"},\"panelIndex\":\"5720248d-77b4-4c3a-a755-856207618998\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"line\",\"layers\":[{\"layerId\":\"8f31e3a1-68a6-4044-8fab-397567f134ee\",\"seriesType\":\"line\",\"accessors\":[\"c0c36be5-29d6-448d-8729-267feb104868\"],\"layerType\":\"data\",\"xAccessor\":\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8f31e3a1-68a6-4044-8fab-397567f134ee\":{\"columns\":{\"c0c36be5-29d6-448d-8729-267feb104868\":{\"label\":\"Network Transport\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"network.transport\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\":{\"label\":\"Events Observed\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"1w\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true}},\"columnOrder\":[\"79ff6781-0fe5-404b-9e55-d6d334aed1d5\",\"c0c36be5-29d6-448d-8729-267feb104868\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":9,\"w\":30,\"h\":20,\"i\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\"},\"panelIndex\":\"3b75685e-24d0-4a07-bb8d-65011b6109e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"width\":118.72222222222229},{\"isTransposed\":false,\"columnId\":\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"width\":534.3333333333333},{\"isTransposed\":false,\"columnId\":\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"width\":100.22222222222223,\"alignment\":\"center\"},{\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\",\"isTransposed\":false}],\"layerId\":\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a860a0ca-9856-48a6-9f80-c2f21b8bf996\":{\"columns\":{\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\":{\"label\":\"Process Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b91b4f2-60e0-40cd-84ef-e465c214834f\":{\"label\":\"Command Line\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.command_line\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2b439f50-e5cc-47de-9273-d990402ffbcd\":{\"label\":\"Transport\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"network.transport\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\":{\"label\":\"Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"process.pid\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"a1d81ada-dd46-4a1c-ba1e-e7fb49550f37\",\"9b91b4f2-60e0-40cd-84ef-e465c214834f\",\"2b439f50-e5cc-47de-9273-d990402ffbcd\",\"58e2c5f1-f3fd-4a97-ad00-146eaf5f9f26\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":29,\"w\":30,\"h\":10,\"i\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\"},\"panelIndex\":\"87617db0-cd7c-4f32-99bd-1f2615d8d1a7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsHeatmap\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72\"}],\"state\":{\"visualization\":{\"shape\":\"heatmap\",\"layerId\":\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\",\"layerType\":\"data\",\"legend\":{\"isVisible\":false,\"position\":\"right\",\"type\":\"heatmap_legend\",\"legendSize\":\"small\"},\"gridConfig\":{\"type\":\"heatmap_grid\",\"isCellLabelVisible\":false,\"isYAxisLabelVisible\":true,\"isXAxisLabelVisible\":true,\"isYAxisTitleVisible\":false,\"isXAxisTitleVisible\":false},\"valueAccessor\":\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\",\"xAccessor\":\"8f79caa9-e76d-405b-a271-ca4f58938886\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2ce2e63d-d815-4db1-bc4b-609f7f80dc72\":{\"columns\":{\"8f79caa9-e76d-405b-a271-ca4f58938886\":{\"label\":\"Port Number\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"source.port\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\",\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\":{\"label\":\"Usage Instances\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8f79caa9-e76d-405b-a271-ca4f58938886\",\"b4070a76-140e-47e4-a8e6-6aac0093c5e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Most Prevalent Ports\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":39,\"w\":48,\"h\":16,\"i\":\"4ab60584-3359-4217-892c-3dddbf754aff\"},\"panelIndex\":\"4ab60584-3359-4217-892c-3dddbf754aff\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":false,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"0e20ed19-aae0-4939-a956-68aceebc3f7e\",\"accessors\":[\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"splitAccessor\":\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e20ed19-aae0-4939-a956-68aceebc3f7e\":{\"columns\":{\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":25,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Unique count of process.name\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"process.name\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"626edc6d-37d3-46f2-8e1b-91e57c836d22\":{\"label\":\"# of Unique Processes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\":{\"label\":\"Top 100 values of process.name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"73f9e58f-3b19-49b9-bfcf-9ac756934c66\",\"9556d14b-aa4e-465b-b781-ab354b1ac7c7\",\"626edc6d-37d3-46f2-8e1b-91e57c836d22\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":55,\"w\":33,\"h\":22,\"i\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\"},\"panelIndex\":\"cee8b6b3-2032-4e8e-a12a-4f8b0023a506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\",\"primaryGroups\":[\"98f90733-b8b7-4748-a4da-ea0023622259\"],\"metrics\":[\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e0cae3a1-c6ec-43da-b419-1e93f1b79cc9\":{\"columns\":{\"98f90733-b8b7-4748-a4da-ea0023622259\":{\"label\":\"Process Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"98f90733-b8b7-4748-a4da-ea0023622259\",\"e7b1d7e7-fbcb-4ac1-b820-085a98e899c2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":33,\"y\":55,\"w\":15,\"h\":22,\"i\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\"},\"panelIndex\":\"8e36813d-4556-4641-8d29-4f2f295cb7c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"c6b645d3-dd29-43f2-b831-49e29ffd5b6c\",\"name\":\"indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed\"}],\"state\":{\"visualization\":{\"layerId\":\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3a6015f2-d1cd-49fa-821a-e1205400f24a\"},{\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"}],\"paging\":{\"size\":10,\"enabled\":true}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"892c0e1e-878a-4e74-8cfc-00ebf1171aed\":{\"columns\":{\"3a6015f2-d1cd-49fa-821a-e1205400f24a\":{\"label\":\"Username\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"process.user.name\",\"isBucketed\":true,\"params\":{\"size\":10000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3a6015f2-d1cd-49fa-821a-e1205400f24a\",\"2ab88515-4a2c-4bc3-8382-18e713e44bb8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Exposed Services", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:36:42.243Z", + "id": "tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "258910e8-1f41-4100-a8c6-1bd212f9d27e:indexpattern-datasource-layer-24de3dec-56cf-4cf2-98a6-3c78ed05d960", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "5720248d-77b4-4c3a-a755-856207618998:indexpattern-datasource-layer-8f31e3a1-68a6-4044-8fab-397567f134ee", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "3b75685e-24d0-4a07-bb8d-65011b6109e1:indexpattern-datasource-layer-a860a0ca-9856-48a6-9f80-c2f21b8bf996", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "87617db0-cd7c-4f32-99bd-1f2615d8d1a7:indexpattern-datasource-layer-2ce2e63d-d815-4db1-bc4b-609f7f80dc72", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "4ab60584-3359-4217-892c-3dddbf754aff:indexpattern-datasource-layer-0e20ed19-aae0-4939-a956-68aceebc3f7e", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "cee8b6b3-2032-4e8e-a12a-4f8b0023a506:indexpattern-datasource-layer-e0cae3a1-c6ec-43da-b419-1e93f1b79cc9", + "type": "index-pattern" + }, + { + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "name": "8e36813d-4556-4641-8d29-4f2f295cb7c1:indexpattern-datasource-layer-892c0e1e-878a-4e74-8cfc-00ebf1171aed", + "type": "index-pattern" + }, + { + "id": "e2bb7d40-3de4-11ee-9610-15dee918f31a", + "name": "tag-ref-e2bb7d40-3de4-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-23T20:36:42.243Z", + "version": "WzgxOTg2NCwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json index 370ff79b24e..680ccc3cfed 100644 --- a/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json +++ b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json @@ -1,140 +1,140 @@ { - "attributes": { - "description": "TYCHON reports on current TPM, Device Guard, Secure Boot, DMA, System Guard, and HVE Code Integrity being available and Enabled.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":8,\"i\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\"},\"panelIndex\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd\"}],\"state\":{\"visualization\":{\"layerId\":\"cebe4c55-66db-4691-b44a-a6282a29a7bd\",\"accessor\":\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cebe4c55-66db-4691-b44a-a6282a29a7bd\":{\"columns\":{\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\":{\"label\":\"Total Number of Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":7,\"h\":4,\"i\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\"},\"panelIndex\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Base Virtualization Support Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":7,\"h\":4,\"i\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\"},\"panelIndex\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Hypervisor Enforced Code Integrity Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":0,\"w\":7,\"h\":4,\"i\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\"},\"panelIndex\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true\",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":7,\"h\":4,\"i\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\"},\"panelIndex\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"color\":\"#2567ca\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Memory Overwrite Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":7,\"h\":4,\"i\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\"},\"panelIndex\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"DMA Protections Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available :false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":4,\"i\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\"},\"panelIndex\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":4,\"w\":7,\"h\":4,\"i\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\"},\"panelIndex\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Windows SMM Security Mitigation Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":7,\"h\":4,\"i\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\"},\"panelIndex\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"HVE Code Integrity Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":4,\"w\":7,\"h\":4,\"i\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\"},\"panelIndex\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":4,\"w\":7,\"h\":4,\"i\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\"},\"panelIndex\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Boot Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.secureboot.available : false\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":4,\"w\":7,\"h\":4,\"i\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\"},\"panelIndex\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"UEFI Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.ufi.enabled : true\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":4,\"w\":7,\"h\":4,\"i\":\"a1836875-cbd5-44ec-9543-1eea05689733\"},\"panelIndex\":\"a1836875-cbd5-44ec-9543-1eea05689733\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":3,\"h\":17,\"i\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\"},\"panelIndex\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469\"}],\"state\":{\"visualization\":{\"layerId\":\"e940b5ed-a6d9-488f-871b-d3e89450a469\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"ticksPosition\":\"auto\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"maxAccessor\":\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"minAccessor\":\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e940b5ed-a6d9-488f-871b-d3e89450a469\":{\"columns\":{\"278aed0b-127a-4727-9b30-36d8cbc242f3\":{\"label\":\"TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b80e387-9916-4bef-9384-2a873e0e498f\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"3da8457f-342e-4115-ab2e-60b4c410a9bf\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":8,\"w\":6,\"h\":11,\"i\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\"},\"panelIndex\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2\"}],\"state\":{\"visualization\":{\"layerId\":\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\",\"accessor\":\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#E7664C\",\"stop\":60},{\"color\":\"#D6BF57\",\"stop\":90},{\"color\":\"#54B399\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#D6BF57\",\"stop\":60},{\"color\":\"#54B399\",\"stop\":90}],\"continuity\":\"below\",\"maxSteps\":5}}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\":{\"columns\":{\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"location\":{\"min\":1,\"max\":77},\"text\":\"count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')\"},100],\"location\":{\"min\":0,\"max\":84},\"text\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\"}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\":{\"label\":\"Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"customLabel\":true}},\"columnOrder\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":32,\"i\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\"},\"panelIndex\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"daf16339-8bfb-4e36-99ce-5e66793f4264\"},{\"isTransposed\":false,\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},{\"columnId\":\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"isTransposed\":false}],\"layerId\":\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\":{\"columns\":{\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"daf16339-8bfb-4e36-99ce-5e66793f4264\":{\"label\":\"OS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"39ce7546-1fb9-4625-b47c-b7658520ab4e\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"ce080286-8ed3-43e4-8df3-f0547b3d2760\":{\"label\":\"Kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"daf16339-8bfb-4e36-99ce-5e66793f4264\",\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":19,\"w\":6,\"h\":6,\"i\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\"},\"panelIndex\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"TPM Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"host.tpm.present : \\\"false\\\" \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":9,\"h\":15,\"i\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\"},\"panelIndex\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\",\"primaryGroups\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\"],\"metrics\":[\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":0,\"emptySizeRatio\":0.7,\"legendPosition\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\":{\"columns\":{\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\":{\"label\":\"Device Guard Versions\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0537ada3-7bcd-48a3-a141-da31c0877743\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0537ada3-7bcd-48a3-a141-da31c0877743\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\",\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TPM Versions\"}]", - "refreshInterval": { - "pause": true, - "value": 0 - }, - "timeFrom": "now-30d/d", - "timeRestore": true, - "timeTo": "now", - "title": "[TYCHON] Virtualization Based Security Settings", - "version": 1 - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-19T10:32:54.894Z", - "id": "tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host", - "migrationVersion": { - "dashboard": "8.6.0" - }, - "references": [ - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "98423c47-09a4-460b-a2b2-f3c111bae4b5:indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "0510df0c-1a13-43a1-a9da-e3837ff6b001:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "2296650a-59b3-49c3-8766-9b3e5dc2a60b:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "b3b4f8d0-f425-4f30-bf9b-08f9bac344be:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "8288c8d3-8052-4fcb-b8b1-03a03c088699:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "c86a6a37-5078-43c1-aed8-8a49373bafe2:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "d7ddb672-7f1d-4833-a1a5-becc42cf9dec:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "75a9ea69-9a70-490e-b260-664cdc9aa03f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "6e8d444b-1a29-4b93-90bd-f6aebfa0818c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "915bad91-ce3c-461d-94ef-5da768d08aa1:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "a1836875-cbd5-44ec-9543-1eea05689733:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "91fa4dd4-c51a-4d25-bd36-7960198d687c:indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "14ea02d4-b08f-4545-8415-c06fc189d8d2:indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "4720fc52-f5a8-4db8-a38c-aacecd78ffd4:indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "bde24496-933d-417a-bece-b1d1f5b0ec93:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", - "type": "index-pattern" - }, - { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", - "name": "336ed7ca-cfb0-4f6f-8537-614b062c122e:indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a", - "type": "index-pattern" - }, - { - "id": "f26ce820-3d47-11ee-9610-15dee918f31a", - "name": "tag-ref-f26ce820-3d47-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", - "type": "tag" - } - ], - "type": "dashboard", - "updated_at": "2023-08-19T10:32:54.894Z", - "version": "WzY5NzU2MywxNl0=" + "attributes": { + "description": "TYCHON reports on current TPM, Device Guard, Secure Boot, DMA, System Guard, and HVE Code Integrity being available and Enabled.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":8,\"i\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\"},\"panelIndex\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd\"}],\"state\":{\"visualization\":{\"layerId\":\"cebe4c55-66db-4691-b44a-a6282a29a7bd\",\"accessor\":\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cebe4c55-66db-4691-b44a-a6282a29a7bd\":{\"columns\":{\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\":{\"label\":\"Total Number of Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":7,\"h\":4,\"i\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\"},\"panelIndex\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Base Virtualization Support Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":7,\"h\":4,\"i\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\"},\"panelIndex\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Hypervisor Enforced Code Integrity Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":0,\"w\":7,\"h\":4,\"i\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\"},\"panelIndex\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true\",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":7,\"h\":4,\"i\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\"},\"panelIndex\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"color\":\"#2567ca\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Memory Overwrite Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":7,\"h\":4,\"i\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\"},\"panelIndex\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"DMA Protections Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available :false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":4,\"i\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\"},\"panelIndex\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":4,\"w\":7,\"h\":4,\"i\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\"},\"panelIndex\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Windows SMM Security Mitigation Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":7,\"h\":4,\"i\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\"},\"panelIndex\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"HVE Code Integrity Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":4,\"w\":7,\"h\":4,\"i\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\"},\"panelIndex\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":4,\"w\":7,\"h\":4,\"i\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\"},\"panelIndex\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Boot Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.secureboot.available : false\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":4,\"w\":7,\"h\":4,\"i\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\"},\"panelIndex\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"UEFI Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.ufi.enabled : true\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":4,\"w\":7,\"h\":4,\"i\":\"a1836875-cbd5-44ec-9543-1eea05689733\"},\"panelIndex\":\"a1836875-cbd5-44ec-9543-1eea05689733\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":3,\"h\":17,\"i\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\"},\"panelIndex\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469\"}],\"state\":{\"visualization\":{\"layerId\":\"e940b5ed-a6d9-488f-871b-d3e89450a469\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"ticksPosition\":\"auto\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"maxAccessor\":\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"minAccessor\":\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e940b5ed-a6d9-488f-871b-d3e89450a469\":{\"columns\":{\"278aed0b-127a-4727-9b30-36d8cbc242f3\":{\"label\":\"TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b80e387-9916-4bef-9384-2a873e0e498f\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"3da8457f-342e-4115-ab2e-60b4c410a9bf\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":8,\"w\":6,\"h\":11,\"i\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\"},\"panelIndex\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2\"}],\"state\":{\"visualization\":{\"layerId\":\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\",\"accessor\":\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#E7664C\",\"stop\":60},{\"color\":\"#D6BF57\",\"stop\":90},{\"color\":\"#54B399\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#D6BF57\",\"stop\":60},{\"color\":\"#54B399\",\"stop\":90}],\"continuity\":\"below\",\"maxSteps\":5}}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\":{\"columns\":{\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"location\":{\"min\":1,\"max\":77},\"text\":\"count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')\"},100],\"location\":{\"min\":0,\"max\":84},\"text\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\"}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\":{\"label\":\"Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"customLabel\":true}},\"columnOrder\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":32,\"i\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\"},\"panelIndex\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"daf16339-8bfb-4e36-99ce-5e66793f4264\"},{\"isTransposed\":false,\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},{\"columnId\":\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"isTransposed\":false}],\"layerId\":\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\":{\"columns\":{\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"daf16339-8bfb-4e36-99ce-5e66793f4264\":{\"label\":\"OS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"39ce7546-1fb9-4625-b47c-b7658520ab4e\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"ce080286-8ed3-43e4-8df3-f0547b3d2760\":{\"label\":\"Kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"daf16339-8bfb-4e36-99ce-5e66793f4264\",\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":19,\"w\":6,\"h\":6,\"i\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\"},\"panelIndex\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"TPM Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"host.tpm.present : \\\"false\\\" \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":9,\"h\":15,\"i\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\"},\"panelIndex\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\",\"primaryGroups\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\"],\"metrics\":[\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":0,\"emptySizeRatio\":0.7,\"legendPosition\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\":{\"columns\":{\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\":{\"label\":\"Device Guard Versions\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0537ada3-7bcd-48a3-a141-da31c0877743\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0537ada3-7bcd-48a3-a141-da31c0877743\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\",\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TPM Versions\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Virtualization Based Security Settings", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-19T10:32:54.894Z", + "id": "tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "98423c47-09a4-460b-a2b2-f3c111bae4b5:indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "0510df0c-1a13-43a1-a9da-e3837ff6b001:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "2296650a-59b3-49c3-8766-9b3e5dc2a60b:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "b3b4f8d0-f425-4f30-bf9b-08f9bac344be:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "8288c8d3-8052-4fcb-b8b1-03a03c088699:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "c86a6a37-5078-43c1-aed8-8a49373bafe2:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "d7ddb672-7f1d-4833-a1a5-becc42cf9dec:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "75a9ea69-9a70-490e-b260-664cdc9aa03f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "6e8d444b-1a29-4b93-90bd-f6aebfa0818c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "915bad91-ce3c-461d-94ef-5da768d08aa1:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "a1836875-cbd5-44ec-9543-1eea05689733:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "91fa4dd4-c51a-4d25-bd36-7960198d687c:indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "14ea02d4-b08f-4545-8415-c06fc189d8d2:indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "4720fc52-f5a8-4db8-a38c-aacecd78ffd4:indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "bde24496-933d-417a-bece-b1d1f5b0ec93:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", + "type": "index-pattern" + }, + { + "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "name": "336ed7ca-cfb0-4f6f-8537-614b062c122e:indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a", + "type": "index-pattern" + }, + { + "id": "f26ce820-3d47-11ee-9610-15dee918f31a", + "name": "tag-ref-f26ce820-3d47-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-19T10:32:54.894Z", + "version": "WzY5NzU2MywxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json index 55b83fa8c2b..7189730bd56 100644 --- a/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json +++ b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Hard Drives (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_harddrive*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T21:06:28.654Z", - "id": "2dc584bc-c446-4150-b561-1415a45ebe87", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-17T21:07:10.085Z", - "version": "WzY2MTQwMywxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Hard Drives (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_harddrive*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:06:28.654Z", + "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T21:07:10.085Z", + "version": "WzY2MTQwMywxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json index 971077a0a2c..630816e164b 100644 --- a/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json +++ b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Disk Volumes (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_volume*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T17:39:23.422Z", - "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-18T17:39:23.422Z", - "version": "WzY4MTg4OCwxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Disk Volumes (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_volume*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T17:39:23.422Z", + "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T17:39:23.422Z", + "version": "WzY4MTg4OCwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json index e663ef56242..2df41f6ef7d 100644 --- a/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json +++ b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{\"agent.name\":{\"count\":1},\"tychon.id\":{\"count\":2}}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "ARP (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_arp*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-04-03T15:59:09.464Z", - "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-18T13:15:57.463Z", - "version": "WzY3NTUxMCwxNl0=" + "attributes": { + "fieldAttrs": "{\"agent.name\":{\"count\":1},\"tychon.id\":{\"count\":2}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "ARP (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_arp*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-04-03T15:59:09.464Z", + "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T13:15:57.463Z", + "version": "WzY3NTUxMCwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json index 7826ec82549..238bdcdaed2 100644 --- a/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json +++ b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Host Info [TYCHON]", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_host-*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T00:22:24.456Z", - "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-23T00:22:40.345Z", - "version": "Wzc5NjEzMywyMl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Host Info [TYCHON]", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_host-*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T00:22:24.456Z", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-23T00:22:40.345Z", + "version": "Wzc5NjEzMywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json index f5638e8ded5..21a1ba820c2 100644 --- a/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json +++ b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Host CPUs (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_cpu*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T22:16:32.434Z", - "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-17T22:16:32.434Z", - "version": "WzY2MzMzNiwxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Host CPUs (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_cpu*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T22:16:32.434Z", + "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T22:16:32.434Z", + "version": "WzY2MzMzNiwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json index 4d1580a41f8..889f1ab95e9 100644 --- a/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json +++ b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Hardware (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_hardware*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T19:57:22.691Z", - "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-18T19:57:22.691Z", - "version": "WzY4MzgwMCwxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Hardware (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_hardware*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:57:22.691Z", + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T19:57:22.691Z", + "version": "WzY4MzgwMCwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json index 350c90a7048..685741494d9 100644 --- a/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json +++ b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{\"event.dataset\":{\"count\":1}}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "All TYCHON Logs (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-04-05T12:18:33.104Z", - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-04-05T12:59:43.059Z", - "version": "WzI1OTI3LDNd" + "attributes": { + "fieldAttrs": "{\"event.dataset\":{\"count\":1}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "All TYCHON Logs (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-04-05T12:18:33.104Z", + "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-04-05T12:59:43.059Z", + "version": "WzI1OTI3LDNd" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json index 47e31c4f2fe..4bd64c08dc5 100644 --- a/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json +++ b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Exposed Services (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_exposedservice*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T13:10:42.315Z", - "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-17T13:10:42.315Z", - "version": "WzY0Mjg1OCwxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Exposed Services (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_exposedservice*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T13:10:42.315Z", + "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-17T13:10:42.315Z", + "version": "WzY0Mjg1OCwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json index a78616588a2..4ad1b442022 100644 --- a/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json +++ b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Software Inventory (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_softwareinventory*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T19:23:20.043Z", - "id": "e0015160-781d-4885-9ae6-04230d059bfb", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-18T19:23:20.043Z", - "version": "WzY4MzE0MiwxNl0=" + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Software Inventory (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_softwareinventory*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:23:20.043Z", + "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T19:23:20.043Z", + "version": "WzY4MzE0MiwxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json index fb7cb9d8be5..5bf53baca56 100644 --- a/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json +++ b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json @@ -1,23 +1,23 @@ { - "attributes": { - "fieldAttrs": "{\"tychon.id\":{\"count\":1}}", - "fieldFormatMap": "{}", - "fields": "[]", - "name": "Network Adapters (TYCHON)", - "runtimeFieldMap": "{}", - "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_networkadapter*", - "typeMeta": "{}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T19:11:21.754Z", - "id": "e886429e-9532-4f44-bb36-6465fe760866", - "migrationVersion": { - "index-pattern": "8.0.0" - }, - "references": [], - "type": "index-pattern", - "updated_at": "2023-08-18T22:15:54.140Z", - "version": "WzY5MDAzMywxNl0=" + "attributes": { + "fieldAttrs": "{\"tychon.id\":{\"count\":1}}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Network Adapters (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "@timestamp", + "title": "logs-tychon.tychon_networkadapter*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:11:21.754Z", + "id": "e886429e-9532-4f44-bb36-6465fe760866", + "migrationVersion": { + "index-pattern": "8.0.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2023-08-18T22:15:54.140Z", + "version": "WzY5MDAzMywxNl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json new file mode 100644 index 00000000000..fe3fde918ed --- /dev/null +++ b/packages/tychon/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json @@ -0,0 +1,203 @@ +{ + "attributes": { + "description": null, + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "d985e735-8ce6-4cee-acea-2df5ee48fc05": { + "columnOrder": [ + "4692dda1-54b4-4b3f-8e76-20708e22e1ab", + "adde9065-5817-4ddc-b340-d71519a94995", + "edb01db2-fa13-4ba2-9971-d96b5d42e47e" + ], + "columns": { + "4692dda1-54b4-4b3f-8e76-20708e22e1ab": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Results and Severity", + "operationType": "terms", + "params": { + "orderBy": { + "type": "alphabetical" + }, + "orderDirection": "asc", + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "rule.severity" + }, + "adde9065-5817-4ddc-b340-d71519a94995": { + "dataType": "string", + "isBucketed": true, + "label": "Top 3 values of rule.result", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "edb01db2-fa13-4ba2-9971-d96b5d42e47e", + "type": "column" + }, + "orderDirection": "desc", + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "rule.result" + }, + "edb01db2-fa13-4ba2-9971-d96b5d42e47e": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Results", + "operationType": "count", + "scale": "ratio", + "sourceField": "___records___" + } + }, + "incompleteColumns": {} + }, + "dc42e337-08a9-4623-b480-57aaf4e69a0e": { + "columnOrder": [ + "bef1ef67-b5fb-4177-9077-17be73a0c360", + "32dece06-5eb5-45bd-9a70-e7d623409d89", + "628defec-6d4e-4df0-be5a-d58b051d5bb1" + ], + "columns": { + "32dece06-5eb5-45bd-9a70-e7d623409d89": { + "dataType": "string", + "isBucketed": true, + "label": "Top 3 values of rule.result", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "628defec-6d4e-4df0-be5a-d58b051d5bb1", + "type": "column" + }, + "orderDirection": "desc", + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "rule.result" + }, + "628defec-6d4e-4df0-be5a-d58b051d5bb1": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "scale": "ratio", + "sourceField": "___records___" + }, + "bef1ef67-b5fb-4177-9077-17be73a0c360": { + "dataType": "string", + "isBucketed": true, + "label": "Top 3 values of rule.severity", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "628defec-6d4e-4df0-be5a-d58b051d5bb1", + "type": "column" + }, + "orderDirection": "desc", + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "rule.severity" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": false, + "yLeft": false, + "yRight": true + }, + "layers": [ + { + "accessors": [ + "edb01db2-fa13-4ba2-9971-d96b5d42e47e" + ], + "layerId": "d985e735-8ce6-4cee-acea-2df5ee48fc05", + "layerType": "data", + "palette": { + "name": "complimentary", + "type": "palette" + }, + "position": "top", + "seriesType": "bar_horizontal_percentage_stacked", + "showGridlines": false, + "splitAccessor": "adde9065-5817-4ddc-b340-d71519a94995", + "xAccessor": "4692dda1-54b4-4b3f-8e76-20708e22e1ab" + }, + { + "accessors": [ + "628defec-6d4e-4df0-be5a-d58b051d5bb1" + ], + "layerId": "dc42e337-08a9-4623-b480-57aaf4e69a0e", + "layerType": "data", + "palette": { + "name": "complimentary", + "type": "palette" + }, + "seriesType": "bar_horizontal_percentage_stacked", + "splitAccessor": "bef1ef67-b5fb-4177-9077-17be73a0c360", + "xAccessor": "32dece06-5eb5-45bd-9a70-e7d623409d89" + } + ], + "legend": { + "isVisible": false, + "legendSize": "auto", + "position": "left", + "showSingleSeries": false + }, + "preferredSeriesType": "bar_horizontal_percentage_stacked", + "title": "Empty XY chart" + } + }, + "title": "CCRI: Rule Results by Severity Percentage - Lens", + "visualizationType": "lnsXY" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-28T13:11:33.495Z", + "id": "tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", + "migrationVersion": { + "lens": "8.6.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "indexpattern-datasource-layer-d985e735-8ce6-4cee-acea-2df5ee48fc05", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "indexpattern-datasource-layer-dc42e337-08a9-4623-b480-57aaf4e69a0e", + "type": "index-pattern" + } + ], + "type": "lens", + "updated_at": "2023-06-28T13:11:33.495Z", + "version": "WzMyOTA4NSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..a253098fa6e --- /dev/null +++ b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json @@ -0,0 +1,54 @@ +{ + "id": "10359860-1139-11ee-af86-538da1394f27", + "type": "security-rule", + "attributes": { + "name": "CAT 1 IAVA Vulnerability Detected", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A category one IAVA has been detected as being vulnerable", + "risk_score": 90, + "severity": "high", + "note": "Investigator should work to patch this system for this IAVA as quickly as possible.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "10359860-1139-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json b/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json new file mode 100644 index 00000000000..57eb31d71b0 --- /dev/null +++ b/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json @@ -0,0 +1,60 @@ +{ + "id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", + "type": "security-rule", + "attributes": { + "name": "High number of SCAP Failures", + "tags": [ + "TYCHON", + "CCRI" + ], + "interval": "1h", + "enabled": true, + "description": "TYCHON has reported a high number of SCAP failures for an endpoint. This can indicate a very weak security posture for an endpoint.", + "risk_score": 47, + "severity": "medium", + "note": "The system may need to be isolated. Investigate the SCAP results for this system and perform fixes for all High and Medium checks. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3660s", + "rule_id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 20, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..d196821d0be --- /dev/null +++ b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json @@ -0,0 +1,61 @@ +{ + "id": "2e5a7e20-1137-11ee-af86-538da1394f27", + "type": "security-rule", + "attributes": { + "name": "Windows Defender Feature Reported as Disabled", + "tags": [ + "TYCHON", + "EPP", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A Feature in Windows Defender has been set to disabled in the latest report from the TYCHON Agentless Module", + "risk_score": 60, + "severity": "medium", + "note": "Analysts should look into the history of this endpoint to figure out when the feature was disabled and work to re-enable the feature.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "2e5a7e20-1137-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [ + { + "id": "T1089", + "reference": "https://attack.mitre.org/techniques/T1089", + "name": "Disabling Security Tools", + "subtechnique": [] + } + ] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..a894e02025f --- /dev/null +++ b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json @@ -0,0 +1,54 @@ +{ + "id": "2e9c9ac0-1138-11ee-af86-538da1394f27", + "type": "security-rule", + "attributes": { + "name": "Critical Vulnerability Failed", + "tags": [ + "TYCHON", + "CCRI", + "CVE" + ], + "interval": "5m", + "enabled": true, + "description": "A vulnerability that has been categorized as Critical by NVD has been reported as failed.", + "risk_score": 90, + "severity": "high", + "note": "Investigators should get systems with critical vulnerabilities patched and ensure mitigations are in place while the system is vulenrable.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "2e9c9ac0-1138-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json b/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json new file mode 100644 index 00000000000..4862924831c --- /dev/null +++ b/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json @@ -0,0 +1,57 @@ +{ + "id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", + "type": "security-rule", + "attributes": { + "name": "New Device Discovered", + "tags": [ + "TYCHON", + "ARP" + ], + "interval": "8h", + "enabled": false, + "description": "TYCHON pulls the ARP tables from endpoints, when new devices are found they should be investigated and validated.", + "risk_score": 21, + "severity": "low", + "note": "New devices come online and offline constantly, the MAC address should be investigated and resolved.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-32400s", + "rule_id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "new_terms", + "query": "not destination.mac : \"ff-ff-ff-ff-ff-ff\" ", + "new_terms_fields": [ + "destination.mac" + ], + "history_window_start": "now-7d", + "filters": [], + "language": "kuery", + "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json b/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json new file mode 100644 index 00000000000..9d10e2fddad --- /dev/null +++ b/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json @@ -0,0 +1,60 @@ +{ + "id": "5be38411-3902-4686-8209-1ab75a6d3847", + "type": "security-rule", + "attributes": { + "name": "Large number of failed Vulnerabilities ", + "tags": [ + "CVE", + "TYCHON" + ], + "interval": "1h", + "enabled": true, + "description": "This endpoint has been determined to have a high number of total vulnerabilities failed, this can indicate an extremely exposed endpoint.", + "risk_score": 73, + "severity": "high", + "note": "Due to the high number of failed CVE checks, it is recommended that the security administrator quarantine this system immediately and bring the machine up to date with all patches. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3900s", + "rule_id": "5be38411-3902-4686-8209-1ab75a6d3847", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 30, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json b/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json new file mode 100644 index 00000000000..6e759d93662 --- /dev/null +++ b/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json @@ -0,0 +1,45 @@ +{ + "id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", + "type": "security-rule", + "attributes": { + "name": "TYCHON Benchmark SCAP Definition File Out of Date", + "tags": [ + "TYCHON", + "SCAP" + ], + "interval": "24h", + "enabled": true, + "description": "TYCHON updates its SCAP definitions daily and should be no more than 120 days old to ensure you are working from the most up-to-date requirements and settings. ", + "risk_score": 47, + "severity": "medium", + "note": "TYCHON Definitions are updated daily, check the local host logs and see if there are issues with TYCHON definitions updating. You can obtain the latest version from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-86460s", + "rule_id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.stig \u003c \"now-120d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json b/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json new file mode 100644 index 00000000000..23cabe07fcc --- /dev/null +++ b/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json @@ -0,0 +1,53 @@ +{ + "id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", + "type": "security-rule", + "attributes": { + "name": "Endpoint Security Definitions are Out of Date", + "tags": [ + "EPP", + "TYCHON" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the registered endpoint protection platform is out of date and needs to be updated.", + "risk_score": 73, + "severity": "high", + "note": "Depending on the Endpoint Protection Vendor, you will need to push new updated to this endpoint. See the vendor's user guides to determine how to install the most recent AV updates.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.security.antivirus.status : *OutOfDate*", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json b/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json new file mode 100644 index 00000000000..501de15c886 --- /dev/null +++ b/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json @@ -0,0 +1,55 @@ +{ + "id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", + "type": "security-rule", + "attributes": { + "name": "TPM Compliance Failed", + "tags": [ + "TYCHON", + "STIG" + ], + "interval": "5m", + "enabled": true, + "description": "This host has been determined by TYCHON to be non-compliant with the Trusted Platform Module (TPM), this is due to it being not present or at the wrong version.", + "risk_score": 47, + "severity": "medium", + "note": "Enable TPM 2.0 on this machine, if it is unable to be enabled because the host does not support it, determine the risk and take appropriate measures.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0006", + "reference": "https://attack.mitre.org/tactics/TA0006", + "name": "Credential Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.tpm.compliant : false ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..0fc3ac423f1 --- /dev/null +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json @@ -0,0 +1,53 @@ +{ + "id": "867e3450-1139-11ee-af86-538da1394f27", + "type": "security-rule", + "attributes": { + "name": "High STIG/SCAP Check Failed", + "tags": [ + "TYCHON", + "CCRI", + "SCAP" + ], + "interval": "5m", + "enabled": true, + "description": "A High Severity STIG/SCAP Check failed on an endpoint.", + "risk_score": 60, + "severity": "medium", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "867e3450-1139-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "query": "rule.result : \"fail\" and rule.severity : \"high\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..19f15e7028a --- /dev/null +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json @@ -0,0 +1,54 @@ +{ + "id": "934a39a0-1138-11ee-af86-538da1394f27", + "type": "security-rule", + "attributes": { + "name": "High Vulnerability Failed", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A host with a high-severity CVE was flagged as being vulnerable.", + "risk_score": 60, + "severity": "medium", + "note": "Investigator should work to resolve this patch and keep a close monitor on this endpoint.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "934a39a0-1138-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json b/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json new file mode 100644 index 00000000000..146fb6921bc --- /dev/null +++ b/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json @@ -0,0 +1,51 @@ +{ + "id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", + "type": "security-rule", + "attributes": { + "name": "Weak WIFI Authentication in use", + "tags": [], + "interval": "5m", + "enabled": true, + "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", + "risk_score": 21, + "severity": "low", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.techtarget.com/searchnetworking/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", + "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json b/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json new file mode 100644 index 00000000000..7ca38703831 --- /dev/null +++ b/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json @@ -0,0 +1,56 @@ +{ + "id": "beeea32f-31ba-4be8-9e2c-14de47280aac", + "type": "security-rule", + "attributes": { + "name": "Past Due Vulnerability Failed", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON tracks when vulnerabilities are past expiration to ensure systems are patched before exploits are released or to reduce the attack surface of the endpoint. Due dates are generated from 3 rules:\n1. CISA - Exact CISA Due Date\n2. IAVA - 18 Days from when TYCHON records an IAVA is released\n3. NVD - If a Vulnerability is marked as critical, the due date is generated as 30 days after its release.", + "risk_score": 99, + "severity": "critical", + "note": "Analysts should quarantine hosts that have out-of-date vulnerabilities, these are normally weaknesses that have active exploits in the wild. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "beeea32f-31ba-4be8-9e2c-14de47280aac", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.cisa.gov/known-exploited-vulnerabilities-catalog" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" and vulnerability.due_date \u003c now", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json b/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json new file mode 100644 index 00000000000..5445182ce93 --- /dev/null +++ b/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json @@ -0,0 +1,45 @@ +{ + "id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", + "type": "security-rule", + "attributes": { + "name": "TYCHON Vulnerability Definitions Out of Date", + "tags": [ + "TYCHON", + "CVE" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON updates its definitions daily for vulnerability checks, if systems are too far out of date you are not getting the results for the most recent vulnerabilities further affecting your attack surface.", + "risk_score": 73, + "severity": "high", + "note": "Review the endpoint event logs and determine why TYCHON definitions are not being updated and pushed. Ensure you have downloaded the latest definition installers from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.oval \u003c \"now-30d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json b/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json new file mode 100644 index 00000000000..5923815ff91 --- /dev/null +++ b/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json @@ -0,0 +1,53 @@ +{ + "id": "d0d735ed-08fe-4393-9aa6-120236995152", + "type": "security-rule", + "attributes": { + "name": "System Volume Mounted to Drive", + "tags": [ + "TYCHON", + "Volume" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the system volume has been mounted to a drive letter.", + "risk_score": 47, + "severity": "medium", + "note": "Investigate and determine how the drive was mounted and remove the mount if it was done maliciously.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "d0d735ed-08fe-4393-9aa6-120236995152", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0004", + "reference": "https://attack.mitre.org/tactics/TA0004", + "name": "Privilege Escalation" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "query": "volume.system_volume : true and not volume.drive.letter : \"\"", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..70c29e83076 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#13814a", + "description": "TYCHON reported TCP and UDP ports that are or were open and listening on endpoints.", + "name": "Open Ports" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:33:49.204Z", + "id": "tychon-026431f0-3de5-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:33:49.204Z", + "version": "WzY4MDI0OCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json b/packages/tychon/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json new file mode 100644 index 00000000000..7a9cf643a5e --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#9b2767", + "description": "TYCHON capture of Network adapters attached to endpoints.", + "name": "Network Adapter" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T13:07:53.023Z", + "id": "tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-23T13:07:53.023Z", + "version": "WzgwNjc5OSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..97f75700480 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#c30936", + "description": "TYCHON installed software and apps found on an endpoint.", + "name": "Applications" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:26:40.105Z", + "id": "tychon-27edf330-3dfd-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T19:26:40.105Z", + "version": "WzY4MzIzMiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..5e7abb98d8a --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#2075cf", + "description": "A Command Cyber Readiness Inspection Report", + "name": "CCRI" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T11:45:03.146Z", + "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T11:45:03.146Z", + "version": "WzI3Njg3MSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..4686ef9991e --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#75899c", + "description": "This tag indicates a \"Starting Point\" for dashboards that utulize drill downs.", + "name": "TYCHON Primary View" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T12:04:15.710Z", + "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T12:04:15.710Z", + "version": "WzY3MzY3MCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..ea07996e48a --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#154a15", + "description": "The hardware detected by TYCHON as attached to an endpoint", + "name": "Hardware" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T20:04:47.768Z", + "id": "tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T20:04:47.768Z", + "version": "WzY4NDA2NCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..4bb083d8b89 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#85ed08", + "description": "Hard Drives on Computers", + "name": "Drives" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:03:21.673Z", + "id": "tychon-7f851220-3d41-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:03:21.673Z", + "version": "WzY2MTI0MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..41c4144285c --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#58b7ff", + "description": "Vulnerability Information", + "name": "CVE" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T13:28:01.234Z", + "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T13:28:01.234Z", + "version": "WzI4MTM1OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..d327204d266 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#efe009", + "description": "The TYCHON Endpoint Browser allows a user to see detailed Endpoint Reported data for a single host.", + "name": "Endpoint Browser" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:45:29.125Z", + "id": "tychon-a3922360-3de6-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:45:29.125Z", + "version": "WzY4MDQ3NSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..16caf7e9913 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#14d15e", + "description": "Endpoint Protection Statuses", + "name": "EPP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T19:33:57.192Z", + "id": "tychon-bae88930-1133-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T19:33:57.192Z", + "version": "WzI4NTA4OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..61c4fd9b410 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#AA6556", + "description": "Routing Tables from Systems", + "name": "ARP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T22:24:09.990Z", + "id": "tychon-c957d710-3d4c-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T22:24:09.990Z", + "version": "WzY2MzYyNiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..89ae180af87 --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#afaddf", + "description": "Master Endpoint Record", + "name": "MER" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-16T22:40:20.761Z", + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-16T22:40:20.761Z", + "version": "WzYzNTA3MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..7e59dbc91ad --- /dev/null +++ b/packages/tychon/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#bcbc9c", + "description": "Virtualization Based Security", + "name": "VBS" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:49:31.431Z", + "id": "tychon-f26ce820-3d47-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:49:31.431Z", + "version": "WzY2MjY4NywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json new file mode 100644 index 00000000000..ad3337e3c67 --- /dev/null +++ b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json @@ -0,0 +1,28 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "CCRI: Rule Results - Table", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":null}}}}", + "version": 1, + "visState": "{\"title\":\"CCRI: Rule Results - Table\",\"type\":\"table\",\"aggs\":[{\"id\":\"6\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity:medium\",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity:low\",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"schema\":\"bucket\"},{\"id\":\"8\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"8-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: \\\"pass\\\" \",\"language\":\"kuery\"},\"label\":\"Pass\"}]}},\"customMetric\":{\"id\":\"8-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Pass\"},\"schema\":\"metric\"},{\"id\":\"9\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"9-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"Fail\"}]}},\"customMetric\":{\"id\":\"9-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Fail\"},\"schema\":\"metric\"},{\"id\":\"1\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"1-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: pass\",\"language\":\"kuery\"},\"label\":\"\"},{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"\"}]}},\"customMetric\":{\"id\":\"1-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Total\"},\"schema\":\"metric\"}],\"params\":{\"perPage\":5,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":true,\"totalFunc\":\"sum\",\"dimensions\":{\"metrics\":[{\"accessor\":6,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":4,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":5,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"date\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]},\"percentageCol\":\"\",\"showToolbar\":true,\"autoFitRowToContent\":false}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-21T19:32:46.551Z", + "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2023-06-21T19:32:46.551Z", + "version": "WzI3NTAyMCwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json b/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json new file mode 100644 index 00000000000..ae54a350ebb --- /dev/null +++ b/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "title": "CCRI: Benchmark Scores CCRI Weighted - Markdown", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"CCRI: Benchmark Scores CCRI Weighted - Markdown\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":10,\"openLinksInNewTab\":false,\"markdown\":\"| CCRI Score | Description |\\n| :------------ | :------------ |\\n| 20-100% | Critical Concern |\\n| 10-20% | Moderate Concern |\\n| 0-10% | Minor Concern |\\n| 0% | No Concern |\\n\"}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-20T14:00:50.463Z", + "id": "tychon-d954bdb0-3298-11ec-b058-cf4fefc29658", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2023-06-20T14:00:50.463Z", + "version": "WzI2NDEwMiwxMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json new file mode 100644 index 00000000000..b0931ffcd62 --- /dev/null +++ b/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json @@ -0,0 +1,28 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "CCRI: Total Systems - Metric", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"CCRI: Total Systems - Metric\",\"type\":\"metric\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"customLabel\":\"Systems\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":30}}}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-20T14:02:48.095Z", + "id": "tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2023-06-20T14:02:48.095Z", + "version": "WzI2NDE2NiwxMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json b/packages/tychon/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json new file mode 100644 index 00000000000..14ada053e07 --- /dev/null +++ b/packages/tychon/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json @@ -0,0 +1,33 @@ +{ + "attributes": { + "description": "TYCHON Browser is a series of dashbaords dirlling into indvidual datasets for a single computer.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "title": "[TYCHON] Endpoint Browser -Main Navigation", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[TYCHON] Endpoint Browser -Main Navigation\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host) | [Network Cards](/app/dashboards#/view/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter) | [Drives and Disks](/app/dashboards#/view/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive) | [Apps and Software](/app/dashboards#/view/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory) | [Hardware](/app/dashboards#/view/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware) | [Vulnerabilities](/app/dashboards#/view/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve) | [Benchmark Results](/app/dashboards#/view/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig) | [Services and Ports](/app/dashboards#/view/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice) | [Protections](/app/dashboards#/view/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp)\"}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T21:04:08.909Z", + "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [ + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "visualization", + "updated_at": "2023-08-23T21:04:08.909Z", + "version": "WzgyMjAyOSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 6734c5d290c..0670578c7bf 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.1 +version: 0.0.23 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. @@ -15,13 +15,15 @@ conditions: elastic.subscription: "basic" screenshots: - src: /img/TychonScreenshot.png - title: Tychon + title: Tychon Vulnerabilities size: 600x600 type: image/png - src: /img/TYCHONScreenShot_1.png + title: Tychon Host Information size: 600x600 type: image/png - src: /img/TYCHONScreenShot_2.png + title: Endpoint Protection size: 600x600 type: image/png icons: From 872669a7014b53d0f8fa1200ad536a9184db9a79 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Fri, 25 Aug 2023 14:20:47 -0400 Subject: [PATCH 49/65] updated cve fields.yml --- packages/tychon/data_stream/tychon_cve/fields/fields.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 73e3f26b98b..00f2363cecb 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -7,6 +7,12 @@ - name: definition description: National Vulnerability Database Vulnerability Definition. type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword - name: iava description: Information Assurance Vulneraiblity Alert Identifier. type: keyword From 958162f9e52a43ffcbcfc64052212148f5644690 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Mon, 28 Aug 2023 15:24:16 -0400 Subject: [PATCH 50/65] Updated Pipelines & yml files --- packages/tychon/_dev/build/docs/README.md | 67 +- packages/tychon/changelog.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 28 +- .../data_stream/tychon_cve/fields/fields.yml | 4 +- .../data_stream/tychon_cve/manifest.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 20 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 17 +- .../elasticsearch/ingest_pipeline/default.yml | 2 +- packages/tychon/docs/README.md | 811 +++++++++++++++++- ...-4597-11ee-83e4-c92ed141b9e5-hardware.json | 95 ++ ...6a20-3d47-11ee-9610-15dee918f31a-host.json | 54 +- .../ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json | 65 ++ packages/tychon/manifest.yml | 2 +- 21 files changed, 1112 insertions(+), 73 deletions(-) create mode 100644 packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json create mode 100644 packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index 102f25dca8d..3b83431c7a2 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -10,23 +10,86 @@ ## Returned Data Fields +### ARP Table Information + +TYCHON scans Endpoint ARP Tables and returns the results. + +**Exported fields** +{{fields "tychon_arp"}} + ### Vulnerablities -TYCHON scans for endpoint vulenrabilites and returns the results. +TYCHON scans for Endpoint CPU's and returns the results. + +**Exported fields** +{{fields "tychon_cpu"}} + +### Vulnerablities + +TYCHON scans for Endpoint vulenrabilites and returns the results. **Exported fields** {{fields "tychon_cve"}} ### Endpoint Protection Platform -TYCHON scans the endpoint's Windows Defender and returns protection status and version details. +TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. **Exported fields** {{fields "tychon_epp"}} +### Endpoint Exposed Services Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_exposedservice"}} + +### Endpoint Hard Drive Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_harddrive"}} + +### Endpoint Hardware Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_hardware"}} + +### Endpoint Host OS Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_host"}} + +### Endpoint Network Adapters Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_networkadapter"}} + +### Endpoint Software Inventory Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_softwareinventory"}} + ### Endpoint STIG Information The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. **Exported fields** {{fields "tychon_stig"}} + +### Endpoint Volume Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +{{fields "tychon_volume"}} diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index d8b8727f558..21689307825 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.23 +- version: 0.0.25 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index 4d68c0d73d4..cd9279467b0 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for ARP processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index ad3829e3475..8ec4d4f4dda 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for CPU processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 6f75d685144..2fcdcd54170 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -1,21 +1,21 @@ --- -description: Pipeline for parsing TYCHON Vulnerability Scan Results +description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results processors: - dot_expander: field: "*" - - set: - if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") - field: host.id - value: "{{tychon.id}}" - - remove: - if: ctx.containsKey("tychon") && ctx.tychon.containsKey("id") - field: 'tychon' - set: field: _id value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: vulnerability.due_date + value: "1970-01-01T00:00:01Z" + if: ctx.vulnerability.due_date == '' - set: field: ecs.version value: 8.8.0 @@ -25,6 +25,15 @@ processors: - set: field: event.module value: tychon + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime - set: field: event.category value: [vulnerability] @@ -41,9 +50,6 @@ processors: field: host.mac pattern: ":" replacement: "-" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 00f2363cecb..2e5ad842973 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -9,10 +9,10 @@ type: keyword - name: due_date description: Vulnerability Due Date. - type: date + type: date - name: due_date_reason description: Vulnerability Due Date Reason - type: keyword + type: keyword - name: iava description: Information Assurance Vulneraiblity Alert Identifier. type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index c4ab3376931..7afc8e18535 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -13,7 +13,7 @@ streams: required: true show_user: true default: - - /root/systemInfo/data/tychon_cve_info.json + #- /root/systemInfo/data/tychon_cve_info.json - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cve_info.json - name: tags type: text diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index cb5c6ab2f5b..75ca141bfcf 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -3,19 +3,15 @@ description: Pipeline for EPP processors: - dot_expander: field: "*" - - set: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" - field: 'host.id' - value: '{{tychon.id}}' - - remove: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" - field: 'tychon' - set: field: '_id' value: '{{id}}' - set: field: '@timestamp' value: '{{_ingest.timestamp}}' + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' - set: field: ecs.version value: '8.8.0' @@ -28,9 +24,15 @@ processors: - set: field: event.category value: [host] + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime - set: - field: event.ingested - value: '{{_ingest.timestamp}}' + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime - convert: field: host.uptime type: long diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index ad3829e3475..93ef3a846f1 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for Exposed Services processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index d7ebf89ad47..fd86ece48f7 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for Hard Drives processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index 187bf4f4366..38b9dbc6f14 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for Hardware processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index 68ffe032fdf..bdc7f2aac19 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for TYCHON HOST OS processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 9a233ce2866..34bb9af13ee 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for parsing TYCHON Software Inventory +description: Pipeline for parsing TYCHON Network Adapters processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index b236704d332..1f3e670a887 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for Software Inventory processors: - dot_expander: field: "*" diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 41c4482de43..fef355b2f38 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -1,15 +1,8 @@ --- -description: Pipeline for parsing TYCHON Windows Patches +description: Pipeline for parsing TYCHON STIGs processors: - dot_expander: field: "*" - - set: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" - field: 'host.id' - value: '{{tychon.id}}' - - remove: - if: "ctx.containsKey('tychon') && ctx.tychon.containsKey('id')" - field: 'tychon' - set: if: "!(ctx.containsKey('id'))" field: id @@ -20,6 +13,9 @@ processors: - set: field: '@timestamp' value: '{{_ingest.timestamp}}' + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' - set: if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" field: rule.result @@ -39,14 +35,9 @@ processors: - set: field: event.category value: [host] - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' - convert: field: host.uptime type: long - - script: - source: ctx.host.mac = ctx.host.mac.replace(':','-') - convert: field: host.uptime type: long diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index 172cdcced9e..3f6306c9edc 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for TYCHON Volumes processors: - dot_expander: field: "*" diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 1daf4c1e67c..0da1468de39 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -10,9 +10,176 @@ ## Returned Data Fields +### ARP Table Information + +TYCHON scans Endpoint ARP Tables and returns the results. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| destination.hostname | | 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.name | | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| network.direction | Direction of the network traffic. 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.interface | | keyword | +| network.state | | 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 | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Vulnerablities + +TYCHON scans for Endpoint CPU's and returns the results. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | keyword | +| host.cpu.caption | | text | +| host.cpu.clockspeed | | long | +| host.cpu.family | | keyword | +| host.cpu.manufacturer | | keyword | +| host.cpu.name | | keyword | +| host.cpu.number_of_cores | | integer | +| host.cpu.number_of_logical_processors | | integer | +| host.cpu.speed | | long | +| host.cpu.virtualization_firmware_enabled | | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + ### Vulnerablities -TYCHON scans for endpoint vulenrabilites and returns the results. +TYCHON scans for Endpoint vulenrabilites and returns the results. **Exported fields** **Exported fields** @@ -101,6 +268,8 @@ TYCHON scans for endpoint vulenrabilites and returns the results. | vulnerability.definition | National Vulnerability Database Vulnerability Definition. | keyword | | vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | | vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | +| vulnerability.due_date | Vulnerability Due Date. | date | +| vulnerability.due_date_reason | Vulnerability Due Date Reason | keyword | | vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | | vulnerability.iava | Information Assurance Vulneraiblity Alert Identifier. | keyword | | vulnerability.iava_severity | Information Assurance Vulnerability Alert Severity. | keyword | @@ -118,7 +287,7 @@ TYCHON scans for endpoint vulenrabilites and returns the results. ### Endpoint Protection Platform -TYCHON scans the endpoint's Windows Defender and returns protection status and version details. +TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. **Exported fields** **Exported fields** @@ -225,6 +394,552 @@ TYCHON scans the endpoint's Windows Defender and returns protection status and v | windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | +### Endpoint Exposed Services Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| 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.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.sha1 | SHA1 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 | +| process.start | | 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 | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| service.description | | keyword | +| service.display_name | | keyword | +| service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | +| service.state | Current state of the service. | 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 | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Hard Drive Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| disk.adapter.serial_number | | keyword | +| disk.boot_from | | boolean | +| disk.bus_type | | keyword | +| disk.clustered | | boolean | +| disk.firmware.version | | keyword | +| disk.firmware_version | | keyword | +| disk.guid | | keyword | +| disk.health_status | | keyword | +| disk.highly_available | | boolean | +| disk.is_boot | | boolean | +| disk.location.adapter | | integer | +| disk.location.bus | | integer | +| disk.location.device | | integer | +| disk.location.function | | integer | +| disk.manufacturer | | keyword | +| disk.model | | keyword | +| disk.name | | keyword | +| disk.number | | integer | +| disk.number_of_partitions | | integer | +| disk.offline | | boolean | +| disk.operational_status | | keyword | +| disk.partition_style | | keyword | +| disk.serial_number | | keyword | +| disk.size | | long | +| disk.system | | boolean | +| 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Hardware Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| device.class | | keyword | +| device.description | | keyword | +| device.friendly_name | | keyword | +| device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | +| device.manufacturer | The vendor name of the device manufacturer. | keyword | +| device.name | | keyword | +| device.present | | boolean | +| device.status | | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Host OS Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| event.deviceguard.basevirtualizationsupport.available | | boolean | +| event.deviceguard.credentialguard.enabled | | boolean | +| event.deviceguard.credentialguard.running | | boolean | +| event.deviceguard.dmaprotection.available | | boolean | +| event.deviceguard.hypervisorenforcedcodeint.enabled | | boolean | +| event.deviceguard.hypervisorenforcedcodeint.running | | boolean | +| event.deviceguard.secureboot.available | | boolean | +| event.deviceguard.securememoverwrite.available | | boolean | +| event.deviceguard.smmsecuritymigrations.available | | boolean | +| event.deviceguard.systemguardsecurelaunch.enabled | | boolean | +| event.deviceguard.systemguardsecurelaunch.running | | boolean | +| event.deviceguard.ueficodereadonly.available | | boolean | +| event.deviceguard.usermodecodeintegrity.policyenforcement | | keyword | +| event.deviceguard.version | | keyword | +| event.deviceguard.virtualizationbasedsecurity.status | | keyword | +| event.ufi.enabled | | boolean | +| host.architecture | Operating system architecture. | keyword | +| host.biossn | Host BIOS Serial Number. | keyword | +| host.cpu.caption | | keyword | +| host.cpu.count | | integer | +| 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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.memory.size | | long | +| host.motherboard.chipset | | keyword | +| host.motherboard.serial_number | | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | keyword | +| host.os.edition | | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | +| host.os.vendor | | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.security.antivirus.exists | | boolean | +| host.security.antivirus.name | | keyword | +| host.security.antivirus.state | | keyword | +| host.security.antivirus.status | | keyword | +| host.tpm.compliant | | boolean | +| host.tpm.digest.id | | keyword | +| host.tpm.present | | boolean | +| host.tpm.version | | 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 | +| host.uptime | Seconds the host has been up. | long | +| host.virtualization_status | | keyword | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file type. | keyword | +| log.offset | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tychon.definition.oval | | date | +| tychon.definition.stig | | date | +| tychon.id | TYCHON unique host identifier. | keyword | +| tychon.version.agent | | version | +| tychon.version.content | | version | + + +### Endpoint Network Adapters Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | keyword | +| event.ingested | | date | +| host.adapter.alias | | keyword | +| host.adapter.description | | text | +| host.adapter.dhcp.enabled | | boolean | +| host.adapter.dhcp.lease_expires | | date | +| host.adapter.dhcp.lease_obtained | | date | +| host.adapter.dhcp.server | | ip | +| host.adapter.domain | | keyword | +| host.adapter.driver.date | | date | +| host.adapter.driver.description | | text | +| host.adapter.driver.file_name | | keyword | +| host.adapter.driver.name | | keyword | +| host.adapter.driver.provider | | keyword | +| host.adapter.driver.version | | keyword | +| host.adapter.gateway | | ip | +| host.adapter.id | | keyword | +| host.adapter.ip | | ip | +| host.adapter.ip_filter.enabled | | boolean | +| host.adapter.link_speed | | long | +| host.adapter.mac | | keyword | +| host.adapter.media.connection_state | | keyword | +| host.adapter.media.type | | keyword | +| host.adapter.mtu | | integer | +| host.adapter.ndis.version | | keyword | +| host.adapter.subnet_bit | | integer | +| host.adapter.virtual | | boolean | +| host.adapter.vlan.id | | keyword | +| host.adapter.wifi.enabled | | boolean | +| host.adapter.wifi.signal_percent | | integer | +| host.adapter.wins_server | | keyword | +| host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file type. | keyword | +| log.offset | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Software Inventory Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| package.architecture | Package architecture. | keyword | +| package.cpe | | keyword | +| package.description | Description of the package. | keyword | +| package.id | | keyword | +| package.installed | Time when package was installed. | date | +| package.name | Package name | keyword | +| package.path | Path where the package is installed. | keyword | +| package.publisher | | keyword | +| package.size | Package size in bytes. | long | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| package.uninstall | | text | +| package.version | Package version | keyword | +| package.version_build | | integer | +| package.version_major | | integer | +| package.version_minor | | integer | +| package.version_release | | integer | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + ### Endpoint STIG Information The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. @@ -341,3 +1056,95 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | + +### Endpoint Volume Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Source file 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 | Source file current offset. | long | +| script.current_duration | Scanner Script Duration. | float | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | +| volume.automount | | boolean | +| volume.block_size | | long | +| volume.dirty_bit_set | | boolean | +| volume.dos_device_path | | text | +| volume.drive.letter | | keyword | +| volume.drive.type | | keyword | +| volume.file_system | | keyword | +| volume.freespace | | long | +| volume.id | | keyword | +| volume.name | | keyword | +| volume.page_file_present | | boolean | +| volume.percent_full | | float | +| volume.power_management_supported | | boolean | +| volume.purpose | | keyword | +| volume.serial_number | | keyword | +| volume.size | | long | +| volume.system_volume | | boolean | + diff --git a/packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json b/packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json new file mode 100644 index 00000000000..d9bc571261d --- /dev/null +++ b/packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json @@ -0,0 +1,95 @@ +{ + "attributes": { + "description": "TYCHON Collects information about all the hardware attached to a device and centrally reports them for device identification and alerting.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":9,\"i\":\"17c7be63-f9af-43b2-b072-46419958ea46\"},\"panelIndex\":\"17c7be63-f9af-43b2-b072-46419958ea46\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Hardware\\nTYCHON collects information about all the hardware attached to a device, this is a running configuration which means devices will update on each execution of its check.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":6,\"h\":9,\"i\":\"7ba08a47-401e-4d22-a992-9c49fc569971\"},\"panelIndex\":\"7ba08a47-401e-4d22-a992-9c49fc569971\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-a1cda907-11f0-4670-aa5e-e3e30f1d24e9\"}],\"state\":{\"visualization\":{\"layerId\":\"a1cda907-11f0-4670-aa5e-e3e30f1d24e9\",\"accessor\":\"fc348028-9e09-4cd5-940b-ef83d2359eed\",\"layerType\":\"data\",\"size\":\"xl\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a1cda907-11f0-4670-aa5e-e3e30f1d24e9\":{\"columns\":{\"fc348028-9e09-4cd5-940b-ef83d2359eed\":{\"label\":\"Total Number of Devices\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"fc348028-9e09-4cd5-940b-ef83d2359eed\"],\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":5,\"h\":9,\"i\":\"2e2bf3e3-dff8-43f1-a238-14c583057748\"},\"panelIndex\":\"2e2bf3e3-dff8-43f1-a238-14c583057748\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-180f9fce-b975-42dc-b910-16129cc7ce18\"}],\"state\":{\"visualization\":{\"layerId\":\"180f9fce-b975-42dc-b910-16129cc7ce18\",\"layerType\":\"data\",\"metricAccessor\":\"11470769-8f79-4e86-82ee-4ca06d1d68b9\",\"maxAccessor\":\"a1bf5eb6-4030-44c9-9be1-f817716c0c81\",\"showBar\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"180f9fce-b975-42dc-b910-16129cc7ce18\":{\"columns\":{\"11470769-8f79-4e86-82ee-4ca06d1d68b9\":{\"label\":\"Total Missing\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"device.present : false \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a1bf5eb6-4030-44c9-9be1-f817716c0c81\":{\"label\":\"Total Devices\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"11470769-8f79-4e86-82ee-4ca06d1d68b9\",\"a1bf5eb6-4030-44c9-9be1-f817716c0c81\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":30,\"h\":9,\"i\":\"c113e347-dd42-4bc1-9aef-335a839532a6\"},\"panelIndex\":\"c113e347-dd42-4bc1-9aef-335a839532a6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-98992589-ad15-4ced-9b63-1024a02e5ffc\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"98992589-ad15-4ced-9b63-1024a02e5ffc\",\"accessors\":[\"65039f2f-1a79-47a9-8bce-bc7973880d19\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"6cf9b997-b221-4440-b5eb-2e5ca62085c6\",\"yConfig\":[{\"forAccessor\":\"65039f2f-1a79-47a9-8bce-bc7973880d19\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"98992589-ad15-4ced-9b63-1024a02e5ffc\":{\"columns\":{\"6cf9b997-b221-4440-b5eb-2e5ca62085c6\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"65039f2f-1a79-47a9-8bce-bc7973880d19\":{\"label\":\"Completed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"event.provider : \\\"TYCHON\\\" and event.code: 8572 \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"6cf9b997-b221-4440-b5eb-2e5ca62085c6\",\"65039f2f-1a79-47a9-8bce-bc7973880d19\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hardware Check Runs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":9,\"h\":32,\"i\":\"dddc033e-26c8-4d25-8eaf-7a71e4ede5d1\"},\"panelIndex\":\"dddc033e-26c8-4d25-8eaf-7a71e4ede5d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-de0ffd5a-a84b-408a-8918-277dff49c8b3\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"365f3728-0ff7-4aa1-b698-5c0f73e18885\"},{\"isTransposed\":false,\"columnId\":\"a2dd15c9-029c-45c5-9ffc-2128d8339b73\"}],\"layerId\":\"de0ffd5a-a84b-408a-8918-277dff49c8b3\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"de0ffd5a-a84b-408a-8918-277dff49c8b3\":{\"columns\":{\"365f3728-0ff7-4aa1-b698-5c0f73e18885\":{\"label\":\"Class Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.class\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a2dd15c9-029c-45c5-9ffc-2128d8339b73\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a2dd15c9-029c-45c5-9ffc-2128d8339b73\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"365f3728-0ff7-4aa1-b698-5c0f73e18885\",\"a2dd15c9-029c-45c5-9ffc-2128d8339b73\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device Class\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":9,\"w\":17,\"h\":32,\"i\":\"c8b42e5a-83d8-4825-a492-da98c13a1a08\"},\"panelIndex\":\"c8b42e5a-83d8-4825-a492-da98c13a1a08\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-34a2436c-07dc-498a-be40-8cb262419c05\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a95f71cb-2e47-4697-bf7e-85ad057c2d40\"},{\"isTransposed\":false,\"columnId\":\"81d20c1a-4966-49ba-b8f7-8bd498efe960\"}],\"layerId\":\"34a2436c-07dc-498a-be40-8cb262419c05\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"34a2436c-07dc-498a-be40-8cb262419c05\":{\"columns\":{\"a95f71cb-2e47-4697-bf7e-85ad057c2d40\":{\"label\":\"Device Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.name\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"81d20c1a-4966-49ba-b8f7-8bd498efe960\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"81d20c1a-4966-49ba-b8f7-8bd498efe960\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"a95f71cb-2e47-4697-bf7e-85ad057c2d40\",\"81d20c1a-4966-49ba-b8f7-8bd498efe960\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Device List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":9,\"w\":22,\"h\":32,\"i\":\"4ac216eb-8bcc-494f-9b81-a9fe59ae81ab\"},\"panelIndex\":\"4ac216eb-8bcc-494f-9b81-a9fe59ae81ab\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-ac03e011-a4b2-4b4d-aa4a-cd03927d0caa\"}],\"state\":{\"visualization\":{\"layerId\":\"ac03e011-a4b2-4b4d-aa4a-cd03927d0caa\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"620db13d-b1cc-43ca-9c44-3ebce5134c4b\"},{\"columnId\":\"4ef80e17-b12d-4590-b3d6-ea41e57bb312\"},{\"columnId\":\"598c6951-5020-415f-a8a8-db6f45a2b048\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"28411865-706a-414c-b332-07d027efcd8d\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ac03e011-a4b2-4b4d-aa4a-cd03927d0caa\":{\"columns\":{\"620db13d-b1cc-43ca-9c44-3ebce5134c4b\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4ef80e17-b12d-4590-b3d6-ea41e57bb312\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"598c6951-5020-415f-a8a8-db6f45a2b048\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.name\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ef80e17-b12d-4590-b3d6-ea41e57bb312\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"28411865-706a-414c-b332-07d027efcd8d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"4ef80e17-b12d-4590-b3d6-ea41e57bb312\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"598c6951-5020-415f-a8a8-db6f45a2b048\",\"620db13d-b1cc-43ca-9c44-3ebce5134c4b\",\"28411865-706a-414c-b332-07d027efcd8d\",\"4ef80e17-b12d-4590-b3d6-ea41e57bb312\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"90abb6a6-a494-4eb6-a02d-c2a1e8ee11a8\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Hardware Info in Endpoint Browser\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":41,\"w\":26,\"h\":26,\"i\":\"0d51f28d-c2bd-4b50-ab4f-ffb355da70e6\"},\"panelIndex\":\"0d51f28d-c2bd-4b50-ab4f-ffb355da70e6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-81933fcc-92fd-4aff-a302-cb7b541a46d7\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"81933fcc-92fd-4aff-a302-cb7b541a46d7\",\"primaryGroups\":[\"f827526d-46e8-4209-8473-083bd58d1690\"],\"metrics\":[\"a8290c50-0d81-465f-b289-1d4f0b891052\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"legendPosition\":\"top\",\"legendMaxLines\":2}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"81933fcc-92fd-4aff-a302-cb7b541a46d7\":{\"columns\":{\"f827526d-46e8-4209-8473-083bd58d1690\":{\"label\":\"Top 10 values of device.manufacturer\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"device.manufacturer\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"a8290c50-0d81-465f-b289-1d4f0b891052\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"a8290c50-0d81-465f-b289-1d4f0b891052\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"f827526d-46e8-4209-8473-083bd58d1690\",\"a8290c50-0d81-465f-b289-1d4f0b891052\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":41,\"w\":22,\"h\":26,\"i\":\"3c97fa95-19e7-468c-8f1e-b0c7792b4efd\"},\"panelIndex\":\"3c97fa95-19e7-468c-8f1e-b0c7792b4efd\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"a57870ef-07d8-4d12-a067-8c66eefd10ca\",\"name\":\"indexpattern-datasource-layer-b2e94ae9-2e1f-4a2f-b746-c80ae4d5f2d1\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"b2e94ae9-2e1f-4a2f-b746-c80ae4d5f2d1\",\"accessors\":[\"e4ac8fc3-809c-4fd0-aa94-e68a0a59a4a2\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"9385acc2-ff0d-4789-98d1-8da9ca6e54d9\",\"yConfig\":[{\"forAccessor\":\"e4ac8fc3-809c-4fd0-aa94-e68a0a59a4a2\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b2e94ae9-2e1f-4a2f-b746-c80ae4d5f2d1\":{\"columns\":{\"9385acc2-ff0d-4789-98d1-8da9ca6e54d9\":{\"label\":\"Operating System\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e4ac8fc3-809c-4fd0-aa94-e68a0a59a4a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4ac8fc3-809c-4fd0-aa94-e68a0a59a4a2\":{\"label\":\"Total Endpoints\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"9385acc2-ff0d-4789-98d1-8da9ca6e54d9\",\"e4ac8fc3-809c-4fd0-aa94-e68a0a59a4a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-30d/d", + "timeRestore": true, + "timeTo": "now", + "title": "[TYCHON] Hardware Inventory", + "version": 1 + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-28T11:39:42.189Z", + "id": "tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware", + "migrationVersion": { + "dashboard": "8.6.0" + }, + "references": [ + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "7ba08a47-401e-4d22-a992-9c49fc569971:indexpattern-datasource-layer-a1cda907-11f0-4670-aa5e-e3e30f1d24e9", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "2e2bf3e3-dff8-43f1-a238-14c583057748:indexpattern-datasource-layer-180f9fce-b975-42dc-b910-16129cc7ce18", + "type": "index-pattern" + }, + { + "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "name": "c113e347-dd42-4bc1-9aef-335a839532a6:indexpattern-datasource-layer-98992589-ad15-4ced-9b63-1024a02e5ffc", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "dddc033e-26c8-4d25-8eaf-7a71e4ede5d1:indexpattern-datasource-layer-de0ffd5a-a84b-408a-8918-277dff49c8b3", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "c8b42e5a-83d8-4825-a492-da98c13a1a08:indexpattern-datasource-layer-34a2436c-07dc-498a-be40-8cb262419c05", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "4ac216eb-8bcc-494f-9b81-a9fe59ae81ab:indexpattern-datasource-layer-ac03e011-a4b2-4b4d-aa4a-cd03927d0caa", + "type": "index-pattern" + }, + { + "id": "tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware", + "name": "4ac216eb-8bcc-494f-9b81-a9fe59ae81ab:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:90abb6a6-a494-4eb6-a02d-c2a1e8ee11a8:dashboardId", + "type": "dashboard" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "0d51f28d-c2bd-4b50-ab4f-ffb355da70e6:indexpattern-datasource-layer-81933fcc-92fd-4aff-a302-cb7b541a46d7", + "type": "index-pattern" + }, + { + "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "name": "3c97fa95-19e7-468c-8f1e-b0c7792b4efd:indexpattern-datasource-layer-b2e94ae9-2e1f-4a2f-b746-c80ae4d5f2d1", + "type": "index-pattern" + }, + { + "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "name": "tag-ref-tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + }, + { + "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-tychon-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + } + ], + "type": "dashboard", + "updated_at": "2023-08-28T11:39:42.189Z", + "version": "Wzg5NjcxNywyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json index 680ccc3cfed..a3c7c29dc30 100644 --- a/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json +++ b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json @@ -5,7 +5,7 @@ "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":8,\"i\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\"},\"panelIndex\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd\"}],\"state\":{\"visualization\":{\"layerId\":\"cebe4c55-66db-4691-b44a-a6282a29a7bd\",\"accessor\":\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cebe4c55-66db-4691-b44a-a6282a29a7bd\":{\"columns\":{\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\":{\"label\":\"Total Number of Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":7,\"h\":4,\"i\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\"},\"panelIndex\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Base Virtualization Support Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":7,\"h\":4,\"i\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\"},\"panelIndex\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Hypervisor Enforced Code Integrity Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":0,\"w\":7,\"h\":4,\"i\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\"},\"panelIndex\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true\",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":7,\"h\":4,\"i\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\"},\"panelIndex\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"color\":\"#2567ca\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Memory Overwrite Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":7,\"h\":4,\"i\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\"},\"panelIndex\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"DMA Protections Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available :false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":4,\"i\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\"},\"panelIndex\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":4,\"w\":7,\"h\":4,\"i\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\"},\"panelIndex\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Windows SMM Security Mitigation Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":7,\"h\":4,\"i\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\"},\"panelIndex\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"HVE Code Integrity Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":4,\"w\":7,\"h\":4,\"i\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\"},\"panelIndex\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":4,\"w\":7,\"h\":4,\"i\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\"},\"panelIndex\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Boot Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.secureboot.available : false\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":4,\"w\":7,\"h\":4,\"i\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\"},\"panelIndex\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"UEFI Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.ufi.enabled : true\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":4,\"w\":7,\"h\":4,\"i\":\"a1836875-cbd5-44ec-9543-1eea05689733\"},\"panelIndex\":\"a1836875-cbd5-44ec-9543-1eea05689733\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":3,\"h\":17,\"i\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\"},\"panelIndex\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469\"}],\"state\":{\"visualization\":{\"layerId\":\"e940b5ed-a6d9-488f-871b-d3e89450a469\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"ticksPosition\":\"auto\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"maxAccessor\":\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"minAccessor\":\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e940b5ed-a6d9-488f-871b-d3e89450a469\":{\"columns\":{\"278aed0b-127a-4727-9b30-36d8cbc242f3\":{\"label\":\"TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b80e387-9916-4bef-9384-2a873e0e498f\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"3da8457f-342e-4115-ab2e-60b4c410a9bf\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":8,\"w\":6,\"h\":11,\"i\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\"},\"panelIndex\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2\"}],\"state\":{\"visualization\":{\"layerId\":\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\",\"accessor\":\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#E7664C\",\"stop\":60},{\"color\":\"#D6BF57\",\"stop\":90},{\"color\":\"#54B399\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#D6BF57\",\"stop\":60},{\"color\":\"#54B399\",\"stop\":90}],\"continuity\":\"below\",\"maxSteps\":5}}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\":{\"columns\":{\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"location\":{\"min\":1,\"max\":77},\"text\":\"count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')\"},100],\"location\":{\"min\":0,\"max\":84},\"text\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\"}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\":{\"label\":\"Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"customLabel\":true}},\"columnOrder\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":32,\"i\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\"},\"panelIndex\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"daf16339-8bfb-4e36-99ce-5e66793f4264\"},{\"isTransposed\":false,\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},{\"columnId\":\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"isTransposed\":false}],\"layerId\":\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\":{\"columns\":{\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"daf16339-8bfb-4e36-99ce-5e66793f4264\":{\"label\":\"OS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"39ce7546-1fb9-4625-b47c-b7658520ab4e\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"ce080286-8ed3-43e4-8df3-f0547b3d2760\":{\"label\":\"Kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"daf16339-8bfb-4e36-99ce-5e66793f4264\",\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":19,\"w\":6,\"h\":6,\"i\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\"},\"panelIndex\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"TPM Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"host.tpm.present : \\\"false\\\" \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":9,\"h\":15,\"i\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\"},\"panelIndex\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"0e024f75-b1dc-43a9-8b88-5a8b36ac68db\",\"name\":\"indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\",\"primaryGroups\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\"],\"metrics\":[\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":0,\"emptySizeRatio\":0.7,\"legendPosition\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\":{\"columns\":{\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\":{\"label\":\"Device Guard Versions\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0537ada3-7bcd-48a3-a141-da31c0877743\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0537ada3-7bcd-48a3-a141-da31c0877743\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\",\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TPM Versions\"}]", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":6,\"h\":8,\"i\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\"},\"panelIndex\":\"98423c47-09a4-460b-a2b2-f3c111bae4b5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd\"}],\"state\":{\"visualization\":{\"layerId\":\"cebe4c55-66db-4691-b44a-a6282a29a7bd\",\"accessor\":\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"m\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cebe4c55-66db-4691-b44a-a6282a29a7bd\":{\"columns\":{\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\":{\"label\":\"Total Number of Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"30e5a2fc-ce4a-42a6-9422-debeb64ebe98\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":0,\"w\":7,\"h\":4,\"i\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\"},\"panelIndex\":\"0510df0c-1a13-43a1-a9da-e3837ff6b001\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Base Virtualization Support Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.basevirtualizationsupport.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":7,\"h\":4,\"i\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\"},\"panelIndex\":\"2296650a-59b3-49c3-8766-9b3e5dc2a60b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Hypervisor Enforced Code Integrity Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":0,\"w\":7,\"h\":4,\"i\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\"},\"panelIndex\":\"b3b4f8d0-f425-4f30-bf9b-08f9bac344be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true\",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":7,\"h\":4,\"i\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\"},\"panelIndex\":\"8288c8d3-8052-4fcb-b8b1-03a03c088699\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"color\":\"#2567ca\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Memory Overwrite Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.securememoverwrite.available : false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":7,\"h\":4,\"i\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\"},\"panelIndex\":\"c86a6a37-5078-43c1-aed8-8a49373bafe2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"DMA Protections Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.dmaprotection.available :false \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":0,\"w\":7,\"h\":4,\"i\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\"},\"panelIndex\":\"cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":6,\"y\":4,\"w\":7,\"h\":4,\"i\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\"},\"panelIndex\":\"d7ddb672-7f1d-4833-a1a5-becc42cf9dec\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Windows SMM Security Mitigation Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.smmsecuritymigrations.available : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":7,\"h\":4,\"i\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\"},\"panelIndex\":\"75a9ea69-9a70-490e-b260-664cdc9aa03f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"HVE Code Integrity Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.running : true \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"event.deviceguard.hypervisorenforcedcodeint.enabled : true \",\"language\":\"kuery\"},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":20,\"y\":4,\"w\":7,\"h\":4,\"i\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\"},\"panelIndex\":\"6e8d444b-1a29-4b93-90bd-f6aebfa0818c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Credential Guard Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.credentialguard.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":4,\"w\":7,\"h\":4,\"i\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\"},\"panelIndex\":\"915bad91-ce3c-461d-94ef-5da768d08aa1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"Secure Boot Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.secureboot.available : false\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":4,\"w\":7,\"h\":4,\"i\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\"},\"panelIndex\":\"46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"UEFI Enabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.ufi.enabled : true\",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":41,\"y\":4,\"w\":7,\"h\":4,\"i\":\"a1836875-cbd5-44ec-9543-1eea05689733\"},\"panelIndex\":\"a1836875-cbd5-44ec-9543-1eea05689733\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"8b1f00fe-d1df-49df-83c7-812185d80225\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"System Guard Secure Launch Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.running : true \",\"language\":\"kuery\"}},\"8b1f00fe-d1df-49df-83c7-812185d80225\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"event.deviceguard.systemguardsecurelaunch.enabled : true \",\"language\":\"kuery\"}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"8b1f00fe-d1df-49df-83c7-812185d80225\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":3,\"h\":17,\"i\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\"},\"panelIndex\":\"91fa4dd4-c51a-4d25-bd36-7960198d687c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469\"}],\"state\":{\"visualization\":{\"layerId\":\"e940b5ed-a6d9-488f-871b-d3e89450a469\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"ticksPosition\":\"auto\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"maxAccessor\":\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"minAccessor\":\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e940b5ed-a6d9-488f-871b-d3e89450a469\":{\"columns\":{\"278aed0b-127a-4727-9b30-36d8cbc242f3\":{\"label\":\"TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b80e387-9916-4bef-9384-2a873e0e498f\":{\"label\":\"Total Systems\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"3da8457f-342e-4115-ab2e-60b4c410a9bf\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"278aed0b-127a-4727-9b30-36d8cbc242f3\",\"5b80e387-9916-4bef-9384-2a873e0e498f\",\"3da8457f-342e-4115-ab2e-60b4c410a9bf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":8,\"w\":6,\"h\":11,\"i\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\"},\"panelIndex\":\"14ea02d4-b08f-4545-8415-c06fc189d8d2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2\"}],\"state\":{\"visualization\":{\"layerId\":\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\",\"accessor\":\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#E7664C\",\"stop\":60},{\"color\":\"#D6BF57\",\"stop\":90},{\"color\":\"#54B399\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#E7664C\",\"stop\":0},{\"color\":\"#D6BF57\",\"stop\":60},{\"color\":\"#54B399\",\"stop\":90}],\"continuity\":\"below\",\"maxSteps\":5}}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"08732232-1c74-4bc6-9dc9-4fcd5bff66d2\":{\"columns\":{\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"host.tpm.compliant : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\":{\"label\":\"Part of Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"location\":{\"min\":1,\"max\":77},\"text\":\"count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')\"},100],\"location\":{\"min\":0,\"max\":84},\"text\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\"}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\"],\"customLabel\":true},\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\":{\"label\":\"Percent TPM Compliant\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(count(kql='host.tpm.compliant : true') * count(kql='host.tpm.compliant : *')) / 100\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":2}}},\"references\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"customLabel\":true}},\"columnOrder\":[\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X0\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X1\",\"7e0f7dc7-3e17-41e7-9037-426df3fb1e02X2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":32,\"i\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\"},\"panelIndex\":\"4720fc52-f5a8-4db8-a38c-aacecd78ffd4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"daf16339-8bfb-4e36-99ce-5e66793f4264\"},{\"isTransposed\":false,\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},{\"columnId\":\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"isTransposed\":false}],\"layerId\":\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1590c162-36ad-41eb-9bb2-14e1ec9ae08b\":{\"columns\":{\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":150,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"daf16339-8bfb-4e36-99ce-5e66793f4264\":{\"label\":\"OS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"39ce7546-1fb9-4625-b47c-b7658520ab4e\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"ce080286-8ed3-43e4-8df3-f0547b3d2760\":{\"label\":\"Kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"a3aab062-cb0e-4d7f-8593-ecc6ba8bab6f\",\"daf16339-8bfb-4e36-99ce-5e66793f4264\",\"ce080286-8ed3-43e4-8df3-f0547b3d2760\",\"39ce7546-1fb9-4625-b47c-b7658520ab4e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Host List\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":3,\"y\":19,\"w\":6,\"h\":6,\"i\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\"},\"panelIndex\":\"bde24496-933d-417a-bece-b1d1f5b0ec93\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a\"}],\"state\":{\"visualization\":{\"layerId\":\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\",\"layerType\":\"data\",\"metricAccessor\":\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"maxAccessor\":\"450687e0-0597-4ee7-af97-1ee49bea450d\",\"showBar\":true,\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"426889ea-4a64-47bc-b75b-2db8ebe4da1a\":{\"columns\":{\"65782600-85b4-4811-96fe-d5e0b55cec61\":{\"label\":\"TPM Not Available\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true,\"filter\":{\"query\":\"host.tpm.present : \\\"false\\\" \",\"language\":\"kuery\"}},\"450687e0-0597-4ee7-af97-1ee49bea450d\":{\"label\":\"Unique count of host.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"65782600-85b4-4811-96fe-d5e0b55cec61\",\"450687e0-0597-4ee7-af97-1ee49bea450d\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":25,\"w\":9,\"h\":15,\"i\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\"},\"panelIndex\":\"336ed7ca-cfb0-4f6f-8537-614b062c122e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\"},\"layers\":[{\"layerId\":\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\",\"primaryGroups\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\"],\"metrics\":[\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"show\",\"nestedLegend\":false,\"layerType\":\"data\",\"percentDecimals\":0,\"emptySizeRatio\":0.7,\"legendPosition\":\"right\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"43643552-3cbb-4748-a6ab-d2a73bb57c1a\":{\"columns\":{\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\":{\"label\":\"Device Guard Versions\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0537ada3-7bcd-48a3-a141-da31c0877743\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0537ada3-7bcd-48a3-a141-da31c0877743\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"49f19bf6-e3d2-41b0-bc18-1a22f0915d8c\",\"0537ada3-7bcd-48a3-a141-da31c0877743\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"TPM Versions\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -17,99 +17,99 @@ "version": 1 }, "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-19T10:32:54.894Z", + "created_at": "2023-08-28T12:12:27.089Z", "id": "tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host", "migrationVersion": { "dashboard": "8.6.0" }, "references": [ { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "98423c47-09a4-460b-a2b2-f3c111bae4b5:indexpattern-datasource-layer-cebe4c55-66db-4691-b44a-a6282a29a7bd", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "0510df0c-1a13-43a1-a9da-e3837ff6b001:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "2296650a-59b3-49c3-8766-9b3e5dc2a60b:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "b3b4f8d0-f425-4f30-bf9b-08f9bac344be:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "8288c8d3-8052-4fcb-b8b1-03a03c088699:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "c86a6a37-5078-43c1-aed8-8a49373bafe2:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "cbe84ec6-8b4f-4be4-9862-b72c8ed16f0c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "d7ddb672-7f1d-4833-a1a5-becc42cf9dec:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "75a9ea69-9a70-490e-b260-664cdc9aa03f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "6e8d444b-1a29-4b93-90bd-f6aebfa0818c:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "915bad91-ce3c-461d-94ef-5da768d08aa1:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "46f76a3a-3bdf-42cf-9ed6-735fd2f0f27f:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "a1836875-cbd5-44ec-9543-1eea05689733:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "91fa4dd4-c51a-4d25-bd36-7960198d687c:indexpattern-datasource-layer-e940b5ed-a6d9-488f-871b-d3e89450a469", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "14ea02d4-b08f-4545-8415-c06fc189d8d2:indexpattern-datasource-layer-08732232-1c74-4bc6-9dc9-4fcd5bff66d2", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "4720fc52-f5a8-4db8-a38c-aacecd78ffd4:indexpattern-datasource-layer-1590c162-36ad-41eb-9bb2-14e1ec9ae08b", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "bde24496-933d-417a-bece-b1d1f5b0ec93:indexpattern-datasource-layer-426889ea-4a64-47bc-b75b-2db8ebe4da1a", "type": "index-pattern" }, { - "id": "0e024f75-b1dc-43a9-8b88-5a8b36ac68db", + "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", "name": "336ed7ca-cfb0-4f6f-8537-614b062c122e:indexpattern-datasource-layer-43643552-3cbb-4748-a6ab-d2a73bb57c1a", "type": "index-pattern" }, @@ -132,9 +132,19 @@ "id": "39b55820-10f2-11ee-af86-538da1394f27", "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" + }, + { + "id": "fleet-managed-default", + "name": "tag-ref-fleet-managed-default", + "type": "tag" + }, + { + "id": "fleet-pkg-tychon-default", + "name": "tag-ref-fleet-pkg-tychon-default", + "type": "tag" } ], "type": "dashboard", - "updated_at": "2023-08-19T10:32:54.894Z", - "version": "WzY5NzU2MywxNl0=" + "updated_at": "2023-08-28T12:12:27.089Z", + "version": "Wzg5NzMwMywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json new file mode 100644 index 00000000000..dfeefa07995 --- /dev/null +++ b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json @@ -0,0 +1,65 @@ +{ + "id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", + "type": "security-rule", + "attributes": { + "name": "New Command Generated a Listening port", + "tags": [ + "TYCHON", + "Exposed Services" + ], + "interval": "1h", + "enabled": false, + "description": "TYCHON is monitoring endpoints for ports that have been opened at the endpoint, if a new command line was used to start a process that hasn't been seen before this can be cause for concern.", + "risk_score": 47, + "severity": "medium", + "note": "Investigate the endpoint process that was used to open this port", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3660s", + "rule_id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0011", + "reference": "https://attack.mitre.org/tactics/TA0011", + "name": "Command and Control" + }, + "technique": [ + { + "id": "T1065", + "reference": "https://attack.mitre.org/techniques/T1065", + "name": "Uncommonly Used Port", + "subtechnique": [] + } + ] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "new_terms", + "query": "process.command_line : *", + "new_terms_fields": [ + "source.port", + "process.command_line" + ], + "history_window_start": "now-7d", + "filters": [], + "language": "kuery", + "data_view_id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 0670578c7bf..b96816d410f 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.23 +version: 0.0.25 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From d079f41f6a2a83ac94181d26c8b719a6779d0ff9 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Wed, 30 Aug 2023 19:34:40 -0400 Subject: [PATCH 51/65] Added transforms Version 0.0.27 --- packages/tychon/changelog.yml | 2 +- .../elasticsearch/ingest_pipeline/default.yml | 3 - .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 10 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../elasticsearch/ingest_pipeline/default.yml | 19 +- .../elasticsearch/ingest_pipeline/default.yml | 5 +- .../transform/arp/fields/agent.yml | 110 ++++++++++ .../transform/arp/fields/base-fields.yml | 6 + .../transform/arp/fields/ecs.yml | 78 +++++++ .../transform/arp/fields/fields.yml | 8 + .../elasticsearch/transform/arp/manifest.yml | 12 ++ .../elasticsearch/transform/arp/transform.yml | 19 ++ .../transform/cpu/fields/agent.yml | 110 ++++++++++ .../transform/cpu/fields/base-fields.yml | 6 + .../transform/cpu/fields/ecs.yml | 70 +++++++ .../transform/cpu/fields/fields.yml | 18 ++ .../elasticsearch/transform/cpu/manifest.yml | 12 ++ .../elasticsearch/transform/cpu/transform.yml | 19 ++ .../cve_windows_2019/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_2019/fields/base-fields.yml | 21 ++ .../transform/cve_windows_2019/fields/ecs.yml | 64 ++++++ .../cve_windows_2019/fields/fields.yml | 69 +++++++ .../transform/cve_windows_2019/manifest.yml | 12 ++ .../transform/cve_windows_2019/transform.yml | 26 +++ .../cve_windows_2020/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_2020/fields/base-fields.yml | 21 ++ .../transform/cve_windows_2020/fields/ecs.yml | 64 ++++++ .../cve_windows_2020/fields/fields.yml | 69 +++++++ .../transform/cve_windows_2020/manifest.yml | 12 ++ .../transform/cve_windows_2020/transform.yml | 26 +++ .../cve_windows_2021/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_2021/fields/base-fields.yml | 21 ++ .../transform/cve_windows_2021/fields/ecs.yml | 64 ++++++ .../cve_windows_2021/fields/fields.yml | 69 +++++++ .../transform/cve_windows_2021/manifest.yml | 12 ++ .../transform/cve_windows_2021/transform.yml | 26 +++ .../cve_windows_2022/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_2022/fields/base-fields.yml | 21 ++ .../transform/cve_windows_2022/fields/ecs.yml | 64 ++++++ .../cve_windows_2022/fields/fields.yml | 69 +++++++ .../transform/cve_windows_2022/manifest.yml | 12 ++ .../transform/cve_windows_2022/transform.yml | 26 +++ .../cve_windows_2023/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_2023/fields/base-fields.yml | 21 ++ .../transform/cve_windows_2023/fields/ecs.yml | 64 ++++++ .../cve_windows_2023/fields/fields.yml | 69 +++++++ .../transform/cve_windows_2023/manifest.yml | 12 ++ .../transform/cve_windows_2023/transform.yml | 26 +++ .../cve_windows_20xx/fields/agent.yml | 192 ++++++++++++++++++ .../cve_windows_20xx/fields/base-fields.yml | 21 ++ .../transform/cve_windows_20xx/fields/ecs.yml | 64 ++++++ .../cve_windows_20xx/fields/fields.yml | 69 +++++++ .../transform/cve_windows_20xx/manifest.yml | 12 ++ .../transform/cve_windows_20xx/transform.yml | 27 +++ .../transform/epp/fields/agent.yml | 192 ++++++++++++++++++ .../transform/epp/fields/base-fields.yml | 21 ++ .../transform/epp/fields/ecs.yml | 52 +++++ .../transform/epp/fields/fields.yml | 109 ++++++++++ .../elasticsearch/transform/epp/manifest.yml | 12 ++ .../elasticsearch/transform/epp/transform.yml | 19 ++ .../exposed_service/fields/agent.yml | 110 ++++++++++ .../exposed_service/fields/base-fields.yml | 6 + .../transform/exposed_service/fields/ecs.yml | 94 +++++++++ .../exposed_service/fields/fields.yml | 4 + .../transform/exposed_service/manifest.yml | 12 ++ .../transform/exposed_service/transform.yml | 19 ++ .../transform/hard_drive/fields/agent.yml | 110 ++++++++++ .../hard_drive/fields/base-fields.yml | 6 + .../transform/hard_drive/fields/ecs.yml | 70 +++++++ .../transform/hard_drive/fields/fields.yml | 50 +++++ .../transform/hard_drive/manifest.yml | 12 ++ .../transform/hard_drive/transform.yml | 19 ++ .../transform/hardware/fields/agent.yml | 110 ++++++++++ .../transform/hardware/fields/base-fields.yml | 6 + .../transform/hardware/fields/ecs.yml | 74 +++++++ .../transform/hardware/fields/fields.yml | 12 ++ .../transform/hardware/manifest.yml | 12 ++ .../transform/hardware/transform.yml | 19 ++ .../transform/host_info/fields/agent.yml | 110 ++++++++++ .../host_info/fields/base-fields.yml | 6 + .../transform/host_info/fields/ecs.yml | 32 +++ .../transform/host_info/fields/fields.yml | 72 +++++++ .../transform/host_info/manifest.yml | 12 ++ .../transform/host_info/transform.yml | 19 ++ .../network_adapter/fields/agent.yml | 110 ++++++++++ .../network_adapter/fields/base-fields.yml | 6 + .../transform/network_adapter/fields/ecs.yml | 36 ++++ .../network_adapter/fields/fields.yml | 58 ++++++ .../transform/network_adapter/manifest.yml | 12 ++ .../transform/network_adapter/transform.yml | 19 ++ .../fields/agent.yml | 110 ++++++++++ .../fields/base-fields.yml | 6 + .../fields/ecs.yml | 87 ++++++++ .../fields/fields.yml | 16 ++ .../software_inventory_installer/manifest.yml | 12 ++ .../transform.yml | 24 +++ .../software_inventory_store/fields/agent.yml | 110 ++++++++++ .../fields/base-fields.yml | 6 + .../software_inventory_store/fields/ecs.yml | 87 ++++++++ .../fields/fields.yml | 16 ++ .../software_inventory_store/manifest.yml | 12 ++ .../software_inventory_store/transform.yml | 24 +++ .../transform/stig/fields/agent.yml | 192 ++++++++++++++++++ .../transform/stig/fields/base-fields.yml | 21 ++ .../transform/stig/fields/ecs.yml | 54 +++++ .../transform/stig/fields/fields.yml | 126 ++++++++++++ .../elasticsearch/transform/stig/manifest.yml | 12 ++ .../transform/stig/transform.yml | 24 +++ .../transform/volume/fields/agent.yml | 110 ++++++++++ .../transform/volume/fields/base-fields.yml | 6 + .../transform/volume/fields/ecs.yml | 70 +++++++ .../transform/volume/fields/fields.yml | 34 ++++ .../transform/volume/manifest.yml | 12 ++ .../transform/volume/transform.yml | 19 ++ ...db40-d137-11e9-a2af-693b633cf871-stig.json | 68 ++++--- ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 56 +++-- ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 37 ++-- ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 56 ++--- .../02acfb43-5302-4331-bb10-4174171f6091.json | 22 ++ .../2dc584bc-c446-4150-b561-1415a45ebe87.json | 5 +- .../37150b25-1c34-494e-8214-b58a5a716c95.json | 22 ++ .../39822d3a-870f-4a82-8928-e9264b4d1a31.json | 22 ++ .../41d172ee-a0b8-4b20-9c93-6482f0abbdec.json | 22 ++ .../4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json | 22 ++ .../5be62502-2bab-4d66-97ff-d9373963c50d.json | 22 ++ .../62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json | 5 +- .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 7 +- .../6ce8198c-8c52-4f20-8e68-b566ebf84b18.json | 22 ++ .../78931842-dc88-45d7-a6ee-d79fb9f615bd.json | 5 +- .../7d972a32-d117-4963-a7bf-58fc65fb1ee8.json | 22 ++ .../8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json | 7 +- .../9267bb1b-cf22-4417-8cfb-6606848140a7.json | 5 +- .../a264bf8d-abc3-4789-9f4c-bf76397e06ba.json | 5 +- .../a57870ef-07d8-4d12-a067-8c66eefd10ca.json | 5 +- .../a61d021d-d78f-485d-93b2-8075149794af.json | 22 ++ .../b006641c-69de-48bd-9a5a-1125f0da1c0b.json | 22 ++ .../bb5226cd-c099-46d2-bb71-0257232c7d82.json | 5 +- .../c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json | 5 +- .../df491fbb-3f09-4ab0-995a-c2c549a9bc21.json | 3 +- .../e0015160-781d-4885-9ae6-04230d059bfb.json | 5 +- .../e886429e-9532-4f44-bb36-6465fe760866.json | 5 +- .../eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json | 22 ++ .../ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json | 5 +- .../f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json | 22 ++ .../ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json | 126 ++++++------ ...-837878a0-c3cb-11eb-8956-0b1a70e695fd.json | 20 +- ...-d954bdb0-3298-11ec-b058-cf4fefc29658.json | 14 +- ...-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json | 20 +- packages/tychon/manifest.yml | 4 +- 156 files changed, 6141 insertions(+), 280 deletions(-) create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/arp/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/arp/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cpu/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/epp/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/exposed_service/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/hard_drive/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/hardware/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/host_info/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/network_adapter/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/stig/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/volume/transform.yml create mode 100644 packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json create mode 100644 packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json create mode 100644 packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json create mode 100644 packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json create mode 100644 packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json create mode 100644 packages/tychon/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json create mode 100644 packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json create mode 100644 packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json create mode 100644 packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json create mode 100644 packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json create mode 100644 packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json create mode 100644 packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 21689307825..e382367778b 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.25 +- version: 0.0.27 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index cd9279467b0..f87ae5a84fe 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for ARP processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index 8ec4d4f4dda..7d5b3350c57 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for CPU processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: cpu - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 2fcdcd54170..12dae9b84df 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -25,6 +22,9 @@ processors: - set: field: event.module value: tychon + - set: + field: host.uptime + value: "{{host.uptime}}" - split: field: host.uptime separator: "\\.+" @@ -36,7 +36,7 @@ processors: field: tempuptime - set: field: event.category - value: [vulnerability] + value: vulnerability - script: source: | if(ctx.vulnerability?.result == 'fail'){ @@ -64,7 +64,7 @@ processors: value: tychon - set: field: vulnerability.category - value: [oval] + value: oval - set: field: vulnerability.classification value: cvss diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 75ca141bfcf..aae86e5fd6b 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for EPP processors: - dot_expander: field: "*" - - set: - field: '_id' - value: '{{id}}' - set: field: '@timestamp' value: '{{_ingest.timestamp}}' @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: [host] + value: epp - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 93ef3a846f1..4ffffc9dd05 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for Exposed Services processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: exposed service - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index fd86ece48f7..655a9dbb863 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for Hard Drives processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: hard drive - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index 38b9dbc6f14..c917d8d7797 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for Hardware processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: hardware - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index bdc7f2aac19..fef9742e0c8 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for TYCHON HOST OS processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: epp + value: host os - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 34bb9af13ee..1d1aa031d3d 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for parsing TYCHON Network Adapters processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: network adapter - split: field: host.uptime separator: "\\.+" diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index 1f3e670a887..97ee454ad48 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for Software Inventory processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -27,7 +24,7 @@ processors: value: tychon - set: field: event.category - value: "software inventory" + value: software inventory - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index fef355b2f38..7fec6335c7d 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -3,13 +3,6 @@ description: Pipeline for parsing TYCHON STIGs processors: - dot_expander: field: "*" - - set: - if: "!(ctx.containsKey('id'))" - field: id - value: '{{host.id}}' - - set: - field: _id - value: '{{id}}' - set: field: '@timestamp' value: '{{_ingest.timestamp}}' @@ -34,10 +27,16 @@ processors: value: tychon - set: field: event.category - value: [host] - - convert: + value: stig + - split: field: host.uptime - type: long + separator: "\\.+" + target_field: tempuptime + - set: + field: host.uptime + value: "{{tempuptime.0}}" + - remove: + field: tempuptime - convert: field: host.uptime type: long diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index 3f6306c9edc..c01d85ae503 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -3,9 +3,6 @@ description: Pipeline for TYCHON Volumes processors: - dot_expander: field: "*" - - set: - field: _id - value: "{{id}}" - set: field: "@timestamp" value: "{{_ingest.timestamp}}" @@ -23,7 +20,7 @@ processors: value: tychon - set: field: event.category - value: host + value: volumes - set: field: volume.percent_full value: "0" diff --git a/packages/tychon/elasticsearch/transform/arp/fields/agent.yml b/packages/tychon/elasticsearch/transform/arp/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/arp/fields/ecs.yml b/packages/tychon/elasticsearch/transform/arp/fields/ecs.yml new file mode 100644 index 00000000000..c4741ffc810 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/ecs.yml @@ -0,0 +1,78 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: destination.ip +- external: ecs + name: destination.mac +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: network.direction +- external: ecs + name: network.type +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/arp/fields/fields.yml b/packages/tychon/elasticsearch/transform/arp/fields/fields.yml new file mode 100644 index 00000000000..6ee09956138 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/fields.yml @@ -0,0 +1,8 @@ +- name: destination.hostname + type: keyword +- name: destination.name + type: keyword +- name: network.interface + type: keyword +- name: network.state + type: keyword diff --git a/packages/tychon/elasticsearch/transform/arp/manifest.yml b/packages/tychon/elasticsearch/transform/arp/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/arp/transform.yml b/packages/tychon/elasticsearch/transform/arp/transform.yml new file mode 100644 index 00000000000..f67a6a29fb6 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_arp-* +dest: + index: tychon_arp +frequency: 1h +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what ARP tables look like on an endpoint from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/agent.yml b/packages/tychon/elasticsearch/transform/cpu/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cpu/fields/ecs.yml new file mode 100644 index 00000000000..ff1f0be95fe --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/fields.yml b/packages/tychon/elasticsearch/transform/cpu/fields/fields.yml new file mode 100644 index 00000000000..eb728cc9162 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/fields/fields.yml @@ -0,0 +1,18 @@ +- name: host.cpu.caption + type: text +- name: host.cpu.clockspeed + type: long +- name: host.cpu.family + type: keyword +- name: host.cpu.manufacturer + type: keyword +- name: host.cpu.name + type: keyword +- name: host.cpu.number_of_cores + type: integer +- name: host.cpu.number_of_logical_processors + type: integer +- name: host.cpu.speed + type: long +- name: host.cpu.virtualization_firmware_enabled + type: boolean diff --git a/packages/tychon/elasticsearch/transform/cpu/manifest.yml b/packages/tychon/elasticsearch/transform/cpu/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cpu/transform.yml b/packages/tychon/elasticsearch/transform/cpu/transform.yml new file mode 100644 index 00000000000..b9f9e615113 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cpu/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_cpu-* +dest: + index: tychon_cpu +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint cpu information from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml new file mode 100644 index 00000000000..cbb6a586d8b --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2019 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2019_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml new file mode 100644 index 00000000000..eb95307c81f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2020 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2020_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2020 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml new file mode 100644 index 00000000000..03456181e79 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2021 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2021_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2021 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml new file mode 100644 index 00000000000..bf43689b263 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2022 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2022_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml new file mode 100644 index 00000000000..e62c372c8bc --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2023 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2023_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml new file mode 100644 index 00000000000..5d561c71eb3 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml @@ -0,0 +1,27 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match: + host.os.family: "windows" + - range: + vulnerability.year: + lte: 2018 +dest: + index: tychon_cve-20xx_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/epp/fields/agent.yml b/packages/tychon/elasticsearch/transform/epp/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/epp/fields/ecs.yml b/packages/tychon/elasticsearch/transform/epp/fields/ecs.yml new file mode 100644 index 00000000000..05e44a34ee0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/fields/ecs.yml @@ -0,0 +1,52 @@ +- external: ecs + name: package.description +- external: ecs + name: package.name +- external: ecs + name: package.reference +- external: ecs + name: package.type +- external: ecs + name: package.build_version +- external: ecs + name: event.kind +- external: ecs + name: ecs.version +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: event.ingested +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.dataset +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform diff --git a/packages/tychon/elasticsearch/transform/epp/fields/fields.yml b/packages/tychon/elasticsearch/transform/epp/fields/fields.yml new file mode 100644 index 00000000000..4b80ceabc31 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/fields/fields.yml @@ -0,0 +1,109 @@ +- name: id + description: TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Current Scanner Script Duration. + type: long + - name: current_time + description: Current Script datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: windows_defender + group: 2 + type: group + fields: + - name: service + type: group + fields: + - name: behavior_monitor.status + description: Windows Defender Behavior Monitor Status. + type: keyword + - name: ioav_protection.status + description: Windows Defender iOffice Antivirus Protection Status. + type: keyword + - name: on_access_protection.status + description: Windows Defender On Access Protection Status. + type: keyword + - name: real_time_protection.status + description: Windows Defender Real-time Procection Status. + type: keyword + - name: antimalware + type: group + fields: + - name: engine_version + description: Windows Defender Antimalware Engine Version. + type: keyword + - name: product_version + description: Windows Defender Antimalware Product Version. + type: keyword + - name: signature_version + description: Windows Defender Antimalware Signature Version. + type: keyword + - name: status + description: Windows Defender Antimalware Status. + type: keyword + - name: antispyware + type: group + fields: + - name: signature_version + description: Windows Defender Antispyware Signature Version. + type: keyword + - name: status + description: Windows Defender Antispyware Status. + type: keyword + - name: antivirus + type: group + fields: + - name: full_scan.signature_version + description: Windows Defender Antivirus Full Scan Version. + type: keyword + - name: quick_scan.signature_version + description: Windows Defender Antivirus Signature Version. + type: keyword + - name: status + description: Windows Defender Antivirus Status. + type: keyword + - name: nis + type: group + fields: + - name: engine_version + description: Windows Defender Network Inspection System Engine Version. + type: keyword + - name: signature_version + description: Windows Defender Network Inspection System Signature Version. + type: keyword + - name: status + description: Windows Defender Network Inspection System Status. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: host.epp.product + description: Epp products installed + type: keyword +- name: host.trellix.product + description: trellix products installed + type: keyword diff --git a/packages/tychon/elasticsearch/transform/epp/manifest.yml b/packages/tychon/elasticsearch/transform/epp/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/epp/transform.yml b/packages/tychon/elasticsearch/transform/epp/transform.yml new file mode 100644 index 00000000000..d55f33d234d --- /dev/null +++ b/packages/tychon/elasticsearch/transform/epp/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_epp-* +dest: + index: tychon_epp +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint protetction status information from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml b/packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/ecs.yml b/packages/tychon/elasticsearch/transform/exposed_service/fields/ecs.yml new file mode 100644 index 00000000000..a7dcf1323ac --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/fields/ecs.yml @@ -0,0 +1,94 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: network.transport +- external: ecs + name: process.command_line +- external: ecs + name: process.executable +- external: ecs + name: process.hash.sha1 +- external: ecs + name: process.name +- external: ecs + name: process.pid +- external: ecs + name: process.user.name +- external: ecs + name: service.name +- external: ecs + name: service.state +- external: ecs + name: source.ip +- external: ecs + name: source.port +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date +- name: process.start + type: date diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml b/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml new file mode 100644 index 00000000000..eada49f31af --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml @@ -0,0 +1,4 @@ +- name: service.description + type: keyword +- name: service.display_name + type: keyword diff --git a/packages/tychon/elasticsearch/transform/exposed_service/manifest.yml b/packages/tychon/elasticsearch/transform/exposed_service/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/exposed_service/transform.yml b/packages/tychon/elasticsearch/transform/exposed_service/transform.yml new file mode 100644 index 00000000000..8c4cdb5c5d4 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/exposed_service/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_exposedservice-* +dest: + index: tychon_exposedservice +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml b/packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/ecs.yml b/packages/tychon/elasticsearch/transform/hard_drive/fields/ecs.yml new file mode 100644 index 00000000000..ff1f0be95fe --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml b/packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml new file mode 100644 index 00000000000..89116cfd6ac --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml @@ -0,0 +1,50 @@ +- name: disk.adapter.serial_number + type: keyword +- name: disk.boot_from + type: boolean +- name: disk.bus_type + type: keyword +- name: disk.clustered + type: boolean +- name: disk.firmware.version + type: keyword +- name: disk.firmware_version + type: keyword +- name: disk.guid + type: keyword +- name: disk.health_status + type: keyword +- name: disk.highly_available + type: boolean +- name: disk.is_boot + type: boolean +- name: disk.location.adapter + type: integer +- name: disk.location.bus + type: integer +- name: disk.location.device + type: integer +- name: disk.location.function + type: integer +- name: disk.manufacturer + type: keyword +- name: disk.model + type: keyword +- name: disk.name + type: keyword +- name: disk.number + type: integer +- name: disk.number_of_partitions + type: integer +- name: disk.offline + type: boolean +- name: disk.operational_status + type: keyword +- name: disk.partition_style + type: keyword +- name: disk.serial_number + type: keyword +- name: disk.size + type: long +- name: disk.system + type: boolean diff --git a/packages/tychon/elasticsearch/transform/hard_drive/manifest.yml b/packages/tychon/elasticsearch/transform/hard_drive/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/hard_drive/transform.yml b/packages/tychon/elasticsearch/transform/hard_drive/transform.yml new file mode 100644 index 00000000000..ebc79291549 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hard_drive/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_harddrive-* +dest: + index: tychon_harddrive +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint hard-drive information from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/agent.yml b/packages/tychon/elasticsearch/transform/hardware/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/ecs.yml b/packages/tychon/elasticsearch/transform/hardware/fields/ecs.yml new file mode 100644 index 00000000000..27c34f615b8 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/fields/ecs.yml @@ -0,0 +1,74 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: device.id +- external: ecs + name: device.manufacturer +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/fields.yml b/packages/tychon/elasticsearch/transform/hardware/fields/fields.yml new file mode 100644 index 00000000000..ff33e64dbab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/fields/fields.yml @@ -0,0 +1,12 @@ +- name: device.class + type: keyword +- name: device.description + type: keyword +- name: device.friendly_name + type: keyword +- name: device.name + type: keyword +- name: device.present + type: boolean +- name: device.status + type: keyword diff --git a/packages/tychon/elasticsearch/transform/hardware/manifest.yml b/packages/tychon/elasticsearch/transform/hardware/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/hardware/transform.yml b/packages/tychon/elasticsearch/transform/hardware/transform.yml new file mode 100644 index 00000000000..b566fbe7a19 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/hardware/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_hardware-* +dest: + index: tychon_hardware +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint hardware information from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/agent.yml b/packages/tychon/elasticsearch/transform/host_info/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/ecs.yml b/packages/tychon/elasticsearch/transform/host_info/fields/ecs.yml new file mode 100644 index 00000000000..2be31038472 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/fields/ecs.yml @@ -0,0 +1,32 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.os.family +- external: ecs + name: host.os.name +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/fields.yml b/packages/tychon/elasticsearch/transform/host_info/fields/fields.yml new file mode 100644 index 00000000000..8a8e8a28231 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/fields/fields.yml @@ -0,0 +1,72 @@ +- name: event.deviceguard.basevirtualizationsupport.available + type: boolean +- name: event.deviceguard.credentialguard.enabled + type: boolean +- name: event.deviceguard.credentialguard.running + type: boolean +- name: event.deviceguard.dmaprotection.available + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.enabled + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.running + type: boolean +- name: event.deviceguard.secureboot.available + type: boolean +- name: event.deviceguard.securememoverwrite.available + type: boolean +- name: event.deviceguard.smmsecuritymigrations.available + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.enabled + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.running + type: boolean +- name: event.deviceguard.ueficodereadonly.available + type: boolean +- name: event.deviceguard.usermodecodeintegrity.policyenforcement + type: keyword +- name: event.deviceguard.version + type: keyword +- name: event.deviceguard.virtualizationbasedsecurity.status + type: keyword +- name: event.ufi.enabled + type: boolean +- name: host.cpu.caption + type: keyword +- name: host.cpu.count + type: integer +- name: host.memory.size + type: long +- name: host.motherboard.chipset + type: keyword +- name: host.motherboard.serial_number + type: keyword +- name: host.os.edition + type: keyword +- name: host.os.vendor + type: keyword +- name: host.security.antivirus.exists + type: boolean +- name: host.security.antivirus.name + type: keyword +- name: host.security.antivirus.state + type: keyword +- name: host.security.antivirus.status + type: keyword +- name: host.tpm.compliant + type: boolean +- name: host.tpm.digest.id + type: keyword +- name: host.tpm.present + type: boolean +- name: host.tpm.version + type: keyword +- name: host.virtualization_status + type: keyword +- name: tychon.definition.oval + type: date +- name: tychon.definition.stig + type: date +- name: tychon.version.agent + type: version +- name: tychon.version.content + type: version diff --git a/packages/tychon/elasticsearch/transform/host_info/manifest.yml b/packages/tychon/elasticsearch/transform/host_info/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/host_info/transform.yml b/packages/tychon/elasticsearch/transform/host_info/transform.yml new file mode 100644 index 00000000000..451d0832f08 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/host_info/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_host-* +dest: + index: tychon_host +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint Host/OS information from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml b/packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/ecs.yml b/packages/tychon/elasticsearch/transform/network_adapter/fields/ecs.yml new file mode 100644 index 00000000000..684a278aafc --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/fields/ecs.yml @@ -0,0 +1,36 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- name: error.message + type: match_only_text +- external: ecs + name: event.agent_id_status +- name: event.ingested + type: date +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.os.family +- external: ecs + name: host.os.name +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml b/packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml new file mode 100644 index 00000000000..5a69e18c631 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml @@ -0,0 +1,58 @@ +- name: host.adapter.alias + type: keyword +- name: host.adapter.description + type: text +- name: host.adapter.dhcp.enabled + type: boolean +- name: host.adapter.dhcp.lease_expires + type: date +- name: host.adapter.dhcp.lease_obtained + type: date +- name: host.adapter.dhcp.server + type: ip +- name: host.adapter.domain + type: keyword +- name: host.adapter.driver.date + type: date +- name: host.adapter.driver.description + type: text +- name: host.adapter.driver.file_name + type: keyword +- name: host.adapter.driver.name + type: keyword +- name: host.adapter.driver.provider + type: keyword +- name: host.adapter.driver.version + type: keyword +- name: host.adapter.gateway + type: ip +- name: host.adapter.id + type: keyword +- name: host.adapter.ip + type: ip +- name: host.adapter.ip_filter.enabled + type: boolean +- name: host.adapter.wins_server + type: keyword +- name: host.adapter.link_speed + type: long +- name: host.adapter.mac + type: keyword +- name: host.adapter.media.connection_state + type: keyword +- name: host.adapter.media.type + type: keyword +- name: host.adapter.mtu + type: integer +- name: host.adapter.ndis.version + type: keyword +- name: host.adapter.subnet_bit + type: integer +- name: host.adapter.virtual + type: boolean +- name: host.adapter.vlan.id + type: keyword +- name: host.adapter.wifi.enabled + type: boolean +- name: host.adapter.wifi.signal_percent + type: integer diff --git a/packages/tychon/elasticsearch/transform/network_adapter/manifest.yml b/packages/tychon/elasticsearch/transform/network_adapter/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml new file mode 100644 index 00000000000..fc0c4022dab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_networkadapter-* +dest: + index: tychon_networkadapter +frequency: 1m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of endpoint Network Adapter Card information from TYCHON endpoints. diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/ecs.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/ecs.yml new file mode 100644 index 00000000000..c56cb240566 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/ecs.yml @@ -0,0 +1,87 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: package.architecture +- external: ecs + name: package.description +- external: ecs + name: package.installed + ignore_malformed: true +- external: ecs + name: package.name +- external: ecs + name: package.path +- external: ecs + name: package.size +- external: ecs + name: package.type +- external: ecs + name: package.version +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml new file mode 100644 index 00000000000..fec6c53f2e3 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml @@ -0,0 +1,16 @@ +- name: package.uninstall + type: text +- name: package.cpe + type: keyword +- name: package.id + type: keyword +- name: package.publisher + type: keyword +- name: package.version_build + type: integer +- name: package.version_major + type: integer +- name: package.version_minor + type: integer +- name: package.version_release + type: integer diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml b/packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml new file mode 100644 index 00000000000..9bdd04203fa --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml @@ -0,0 +1,24 @@ +source: + index: + - logs-tychon.tychon_softwareinventory-* + query: + bool: + must: + - match_phrase: + package.type: "installer" +dest: + index: tychon_softwareinventory-installer +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/ecs.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/ecs.yml new file mode 100644 index 00000000000..c56cb240566 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/ecs.yml @@ -0,0 +1,87 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: package.architecture +- external: ecs + name: package.description +- external: ecs + name: package.installed + ignore_malformed: true +- external: ecs + name: package.name +- external: ecs + name: package.path +- external: ecs + name: package.size +- external: ecs + name: package.type +- external: ecs + name: package.version +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml new file mode 100644 index 00000000000..fec6c53f2e3 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml @@ -0,0 +1,16 @@ +- name: package.uninstall + type: text +- name: package.cpe + type: keyword +- name: package.id + type: keyword +- name: package.publisher + type: keyword +- name: package.version_build + type: integer +- name: package.version_major + type: integer +- name: package.version_minor + type: integer +- name: package.version_release + type: integer diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml b/packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml new file mode 100644 index 00000000000..d985ad3617b --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml @@ -0,0 +1,24 @@ +source: + index: + - logs-tychon.tychon_softwareinventory-* + query: + bool: + must: + - match_phrase: + package.type: "store" +dest: + index: tychon_softwareinventory-store +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/stig/fields/agent.yml b/packages/tychon/elasticsearch/transform/stig/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/stig/fields/ecs.yml b/packages/tychon/elasticsearch/transform/stig/fields/ecs.yml new file mode 100644 index 00000000000..7329d8fd21c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/fields/ecs.yml @@ -0,0 +1,54 @@ +- external: ecs + name: package.description +- external: ecs + name: package.name +- external: ecs + name: package.reference +- external: ecs + name: package.type +- external: ecs + name: package.build_version +- external: ecs + name: rule.name +- external: ecs + name: event.kind +- external: ecs + name: ecs.version +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: event.ingested +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.dataset +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform diff --git a/packages/tychon/elasticsearch/transform/stig/fields/fields.yml b/packages/tychon/elasticsearch/transform/stig/fields/fields.yml new file mode 100644 index 00000000000..864e77b3f8f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/fields/fields.yml @@ -0,0 +1,126 @@ +- name: id + description: Tychon Unique Stig Id. + type: keyword +- name: benchmark + type: group + fields: + - name: guid + description: Benchmark GUID. + type: keyword + - name: generated_utc + description: Benchmark UTC. + type: keyword + - name: hash + description: Benchmark SHA256 Hash + type: keyword + - name: name + description: Benchmark Name. + type: keyword + - name: title + description: Benchmark Title. + type: keyword + - name: version + description: Benchmark Version. + type: keyword + - name: list + description: Benchmark Summary Name List. + type: keyword + - name: count + description: Benchmark Summary Name List Item Count. + type: long +- name: oval + type: group + fields: + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. + type: keyword +- name: rule + type: group + fields: + - name: id + description: Benchmark Rule Identifier. + type: keyword + - name: finding_id + description: Benchmark Rule Finding Identifier. + type: keyword + - name: result + description: Benchmark Rule Results. + type: keyword + - name: severity + description: Benchmark Severity Status. + type: keyword + - name: stig_id + description: Stig rule id + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: vulnerability_id + description: Rule vulnerability id. + type: keyword + - name: weight + description: Benchmark Rule Weight. + type: float + - name: benchmark + type: group + fields: + - name: guid + description: Benchmark Rule GUID. + type: keyword + - name: profile.id + description: Benchmark Rule Profile Identifier. + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: oval + type: group + fields: + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Reference Identifier. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig/manifest.yml b/packages/tychon/elasticsearch/transform/stig/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/stig/transform.yml b/packages/tychon/elasticsearch/transform/stig/transform.yml new file mode 100644 index 00000000000..ece5e59e8b9 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig/transform.yml @@ -0,0 +1,24 @@ +source: + index: + - logs-tychon.tychon_stig-* + query: + bool: + must: + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_stig-windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows STIG SCAP results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/volume/fields/agent.yml b/packages/tychon/elasticsearch/transform/volume/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/volume/fields/ecs.yml b/packages/tychon/elasticsearch/transform/volume/fields/ecs.yml new file mode 100644 index 00000000000..2f2e3e60d99 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/fields/ecs.yml @@ -0,0 +1,70 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- name: error.message + type: match_only_text +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- name: event.ingested + type: date +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: tags diff --git a/packages/tychon/elasticsearch/transform/volume/fields/fields.yml b/packages/tychon/elasticsearch/transform/volume/fields/fields.yml new file mode 100644 index 00000000000..510274e1fba --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/fields/fields.yml @@ -0,0 +1,34 @@ +- name: volume.automount + type: boolean +- name: volume.block_size + type: long +- name: volume.dirty_bit_set + type: boolean +- name: volume.dos_device_path + type: text +- name: volume.drive.letter + type: keyword +- name: volume.drive.type + type: keyword +- name: volume.file_system + type: keyword +- name: volume.freespace + type: long +- name: volume.id + type: keyword +- name: volume.name + type: keyword +- name: volume.page_file_present + type: boolean +- name: volume.percent_full + type: float +- name: volume.power_management_supported + type: boolean +- name: volume.purpose + type: keyword +- name: volume.serial_number + type: keyword +- name: volume.size + type: long +- name: volume.system_volume + type: boolean diff --git a/packages/tychon/elasticsearch/transform/volume/manifest.yml b/packages/tychon/elasticsearch/transform/volume/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/volume/transform.yml b/packages/tychon/elasticsearch/transform/volume/transform.yml new file mode 100644 index 00000000000..4b91e6a6fb8 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/volume/transform.yml @@ -0,0 +1,19 @@ +source: + index: + - logs-tychon.tychon_volume-* +dest: + index: tychon_volume +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what volumes are currently on a device from TYCHON. diff --git a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json index e1bbd154491..13915e94166 100644 --- a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json @@ -1,11 +1,11 @@ { "attributes": { - "description": "Analyze the status your current STIG scans run against your endpoints.", + "description": "Analyze the status of your current STIG scans run against your endpoints.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":4,\"i\":\"43863395-18af-4a6d-b628-90743756adce\"},\"panelIndex\":\"43863395-18af-4a6d-b628-90743756adce\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Total Systems\",\"panelRefName\":\"panel_43863395-18af-4a6d-b628-90743756adce\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":8,\"i\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},\"panelIndex\":\"aa2bd77f-4729-41c8-aa01-ddd9dc160b33\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":4,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":4,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":9,\"i\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},\"panelIndex\":\"d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":8,\"w\":4,\"h\":23,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":14,\"w\":17,\"h\":17,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":17,\"w\":13,\"h\":14,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":19,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":19,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":5,\"i\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\"},\"panelIndex\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-dd63da37-c38e-481c-8749-8d1939e14d4f\"}],\"state\":{\"visualization\":{\"layerId\":\"dd63da37-c38e-481c-8749-8d1939e14d4f\",\"accessor\":\"600ef522-0a03-40d3-8833-3090b2b3fe47\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd63da37-c38e-481c-8749-8d1939e14d4f\":{\"columns\":{\"600ef522-0a03-40d3-8833-3090b2b3fe47\":{\"label\":\"Total Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"600ef522-0a03-40d3-8833-3090b2b3fe47\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":11,\"i\":\"655f71a3-4dd4-4429-9163-46300ac07597\"},\"panelIndex\":\"655f71a3-4dd4-4429-9163-46300ac07597\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"| CCRI Score | Description |\\n| :------------ | :------------ |\\n| 20-100% | Critical Concern |\\n| 10-20% | Moderate Concern |\\n| 0-10% | Minor Concern |\\n| 0% | No Concern |\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":5,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":5,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":8,\"i\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\"},\"panelIndex\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"isTransposed\":false},{\"columnId\":\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"},{\"columnId\":\"87f792ec-41cb-4052-ae3c-8e39032305c0\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"}],\"layerId\":\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\":{\"columns\":{\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"filters\",\"scale\":\"ordinal\",\"isBucketed\":true,\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity :\\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity : \\\"medium\\\" \",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity : \\\"low\\\" \",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"customLabel\":true},\"31cd5bd5-bf05-4039-a241-c75a16ad9165\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"87f792ec-41cb-4052-ae3c-8e39032305c0\":{\"label\":\"Total Pass\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"87f792ec-41cb-4052-ae3c-8e39032305c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"Passes and Fails broken down by the rule severity level.\",\"enhancements\":{}},\"title\":\"Severity Breakdown\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":11,\"w\":4,\"h\":20,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":15,\"w\":17,\"h\":16,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":13,\"h\":15,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":26,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":11,\"i\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\"},\"panelIndex\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"indexpattern-datasource-layer-324940c5-7336-4d83-afd8-f132999ad21d\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"324940c5-7336-4d83-afd8-f132999ad21d\",\"accessors\":[\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"4c922613-246c-4854-8a29-4a64075d585e\",\"splitAccessor\":\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"not applicable\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"not applicable\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"324940c5-7336-4d83-afd8-f132999ad21d\":{\"columns\":{\"4c922613-246c-4854-8a29-4a64075d585e\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\":{\"label\":\"STIG Counts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9fe8831b-a25f-4432-874b-af29a49486d1\":{\"label\":\"Top 4 values of rule.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"4c922613-246c-4854-8a29-4a64075d585e\",\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON continuously reports the status of STIG results, this is the history of those results.\",\"enhancements\":{}},\"title\":\"STIG Scan Results History \"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":42,\"w\":37,\"h\":14,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -17,11 +17,12 @@ "version": 1 }, "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T19:56:47.343Z", + "created_at": "2023-08-30T23:08:53.189Z", "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", "migrationVersion": { - "dashboard": "8.6.0" + "dashboard": "8.5.0" }, + "managed": true, "references": [ { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", @@ -29,14 +30,9 @@ "type": "index-pattern" }, { - "id": "tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd", - "name": "43863395-18af-4a6d-b628-90743756adce:panel_43863395-18af-4a6d-b628-90743756adce", - "type": "visualization" - }, - { - "id": "tychon-d954bdb0-3298-11ec-b058-cf4fefc29658", - "name": "aa2bd77f-4729-41c8-aa01-ddd9dc160b33:panel_aa2bd77f-4729-41c8-aa01-ddd9dc160b33", - "type": "visualization" + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "2b7c414a-b5fb-4a90-9231-26aaa796e7bf:indexpattern-datasource-layer-dd63da37-c38e-481c-8749-8d1939e14d4f", + "type": "index-pattern" }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", @@ -59,20 +55,15 @@ "type": "index-pattern" }, { - "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", - "name": "d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c:panel_d5a6b592-4fce-44a5-83c9-3e2a44a4aa0c", - "type": "visualization" + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "87fa7e60-7def-4b15-a49b-1f651cfee463:indexpattern-datasource-layer-93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9", + "type": "index-pattern" }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "name": "ca6d3287-d16e-4e2f-9216-6140f4f2b4c1:indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966", "type": "index-pattern" }, - { - "id": "tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd", - "name": "634c2a2e-c6fa-414f-8479-1d797bbaa6be:panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be", - "type": "lens" - }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "name": "3d731c15-8a40-45e3-bb29-f6aed782e586:indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967", @@ -98,33 +89,48 @@ "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", "type": "index-pattern" }, + { + "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", + "name": "e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60:indexpattern-datasource-layer-324940c5-7336-4d83-afd8-f132999ad21d", + "type": "index-pattern" + }, + { + "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", + "name": "e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60:de7d5fcd-69c9-489a-ad14-e43451dc3eaa", + "type": "index-pattern" + }, + { + "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", + "name": "e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60:82886999-a1d2-44ca-9355-6473b13151a2", + "type": "index-pattern" + }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", "type": "index-pattern" }, { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "579051b0-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-tychon-10af3800-10f3-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "id": "tychon-579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-tychon-579051b0-10f2-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-tychon-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" } ], "type": "dashboard", - "updated_at": "2023-08-23T19:56:47.343Z", - "version": "WzgxODk5OSwyMl0=" + "updated_at": "2023-08-30T23:08:53.189Z", + "version": "WzI0OTIsNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json index 91262d3932d..5ee6406315d 100644 --- a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json @@ -4,14 +4,14 @@ "chainingSystem": "HIERARCHICAL", "controlStyle": "oneLine", "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" + "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. \n\nThe TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date \u003c now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"}]", + "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date \u003c now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":45,\"w\":48,\"h\":11,\"i\":\"63ef44de-a1a5-41af-9c45-c466e9fc2867\"},\"panelIndex\":\"63ef44de-a1a5-41af-9c45-c466e9fc2867\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\"},{\"type\":\"index-pattern\",\"name\":\"36b078d6-c00f-4595-ac72-09f777c1da1b\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\",\"accessors\":[\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\",\"splitAccessor\":\"386b6bfa-84db-48b8-95bd-96bca3df6355\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"36b078d6-c00f-4595-ac72-09f777c1da1b\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\":{\"columns\":{\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\":{\"label\":\"Result Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"386b6bfa-84db-48b8-95bd-96bca3df6355\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"386b6bfa-84db-48b8-95bd-96bca3df6355\",\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\",\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON Continuously reports the status of vulnerabilities, this table shows the pass and fails. \",\"enhancements\":{}},\"title\":\"Vulnerability Results History\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -22,18 +22,24 @@ "title": "[TYCHON] Endpoint Browser - Vulnerabilities ", "version": 1 }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:51:50.468Z", - "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "coreMigrationVersion": "8.8.0", "migrationVersion": { - "dashboard": "8.6.0" + "dashboard": "8.5.0" }, + "created_at": "2023-08-30T21:08:47.844Z", + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "managed": true, "references": [ { "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", "name": "e243d9ab-d083-4b45-88a2-9581bf3689ae:panel_e243d9ab-d083-4b45-88a2-9581bf3689ae", "type": "visualization" }, + { + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", + "type": "index-pattern" + }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", "name": "18ef0327-ab0a-46d7-ac9c-bf8d01e28eba:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", @@ -56,7 +62,7 @@ }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", + "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", "type": "index-pattern" }, { @@ -66,7 +72,7 @@ }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", "type": "index-pattern" }, { @@ -75,8 +81,13 @@ "type": "index-pattern" }, { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "63ef44de-a1a5-41af-9c45-c466e9fc2867:indexpattern-datasource-layer-170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad", + "type": "index-pattern" + }, + { + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "63ef44de-a1a5-41af-9c45-c466e9fc2867:36b078d6-c00f-4595-ac72-09f777c1da1b", "type": "index-pattern" }, { @@ -85,32 +96,33 @@ "type": "index-pattern" }, { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "id": "tychon-a3922360-3de6-11ee-9610-15dee918f31a", "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "9c222660-1100-11ee-af86-538da1394f27", - "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" } ], "type": "dashboard", - "updated_at": "2023-08-23T20:51:50.468Z", - "version": "WzgyMTUxMywyMl0=" + "typeMigrationVersion": "8.7.0", + "updated_at": "2023-08-30T21:08:47.844Z", + "version": "WzIxMTgsNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json index b2c80ce9a71..9864097d78c 100644 --- a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json @@ -10,8 +10,8 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, - "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"vulnerability.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Monitored CVE Count\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":40}}},\"uiState\":{},\"data\":{\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}}},\"enhancements\":{}},\"title\":\"Host Monitored\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":11,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":11,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":24,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": "[{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Monitored CVE Count (converted)\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"name\":\"indexpattern-datasource-layer-4006531b-9ee8-4f33-9bfc-96670ff0f3b9\"}],\"state\":{\"visualization\":{\"layerId\":\"4006531b-9ee8-4f33-9bfc-96670ff0f3b9\",\"accessor\":\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4006531b-9ee8-4f33-9bfc-96670ff0f3b9\":{\"columns\":{\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Host Monitored (converted)\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\"}],\"state\":{\"visualization\":{\"layerId\":\"49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\",\"accessor\":\"3c4e58b4-62c9-483e-9cd7-a67e47363392\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\":{\"columns\":{\"3c4e58b4-62c9-483e-9cd7-a67e47363392\":{\"label\":\"Total Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"3c4e58b4-62c9-483e-9cd7-a67e47363392\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":21,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":21,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":10,\"i\":\"54623b32-425a-4c80-8f8b-e2a3401aa06b\"},\"panelIndex\":\"54623b32-425a-4c80-8f8b-e2a3401aa06b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-38d3d7aa-9059-4c73-b69c-d6d541808d29\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"38d3d7aa-9059-4c73-b69c-d6d541808d29\",\"accessors\":[\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\",\"yConfig\":[{\"forAccessor\":\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\",\"color\":\"#d36086\"}],\"splitAccessor\":\"20c4da2d-a27e-4461-84cf-31c7cc253951\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"38d3d7aa-9059-4c73-b69c-d6d541808d29\":{\"columns\":{\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\":{\"label\":\"Ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\":{\"label\":\"Failing Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"20c4da2d-a27e-4461-84cf-31c7cc253951\":{\"label\":\"Top 3 values of vulnerability.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[\"unknown\"],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\",\"20c4da2d-a27e-4461-84cf-31c7cc253951\",\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON runs full vulnerability checks every day and delta checks every hour, this graph tracks those results over time.\",\"enhancements\":{}},\"title\":\"Vulnerability Result History\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":23,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":34,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -22,21 +22,22 @@ "title": "[TYCHON] - Vulnerability Dashboard", "version": 1 }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:54:42.361Z", - "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", + "coreMigrationVersion": "8.8.0", "migrationVersion": { - "dashboard": "8.6.0" + "dashboard": "8.5.0" }, + "created_at": "2023-08-30T12:28:25.488Z", + "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", + "managed": true, "references": [ { "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:kibanaSavedObjectMeta.searchSourceJSON.index", + "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:indexpattern-datasource-layer-4006531b-9ee8-4f33-9bfc-96670ff0f3b9", "type": "index-pattern" }, { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:kibanaSavedObjectMeta.searchSourceJSON.index", + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:indexpattern-datasource-layer-49f26400-cd0d-4287-b4b9-fb1a81d2fcf6", "type": "index-pattern" }, { @@ -114,6 +115,11 @@ "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", "type": "index-pattern" }, + { + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "54623b32-425a-4c80-8f8b-e2a3401aa06b:indexpattern-datasource-layer-38d3d7aa-9059-4c73-b69c-d6d541808d29", + "type": "index-pattern" + }, { "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", @@ -150,27 +156,28 @@ "type": "index-pattern" }, { - "id": "9c222660-1100-11ee-af86-538da1394f27", + "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "10af3800-10f3-11ee-af86-538da1394f27", + "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "39b55820-10f2-11ee-af86-538da1394f27", + "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", "type": "tag" } ], "type": "dashboard", - "updated_at": "2023-08-23T20:54:42.361Z", - "version": "WzgyMTY2MSwyMl0=" + "typeMigrationVersion": "8.7.0", + "updated_at": "2023-08-30T12:28:25.488Z", + "version": "WzkxNiwyXQ==" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json index 0d7e6f1d22e..5b4634ee0dd 100644 --- a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json @@ -4,14 +4,14 @@ "chainingSystem": "HIERARCHICAL", "controlStyle": "oneLine", "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" + "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" }, "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser - Benchmark Results view displays all Benchmark SCAP scan results for the OS and Software installed.", "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"type\":\"phrase\",\"key\":\"host.hostname\",\"params\":{\"query\":\"BotanyBayEP1\"},\"disabled\":false,\"negate\":false,\"alias\":null,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"host.hostname\":\"BotanyBayEP1\"}},\"$state\":{\"store\":\"appState\"}}]}" + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", + "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":49,\"w\":48,\"h\":10,\"i\":\"d2e11c76-66a2-47d6-ab42-4b7efec8751f\"},\"panelIndex\":\"d2e11c76-66a2-47d6-ab42-4b7efec8751f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"indexpattern-datasource-layer-aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\",\"accessors\":[\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\",\"splitAccessor\":\"82915713-302b-4052-8b2a-7bb27bca3f46\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\":{\"columns\":{\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\":{\"label\":\"Time\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\":{\"label\":\"Results\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"82915713-302b-4052-8b2a-7bb27bca3f46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"82915713-302b-4052-8b2a-7bb27bca3f46\",\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\",\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON records every time a STIG is checked, this is the number of passes and fails over time.\",\"enhancements\":{}},\"title\":\"Check History\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -22,18 +22,14 @@ "title": "[TYCHON] Endpoint Browser - Benchmark Results", "version": 1 }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T20:38:45.823Z", - "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "coreMigrationVersion": "8.8.0", "migrationVersion": { - "dashboard": "8.6.0" + "dashboard": "8.5.0" }, + "created_at": "2023-08-30T20:53:59.597Z", + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", + "managed": true, "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, { "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", "name": "8f6fafd2-91a2-424b-a877-284568fd3f98:panel_8f6fafd2-91a2-424b-a877-284568fd3f98", @@ -41,12 +37,12 @@ }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", "type": "index-pattern" }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", + "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", "type": "index-pattern" }, { @@ -54,14 +50,19 @@ "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", "type": "index-pattern" }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", + "type": "index-pattern" + }, { "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", "name": "f96a0653-055c-46d2-9dfd-f44631a1428b:panel_f96a0653-055c-46d2-9dfd-f44631a1428b", "type": "visualization" }, { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", + "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", + "name": "d2e11c76-66a2-47d6-ab42-4b7efec8751f:indexpattern-datasource-layer-aeaf9e07-b4f2-428a-a7c5-a9235f5471b7", "type": "index-pattern" }, { @@ -70,32 +71,33 @@ "type": "index-pattern" }, { - "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "id": "tychon-a3922360-3de6-11ee-9610-15dee918f31a", "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "579051b0-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", + "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "id": "tychon-579051b0-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-579051b0-10f2-11ee-af86-538da1394f27", "type": "tag" }, { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", + "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" } ], "type": "dashboard", - "updated_at": "2023-08-23T20:38:45.823Z", - "version": "WzgyMDAyMiwyMl0=" + "typeMigrationVersion": "8.7.0", + "updated_at": "2023-08-30T20:53:59.597Z", + "version": "WzIwODcsNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json b/packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json new file mode 100644 index 00000000000..0dfd5e3db51 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Disk Volumes (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_volume*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T10:59:56.550Z", + "id": "02acfb43-5302-4331-bb10-4174171f6091", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T10:59:56.550Z", + "version": "Wzc5MSwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json index 7189730bd56..ccc02594952 100644 --- a/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json +++ b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_harddrive*", + "title": "tychon_harddrive*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-17T21:06:28.654Z", "id": "2dc584bc-c446-4150-b561-1415a45ebe87", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json b/packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json new file mode 100644 index 00000000000..a7e06190996 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Host CPUs (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_cpu*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:08:35.623Z", + "id": "37150b25-1c34-494e-8214-b58a5a716c95", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:08:35.623Z", + "version": "Wzc5NiwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json b/packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json new file mode 100644 index 00000000000..3b2a85f6ad4 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Network Adapters (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_networkadapter*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:12:13.334Z", + "id": "39822d3a-870f-4a82-8928-e9264b4d1a31", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:12:13.334Z", + "version": "Wzc5OCwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json b/packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json new file mode 100644 index 00000000000..566e97545f4 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Hardware (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_hardware*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:07:03.361Z", + "id": "41d172ee-a0b8-4b20-9c93-6482f0abbdec", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:07:03.361Z", + "version": "Wzc5NSwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json b/packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json new file mode 100644 index 00000000000..1eec4f2bb4f --- /dev/null +++ b/packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - ARP (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_arp*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T10:52:54.243Z", + "id": "4b420fb2-cf3e-40a2-a8fe-92db1bd570b2", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T10:52:54.243Z", + "version": "Wzc5MCwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json b/packages/tychon/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json new file mode 100644 index 00000000000..c525296301e --- /dev/null +++ b/packages/tychon/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Vulnerability Information (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_cve*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:17:22.732Z", + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:17:22.732Z", + "version": "WzgwMCwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json index 630816e164b..5380cfbaa18 100644 --- a/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json +++ b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_volume*", + "title": "tychon_volume*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-18T17:39:23.422Z", "id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json index 1795c7c22b9..57f0521e883 100644 --- a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json +++ b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json @@ -6,13 +6,14 @@ "name": "Endpoint Protection Status (TYCHON)", "runtimeFieldMap": "{}", "sourceFilters": "[]", - "timeFieldName": "event.ingested", - "title": "logs-tychon.tychon_epp*", + "timeFieldName": "@timestamp", + "title": "logs-tychon_latest.tychon_epp*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-06-22T19:32:15.953Z", "id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json b/packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json new file mode 100644 index 00000000000..36f04a22bd9 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Endpoint Protection Services (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_epp*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:01:55.546Z", + "id": "6ce8198c-8c52-4f20-8e68-b566ebf84b18", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:01:55.546Z", + "version": "Wzc5MiwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json b/packages/tychon/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json index 90a878e9fde..701be17a005 100644 --- a/packages/tychon/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json +++ b/packages/tychon/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_cve*", + "title": "tychon_cve*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-06-20T13:44:21.061Z", "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json b/packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json new file mode 100644 index 00000000000..4c23b41d562 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - STIG SCAP Results (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_stig*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:15:38.058Z", + "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:15:38.058Z", + "version": "Wzc5OSwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json index 2df41f6ef7d..a50be3c86da 100644 --- a/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json +++ b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json @@ -6,13 +6,14 @@ "name": "ARP (TYCHON)", "runtimeFieldMap": "{}", "sourceFilters": "[]", - "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_arp*", + "timeFieldName": "event.ingested", + "title": "tychon_arp*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-04-03T15:59:09.464Z", "id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json index 238bdcdaed2..b7a203dafdf 100644 --- a/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json +++ b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_host-*", + "title": "tychon_host*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-23T00:22:24.456Z", "id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json index 21a1ba820c2..6fa2f911060 100644 --- a/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json +++ b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_cpu*", + "title": "tychon_cpu*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-17T22:16:32.434Z", "id": "a264bf8d-abc3-4789-9f4c-bf76397e06ba", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json index 889f1ab95e9..94b023c72b4 100644 --- a/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json +++ b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_hardware*", + "title": "tychon_hardware*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-18T19:57:22.691Z", "id": "a57870ef-07d8-4d12-a067-8c66eefd10ca", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json b/packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json new file mode 100644 index 00000000000..0c3f5bb5bed --- /dev/null +++ b/packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Host Info (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_host*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:10:11.104Z", + "id": "a61d021d-d78f-485d-93b2-8075149794af", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:10:11.104Z", + "version": "Wzc5NywyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json b/packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json new file mode 100644 index 00000000000..5d8c5b3aaa2 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Exposed Services (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_exposedservice*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:03:43.470Z", + "id": "b006641c-69de-48bd-9a5a-1125f0da1c0b", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:03:43.470Z", + "version": "Wzc5MywyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json index 685741494d9..945bd38e235 100644 --- a/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json +++ b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_*", + "title": "tychon_*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-04-05T12:18:33.104Z", "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json index 4bd64c08dc5..a0e117c3ead 100644 --- a/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json +++ b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_exposedservice*", + "title": "tychon_exposedservice*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-17T13:10:42.315Z", "id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json b/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json index 9ab309eff7e..1a1178df71e 100644 --- a/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json +++ b/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json @@ -10,9 +10,10 @@ "title": "logs-system.application*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-06-21T13:44:35.159Z", "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json index 4ad1b442022..8efc6791749 100644 --- a/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json +++ b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_softwareinventory*", + "title": "tychon_softwareinventory*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-18T19:23:20.043Z", "id": "e0015160-781d-4885-9ae6-04230d059bfb", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json index 5bf53baca56..35dc1490219 100644 --- a/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json +++ b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_networkadapter*", + "title": "tychon_networkadapter*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-08-18T19:11:21.754Z", "id": "e886429e-9532-4f44-bb36-6465fe760866", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json b/packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json new file mode 100644 index 00000000000..c8ac4c372e6 --- /dev/null +++ b/packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Hard Drives (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_harddrive*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:05:32.346Z", + "id": "eb4dc1c4-9f76-4b3c-976c-fc1575288e2d", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:05:32.346Z", + "version": "Wzc5NCwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json b/packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json index 26cbbab3298..04fa130eb20 100644 --- a/packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json +++ b/packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json @@ -7,12 +7,13 @@ "runtimeFieldMap": "{\"STIG_ID\":{\"type\":\"keyword\",\"script\":{\"source\":\"if (doc[\\\"rule.id\\\"].length \u003e 0){\\r\\n def rule_id = doc[\\\"rule.id\\\"].value;\\r\\nif (rule_id == ''){\\r\\n def rule_name = doc[\\\"rule.name\\\"].value.replace('xccdf_mil.disa.stig_rule_','');\\r\\n def iof = rule_name.indexOf('r');\\r\\n emit(rule_name.substring(0, iof))\\r\\n}else{\\r\\n emit(rule_id)\\r\\n}\\r\\n\\r\\n}\\r\\nelse{\\r\\n emit(\\\"\\\")\\r\\n}\"}},\"VULN_ID\":{\"type\":\"keyword\",\"script\":{\"source\":\"if (doc[\\\"rule.id\\\"].length \u003e 0){\\r\\n def rule_id = doc[\\\"rule.id\\\"].value;\\r\\nif (rule_id == ''){\\r\\n def rule_name = doc[\\\"rule.name\\\"].value.replace('xccdf_mil.disa.stig_rule_','');\\r\\n def iof = rule_name.indexOf('r');\\r\\n emit(rule_name.substring(0, iof))\\r\\n}else{\\r\\n emit(rule_id)\\r\\n}\\r\\n\\r\\n}\\r\\nelse{\\r\\n emit(\\\"\\\")\\r\\n}\"}},\"rule.result.score\":{\"type\":\"long\",\"script\":{\"source\":\"if (doc[\\\"rule.result\\\"].length \u003e 0){\\r\\n if (doc[\\\"rule.result\\\"].value == \\\"fail\\\"){\\r\\n emit(10)\\r\\n }else{\\r\\n emit(0)\\r\\n }\\r\\n \\r\\n}\"}},\"benchmarkname\":{\"type\":\"keyword\",\"script\":{\"source\":\"if (doc[\\\"benchmark.name\\\"].length \u003e 0){\\r\\n def namesplit = doc[\\\"benchmark.name\\\"].value.replace(\\\"scap_mil.disa.stig_cref_U_\\\",\\\"\\\").replace(\\\"_STIG_SCAP_1-2_Benchmark-xccdf.xml\\\", \\\"\\\");\\r\\n emit(namesplit);\\r\\n}\\r\\n\\r\\n\\r\\n\"}}}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon.tychon_stig*", + "title": "tychon_stig*", "typeMeta": "{}" }, - "coreMigrationVersion": "8.6.2", + "coreMigrationVersion": "8.8.0", "created_at": "2023-06-20T13:50:39.404Z", "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "managed": true, "migrationVersion": { "index-pattern": "8.0.0" }, diff --git a/packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json b/packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json new file mode 100644 index 00000000000..0813966614a --- /dev/null +++ b/packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "HISTORICAL - Software Inventory (TYCHON)", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "event.ingested", + "title": "logs-tychon.tychon_softwareinventory*", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T11:15:38.058Z", + "id": "f215a0b2-b613-4a33-9959-cd7e34b1a1e2", + "managed": true, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-08-30T11:15:38.058Z", + "version": "Wzc5OSwyXQ==" +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json index dfeefa07995..6a90978d9f6 100644 --- a/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json +++ b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json @@ -1,65 +1,65 @@ { - "id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", - "type": "security-rule", - "attributes": { - "name": "New Command Generated a Listening port", - "tags": [ - "TYCHON", - "Exposed Services" - ], - "interval": "1h", - "enabled": false, - "description": "TYCHON is monitoring endpoints for ports that have been opened at the endpoint, if a new command line was used to start a process that hasn't been seen before this can be cause for concern.", - "risk_score": 47, - "severity": "medium", - "note": "Investigate the endpoint process that was used to open this port", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-3660s", - "rule_id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0011", - "reference": "https://attack.mitre.org/tactics/TA0011", - "name": "Command and Control" - }, - "technique": [ - { - "id": "T1065", - "reference": "https://attack.mitre.org/techniques/T1065", - "name": "Uncommonly Used Port", - "subtechnique": [] - } - ] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "new_terms", - "query": "process.command_line : *", - "new_terms_fields": [ - "source.port", - "process.command_line" - ], - "history_window_start": "now-7d", - "filters": [], - "language": "kuery", - "data_view_id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", - "throttle": "no_actions", - "actions": [] - } + "id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", + "type": "security-rule", + "attributes": { + "name": "New Command Generated a Listening port", + "tags": [ + "TYCHON", + "Exposed Services" + ], + "interval": "1h", + "enabled": false, + "description": "TYCHON is monitoring endpoints for ports that have been opened at the endpoint, if a new command line was used to start a process that hasn't been seen before this can be cause for concern.", + "risk_score": 47, + "severity": "medium", + "note": "Investigate the endpoint process that was used to open this port", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3660s", + "rule_id": "ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0011", + "reference": "https://attack.mitre.org/tactics/TA0011", + "name": "Command and Control" + }, + "technique": [ + { + "id": "T1065", + "reference": "https://attack.mitre.org/techniques/T1065", + "name": "Uncommonly Used Port", + "subtechnique": [] + } + ] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "new_terms", + "query": "process.command_line : *", + "new_terms_fields": [ + "source.port", + "process.command_line" + ], + "history_window_start": "now-7d", + "filters": [], + "language": "kuery", + "data_view_id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "throttle": "no_actions", + "actions": [] + } } \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json index ad3337e3c67..eb774756c6e 100644 --- a/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json +++ b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json @@ -9,20 +9,12 @@ "version": 1, "visState": "{\"title\":\"CCRI: Rule Results - Table\",\"type\":\"table\",\"aggs\":[{\"id\":\"6\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity:medium\",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity:low\",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"schema\":\"bucket\"},{\"id\":\"8\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"8-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: \\\"pass\\\" \",\"language\":\"kuery\"},\"label\":\"Pass\"}]}},\"customMetric\":{\"id\":\"8-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Pass\"},\"schema\":\"metric\"},{\"id\":\"9\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"9-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"Fail\"}]}},\"customMetric\":{\"id\":\"9-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Fail\"},\"schema\":\"metric\"},{\"id\":\"1\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"1-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: pass\",\"language\":\"kuery\"},\"label\":\"\"},{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"\"}]}},\"customMetric\":{\"id\":\"1-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Total\"},\"schema\":\"metric\"}],\"params\":{\"perPage\":5,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":true,\"totalFunc\":\"sum\",\"dimensions\":{\"metrics\":[{\"accessor\":6,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":4,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":5,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"date\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]},\"percentageCol\":\"\",\"showToolbar\":true,\"autoFitRowToContent\":false}}" }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-21T19:32:46.551Z", + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T22:09:42.471Z", "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", - "migrationVersion": { - "visualization": "8.5.0" - }, - "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - } - ], + "managed": true, "type": "visualization", - "updated_at": "2023-06-21T19:32:46.551Z", - "version": "WzI3NTAyMCwxM10=" + "typeMigrationVersion": "8.5.0", + "updated_at": "2023-08-30T22:09:42.540Z", + "version": "WzIyMDgsNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json b/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json index ae54a350ebb..4477bc53e36 100644 --- a/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json +++ b/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json @@ -9,14 +9,12 @@ "version": 1, "visState": "{\"title\":\"CCRI: Benchmark Scores CCRI Weighted - Markdown\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":10,\"openLinksInNewTab\":false,\"markdown\":\"| CCRI Score | Description |\\n| :------------ | :------------ |\\n| 20-100% | Critical Concern |\\n| 10-20% | Moderate Concern |\\n| 0-10% | Minor Concern |\\n| 0% | No Concern |\\n\"}}" }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-20T14:00:50.463Z", + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T22:09:42.471Z", "id": "tychon-d954bdb0-3298-11ec-b058-cf4fefc29658", - "migrationVersion": { - "visualization": "8.5.0" - }, - "references": [], + "managed": true, "type": "visualization", - "updated_at": "2023-06-20T14:00:50.463Z", - "version": "WzI2NDEwMiwxMl0=" + "typeMigrationVersion": "8.5.0", + "updated_at": "2023-08-30T22:09:42.540Z", + "version": "WzIyMDksNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json index b0931ffcd62..0301700c4a8 100644 --- a/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json +++ b/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json @@ -9,20 +9,12 @@ "version": 1, "visState": "{\"title\":\"CCRI: Total Systems - Metric\",\"type\":\"metric\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"params\":{\"field\":\"host.id\",\"customLabel\":\"Systems\",\"emptyAsNull\":false},\"schema\":\"metric\"}],\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":30}}}}" }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-20T14:02:48.095Z", + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-30T22:09:42.471Z", "id": "tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd", - "migrationVersion": { - "visualization": "8.5.0" - }, - "references": [ - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - } - ], + "managed": true, "type": "visualization", - "updated_at": "2023-06-20T14:02:48.095Z", - "version": "WzI2NDE2NiwxMl0=" + "typeMigrationVersion": "8.5.0", + "updated_at": "2023-08-30T22:09:42.540Z", + "version": "WzIyMTAsNF0=" } \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index b96816d410f..47871cc3f94 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.25 +version: 0.0.27 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. @@ -11,7 +11,7 @@ categories: - config_management - vulnerability_management conditions: - kibana.version: "^8.6.0" + kibana.version: "^8.8.0" elastic.subscription: "basic" screenshots: - src: /img/TychonScreenshot.png From 55191f2576cb424a8fb0a81c967f50b4a567000e Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Tue, 12 Sep 2023 11:22:26 -0400 Subject: [PATCH 52/65] update to version 0.0.33 --- packages/tychon/_dev/build/docs/README.md | 16 +- packages/tychon/changelog.yml | 2 +- .../data_stream/tychon_arp/fields/agent.yml | 20 +-- .../data_stream/tychon_arp/fields/ecs.yml | 8 +- .../data_stream/tychon_cpu/fields/agent.yml | 20 +-- .../data_stream/tychon_cpu/fields/ecs.yml | 8 +- .../data_stream/tychon_cve/fields/agent.yml | 156 +++++------------- .../data_stream/tychon_cve/fields/ecs.yml | 2 + .../data_stream/tychon_cve/fields/fields.yml | 43 +---- .../elasticsearch/ingest_pipeline/default.yml | 6 +- .../tychon_exposedservice/fields/ecs.yml | 12 +- .../tychon_harddrive/fields/ecs.yml | 8 +- .../tychon_hardware/fields/ecs.yml | 8 +- .../data_stream/tychon_host/fields/ecs.yml | 4 + .../elasticsearch/ingest_pipeline/default.yml | 32 +++- .../tychon_networkadapter/fields/ecs.yml | 8 +- .../elasticsearch/ingest_pipeline/default.yml | 10 +- .../tychon_softwareinventory/fields/ecs.yml | 9 +- .../data_stream/tychon_volume/fields/ecs.yml | 8 +- .../elasticsearch/transform/cpu/transform.yml | 2 +- .../elasticsearch/transform/epp/transform.yml | 2 +- .../exposed_service/fields/fields.yml | 2 + .../transform/hard_drive/transform.yml | 2 +- .../transform/host_info/transform.yml | 2 +- .../transform/network_adapter/transform.yml | 2 +- ...db40-d137-11e9-a2af-693b633cf871-stig.json | 46 +++++- ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 2 +- ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 48 ++---- ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 123 +++++--------- ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 2 +- ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 48 +++--- .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 2 +- .../10359860-1139-11ee-af86-538da1394f27.json | 2 +- .../2140f083-6e39-4df4-ba41-aa1f41cb81b8.json | 2 +- .../2e5a7e20-1137-11ee-af86-538da1394f27.json | 2 +- .../2e9c9ac0-1138-11ee-af86-538da1394f27.json | 2 +- .../55faa99b-ce17-4a41-9f63-4a7439e3543a.json | 2 +- .../5be38411-3902-4686-8209-1ab75a6d3847.json | 2 +- .../6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json | 2 +- .../6839b82b-22bf-418f-a86b-7e7a4cd074d7.json | 2 +- .../6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json | 2 +- .../867e3450-1139-11ee-af86-538da1394f27.json | 2 +- .../934a39a0-1138-11ee-af86-538da1394f27.json | 2 +- .../bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json | 7 +- .../beeea32f-31ba-4be8-9e2c-14de47280aac.json | 2 +- .../c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json | 2 +- .../ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json | 2 +- .../d0d735ed-08fe-4393-9aa6-120236995152.json | 2 +- ...-837878a0-c3cb-11eb-8956-0b1a70e695fd.json | 142 ++++++++++++++-- packages/tychon/manifest.yml | 2 +- 50 files changed, 426 insertions(+), 418 deletions(-) diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index 3b83431c7a2..704661a1c1e 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -7,7 +7,7 @@ * This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. * This integration requires a TYCHON Agentless license. * This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. - +* This integration supports Elastic 8.8+. ## Returned Data Fields ### ARP Table Information @@ -40,42 +40,42 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v ### Endpoint Exposed Services Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script to scan Endpoint Exposed Services and returns information. **Exported fields** {{fields "tychon_exposedservice"}} ### Endpoint Hard Drive Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. **Exported fields** {{fields "tychon_harddrive"}} ### Endpoint Hardware Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's Hardware Configurations and returns information. **Exported fields** {{fields "tychon_hardware"}} ### Endpoint Host OS Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's OS Configurations and returns information. **Exported fields** {{fields "tychon_host"}} ### Endpoint Network Adapters Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. **Exported fields** {{fields "tychon_networkadapter"}} ### Endpoint Software Inventory Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's Software Inventory and returns information. **Exported fields** {{fields "tychon_softwareinventory"}} @@ -89,7 +89,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X ### Endpoint Volume Information -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. +The TYCHON script scans an endpoint's Volume Configurations and returns information. **Exported fields** {{fields "tychon_volume"}} diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index e382367778b..5607c4b9acc 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.27 +- version: 0.0.33 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/data_stream/tychon_arp/fields/agent.yml index 2f024c089ab..ec653c7199b 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,10 +24,10 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. - type: date + type: long - name: name description: Scanner Script Name. type: keyword @@ -33,13 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword + type: version - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword diff --git a/packages/tychon/data_stream/tychon_arp/fields/ecs.yml b/packages/tychon/data_stream/tychon_arp/fields/ecs.yml index c4741ffc810..1b0bb1256af 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/ecs.yml @@ -72,7 +72,7 @@ name: network.type - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml index 2f024c089ab..ec653c7199b 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,10 +24,10 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. - type: date + type: long - name: name description: Scanner Script Name. type: keyword @@ -33,13 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword + type: version - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword diff --git a/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml b/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml index ff1f0be95fe..a01c01ace4e 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/ecs.yml @@ -64,7 +64,7 @@ name: log.file.path - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index 6dd345cff24..9fd0c90e91c 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -1,82 +1,45 @@ -- 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.' +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: tychon 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 + - name: id + description: TYCHON unique host identifier. 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.' +- name: elastic_agent type: group fields: - name: id - level: core + description: Elastic Agent Id. type: keyword - ignore_above: 1024 - description: Unique container id. - - name: image.name - level: extended + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. type: keyword - ignore_above: 1024 - description: Name of the image the container was built on. +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: long - name: name - level: extended + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. type: keyword - ignore_above: 1024 - description: Container name. - name: host title: Host group: 2 @@ -85,51 +48,15 @@ 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - name: biossn description: Host BIOS Serial Number. type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. + description: Host IPv4 addresses. + type: ip - name: ipv6 - level: core + description: Host IPv6 addresses. type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - name: workgroup description: Host Workgroup Network Name. type: keyword @@ -150,19 +77,10 @@ type: keyword - name: description description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - name: hardware type: group fields: @@ -174,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index 31ba2470b1f..003c9bb8e07 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -58,6 +58,8 @@ name: vulnerability.reference - external: ecs name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.base - external: ecs name: vulnerability.score.version - external: ecs diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 2e5ad842973..26b783e1349 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -1,6 +1,3 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword - name: vulnerability type: group fields: @@ -21,10 +18,7 @@ type: keyword - name: result description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float + type: keyword - name: title description: Common Vulnerabilities and Exposures Description and Title. type: keyword @@ -33,37 +27,4 @@ type: keyword - name: year description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword + type: integer diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 4ffffc9dd05..501df7f2480 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -9,6 +9,10 @@ processors: - set: field: event.ingested value: "{{_ingest.timestamp}}" + - set: + field: source.ip + value: "0.0.0.0" + if: ctx.source.ip == '' - set: field: ecs.version value: 8.8.0 @@ -40,4 +44,4 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file + diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml index a7dcf1323ac..17654c9e49c 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml @@ -86,9 +86,9 @@ name: source.port - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date -- name: process.start - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested +- external: ecs + name: process.start diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml b/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml index ff1f0be95fe..a01c01ace4e 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml @@ -64,7 +64,7 @@ name: log.file.path - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml index 27c34f615b8..de5665adfa8 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml @@ -68,7 +68,7 @@ name: log.file.path - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_host/fields/ecs.yml b/packages/tychon/data_stream/tychon_host/fields/ecs.yml index 2be31038472..751e85d95ad 100644 --- a/packages/tychon/data_stream/tychon_host/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_host/fields/ecs.yml @@ -30,3 +30,7 @@ name: host.type - external: ecs name: host.uptime +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 1d1aa031d3d..6bd76506ab2 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -9,6 +9,9 @@ processors: - set: field: event.ingested value: "{{_ingest.timestamp}}" + - split: + field: host.ipv4 + separator: "," - set: field: ecs.version value: 8.8.0 @@ -30,19 +33,34 @@ processors: value: "{{tempuptime.0}}" - remove: field: tempuptime - - gsub: - field: host.adapter.link_speed - pattern: " Gbps" - replacement: "" + - script: + source: | + String[] ls; + float l; + if(ctx.host.adapter.link_speed != null && ctx.host.adapter.link_speed.splitOnToken(' ')){ + ls = ctx.host.adapter.link_speed.splitOnToken(' '); + l = Float.parseFloat(ls[0]); + if(ls[1] =='Mbps'){ + ctx.host.adapter.link_speed=(long) l*1048576; + }else if(ls[1] =='Gbps'){ + ctx.host.adapter.link_speed=(long) l*1073741824; + } + } + - remove: + field: host.adapter.ip + if: ctx.host.adapter.ip == '' + - remove: + field: host.adapter.gateway + if: ctx.host.adapter.gateway == '' - remove: field: host.adapter.dhcp.server - if: ctx.host.adapter.dhcp.server == '' + if: ctx.host.adapter.dhcp.server == '' - remove: field: host.adapter.dhcp.lease_obtained - if: ctx.host.adapter.dhcp.lease_obtained == '' + if: ctx.host.adapter.dhcp.lease_obtained == '' - remove: field: host.adapter.dhcp.lease_expires - if: ctx.host.adapter.dhcp.lease_expires == '' + if: ctx.host.adapter.dhcp.lease_expires == '' - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml index 684a278aafc..ce008f57715 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml @@ -8,12 +8,12 @@ name: data_stream.type - external: ecs name: ecs.version -- name: error.message - type: match_only_text +- external: ecs + name: error.message - external: ecs name: event.agent_id_status -- name: event.ingested - type: date +- external: ecs + name: event.ingested - external: ecs name: host.domain - external: ecs diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index 97ee454ad48..6e5cafc76b2 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -16,6 +16,14 @@ processors: field: package.installed value: "1970-01-01T00:00:01Z" if: ctx.package.installed == '' + - gsub: + field: version.version_build + pattern: "[^0-9]" + replacement: "" + - gsub: + field: version.version_major + pattern: "[^0-9]" + replacement: "" - set: field: event.kind value: state @@ -44,4 +52,4 @@ on_failure: - append: field: error.message value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file + diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml index c56cb240566..c5ebf028eff 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml @@ -68,7 +68,6 @@ name: package.description - external: ecs name: package.installed - ignore_malformed: true - external: ecs name: package.name - external: ecs @@ -81,7 +80,7 @@ name: package.version - external: ecs name: tags -- name: error.message - type: match_only_text -- name: event.ingested - type: date +- external: ecs + name: error.message +- external: ecs + name: event.ingested diff --git a/packages/tychon/data_stream/tychon_volume/fields/ecs.yml b/packages/tychon/data_stream/tychon_volume/fields/ecs.yml index 2f2e3e60d99..ddef4bf5542 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/ecs.yml @@ -18,16 +18,16 @@ name: data_stream.type - external: ecs name: ecs.version -- name: error.message - type: match_only_text +- external: ecs + name: error.message - external: ecs name: event.agent_id_status - external: ecs name: event.category - external: ecs name: event.dataset -- name: event.ingested - type: date +- external: ecs + name: event.ingested - external: ecs name: event.kind - external: ecs diff --git a/packages/tychon/elasticsearch/transform/cpu/transform.yml b/packages/tychon/elasticsearch/transform/cpu/transform.yml index b9f9e615113..6c11d28d2de 100644 --- a/packages/tychon/elasticsearch/transform/cpu/transform.yml +++ b/packages/tychon/elasticsearch/transform/cpu/transform.yml @@ -3,7 +3,7 @@ source: - logs-tychon.tychon_cpu-* dest: index: tychon_cpu -frequency: 1m +frequency: 1h sync: time: field: 'event.ingested' diff --git a/packages/tychon/elasticsearch/transform/epp/transform.yml b/packages/tychon/elasticsearch/transform/epp/transform.yml index d55f33d234d..ea7835e54d6 100644 --- a/packages/tychon/elasticsearch/transform/epp/transform.yml +++ b/packages/tychon/elasticsearch/transform/epp/transform.yml @@ -3,7 +3,7 @@ source: - logs-tychon.tychon_epp-* dest: index: tychon_epp -frequency: 1m +frequency: 1h sync: time: field: 'event.ingested' diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml b/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml index eada49f31af..0d2e4aef412 100644 --- a/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml +++ b/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml @@ -2,3 +2,5 @@ type: keyword - name: service.display_name type: keyword +- name: source.port + type: integer diff --git a/packages/tychon/elasticsearch/transform/hard_drive/transform.yml b/packages/tychon/elasticsearch/transform/hard_drive/transform.yml index ebc79291549..8a784cee365 100644 --- a/packages/tychon/elasticsearch/transform/hard_drive/transform.yml +++ b/packages/tychon/elasticsearch/transform/hard_drive/transform.yml @@ -3,7 +3,7 @@ source: - logs-tychon.tychon_harddrive-* dest: index: tychon_harddrive -frequency: 1m +frequency: 1h sync: time: field: 'event.ingested' diff --git a/packages/tychon/elasticsearch/transform/host_info/transform.yml b/packages/tychon/elasticsearch/transform/host_info/transform.yml index 451d0832f08..91d194ec972 100644 --- a/packages/tychon/elasticsearch/transform/host_info/transform.yml +++ b/packages/tychon/elasticsearch/transform/host_info/transform.yml @@ -3,7 +3,7 @@ source: - logs-tychon.tychon_host-* dest: index: tychon_host -frequency: 1m +frequency: 1h sync: time: field: 'event.ingested' diff --git a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml index fc0c4022dab..d9649922621 100644 --- a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml +++ b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml @@ -3,7 +3,7 @@ source: - logs-tychon.tychon_networkadapter-* dest: index: tychon_networkadapter -frequency: 1m +frequency: 30m sync: time: field: 'event.ingested' diff --git a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json index 13915e94166..116d2cee793 100644 --- a/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json @@ -1,11 +1,17 @@ { "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{\"49a66ed0-406a-4bd8-b21b-965eb1f497f9\":{\"type\":\"optionsListControl\",\"order\":0,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"49a66ed0-406a-4bd8-b21b-965eb1f497f9\",\"fieldName\":\"benchmark.name\",\"title\":\"Benchmark\",\"singleSelect\":false,\"enhancements\":{}}},\"dbbeb350-d58e-4ea2-8079-2b9d4478974f\":{\"type\":\"optionsListControl\",\"order\":1,\"grow\":false,\"width\":\"small\",\"explicitInput\":{\"id\":\"dbbeb350-d58e-4ea2-8079-2b9d4478974f\",\"fieldName\":\"rule.stig_id\",\"title\":\"STIG ID\",\"enhancements\":{}}},\"44a753fb-4299-48af-b65f-ebb50e7a8c3b\":{\"type\":\"optionsListControl\",\"order\":2,\"grow\":false,\"width\":\"small\",\"explicitInput\":{\"id\":\"44a753fb-4299-48af-b65f-ebb50e7a8c3b\",\"fieldName\":\"rule.finding_id\",\"title\":\"Finding ID\",\"singleSelect\":false,\"enhancements\":{}}},\"ac743466-b33c-422d-a482-e9a04f6351ca\":{\"type\":\"optionsListControl\",\"order\":3,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"ac743466-b33c-422d-a482-e9a04f6351ca\",\"fieldName\":\"rule.oval.id\",\"title\":\"OVAL ID\",\"enhancements\":{}}}}" + }, "description": "Analyze the status of your current STIG scans run against your endpoints.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":17,\"h\":5,\"i\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\"},\"panelIndex\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-dd63da37-c38e-481c-8749-8d1939e14d4f\"}],\"state\":{\"visualization\":{\"layerId\":\"dd63da37-c38e-481c-8749-8d1939e14d4f\",\"accessor\":\"600ef522-0a03-40d3-8833-3090b2b3fe47\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd63da37-c38e-481c-8749-8d1939e14d4f\":{\"columns\":{\"600ef522-0a03-40d3-8833-3090b2b3fe47\":{\"label\":\"Total Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"600ef522-0a03-40d3-8833-3090b2b3fe47\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":11,\"i\":\"655f71a3-4dd4-4429-9163-46300ac07597\"},\"panelIndex\":\"655f71a3-4dd4-4429-9163-46300ac07597\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"| CCRI Score | Description |\\n| :------------ | :------------ |\\n| 20-100% | Critical Concern |\\n| 10-20% | Moderate Concern |\\n| 0-10% | Minor Concern |\\n| 0% | No Concern |\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":5,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":5,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":8,\"i\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\"},\"panelIndex\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"isTransposed\":false},{\"columnId\":\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"},{\"columnId\":\"87f792ec-41cb-4052-ae3c-8e39032305c0\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"}],\"layerId\":\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\":{\"columns\":{\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"filters\",\"scale\":\"ordinal\",\"isBucketed\":true,\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity :\\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity : \\\"medium\\\" \",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity : \\\"low\\\" \",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"customLabel\":true},\"31cd5bd5-bf05-4039-a241-c75a16ad9165\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"87f792ec-41cb-4052-ae3c-8e39032305c0\":{\"label\":\"Total Pass\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"87f792ec-41cb-4052-ae3c-8e39032305c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"Passes and Fails broken down by the rule severity level.\",\"enhancements\":{}},\"title\":\"Severity Breakdown\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":11,\"w\":4,\"h\":20,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":15,\"w\":17,\"h\":16,\"i\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},\"panelIndex\":\"634c2a2e-c6fa-414f-8479-1d797bbaa6be\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_634c2a2e-c6fa-414f-8479-1d797bbaa6be\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":13,\"h\":15,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":26,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\",\"type\":\"index-pattern\"},{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"e138c594-47e4-4f7e-a73e-d8179180ad04\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"Oval ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Weight\",\"dataType\":\"number\",\"operationType\":\"range\",\"sourceField\":\"rule.weight\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"includeEmptyRows\":true,\"type\":\"histogram\",\"ranges\":[{\"from\":0,\"to\":1000,\"label\":\"\"}],\"maxBars\":\"auto\"},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":11,\"i\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\"},\"panelIndex\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"indexpattern-datasource-layer-324940c5-7336-4d83-afd8-f132999ad21d\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"324940c5-7336-4d83-afd8-f132999ad21d\",\"accessors\":[\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"4c922613-246c-4854-8a29-4a64075d585e\",\"splitAccessor\":\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"not applicable\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"not applicable\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"324940c5-7336-4d83-afd8-f132999ad21d\":{\"columns\":{\"4c922613-246c-4854-8a29-4a64075d585e\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\":{\"label\":\"STIG Counts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9fe8831b-a25f-4432-874b-af29a49486d1\":{\"label\":\"Top 4 values of rule.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"4c922613-246c-4854-8a29-4a64075d585e\",\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON continuously reports the status of STIG results, this is the history of those results.\",\"enhancements\":{}},\"title\":\"STIG Scan Results History \"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":42,\"w\":37,\"h\":14,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", + "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":4,\"i\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\"},\"panelIndex\":\"c9a6aaf7-7ebd-43d6-ae37-eb8664d5c0c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":0,\"w\":8,\"h\":6,\"i\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\"},\"panelIndex\":\"2b7c414a-b5fb-4a90-9231-26aaa796e7bf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-dd63da37-c38e-481c-8749-8d1939e14d4f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"dd63da37-c38e-481c-8749-8d1939e14d4f\",\"accessor\":\"600ef522-0a03-40d3-8833-3090b2b3fe47\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"dd63da37-c38e-481c-8749-8d1939e14d4f\":{\"columns\":{\"600ef522-0a03-40d3-8833-3090b2b3fe47\":{\"label\":\"Total Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"600ef522-0a03-40d3-8833-3090b2b3fe47\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":0,\"w\":9,\"h\":6,\"i\":\"6cb8b7bb-6752-4d80-b398-16c5b02eb0b6\"},\"panelIndex\":\"6cb8b7bb-6752-4d80-b398-16c5b02eb0b6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-bbddf942-4f39-4965-9729-159c62ef2d15\"}],\"state\":{\"visualization\":{\"layerId\":\"bbddf942-4f39-4965-9729-159c62ef2d15\",\"accessor\":\"c8b77c55-379a-4ac9-baae-bb94adc9f85d\",\"layerType\":\"data\",\"size\":\"xl\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bbddf942-4f39-4965-9729-159c62ef2d15\":{\"columns\":{\"c8b77c55-379a-4ac9-baae-bb94adc9f85d\":{\"label\":\"Total Rules\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"c8b77c55-379a-4ac9-baae-bb94adc9f85d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":30,\"y\":0,\"w\":4,\"h\":11,\"i\":\"655f71a3-4dd4-4429-9163-46300ac07597\"},\"panelIndex\":\"655f71a3-4dd4-4429-9163-46300ac07597\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"| CCRI Score | Description |\\n| :------------ | :------------ |\\n| 20-100% | Critical Concern |\\n| 10-20% | Moderate Concern |\\n| 0-10% | Minor Concern |\\n| 0% | No Concern |\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":14,\"h\":20,\"i\":\"149977b6-c38d-4715-974d-641c1fc8e57b\"},\"panelIndex\":\"149977b6-c38d-4715-974d-641c1fc8e57b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"oneClickFilter\":true},{\"columnId\":\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"hidden\":false,\"summaryRow\":\"avg\"}]},\"query\":{\"query\":\"rule.result.score :*\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5e88cf37-b3d3-4794-acb6-5e30cdcfd93e\":{\"columns\":{\"3af96ad3-0927-4d98-926f-ff4a49627148\":{\"label\":\"Benchmark\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmarkname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":true},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"overall_sum\",\"isBucketed\":false,\"scale\":\"ratio\",\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\":{\"label\":\"Part of Score %\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"divide\",\"args\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"location\":{\"min\":0,\"max\":62},\"text\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\"}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\"],\"customLabel\":true},\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\":{\"label\":\"Score %\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"(sum(rule.result.score) / overall_sum(sum(rule.result.score)))\",\"isFormulaBroken\":false,\"format\":{\"id\":\"percent\",\"params\":{\"decimals\":0}}},\"references\":[\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"customLabel\":true}},\"columnOrder\":[\"3af96ad3-0927-4d98-926f-ff4a49627148\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X0\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X1\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X2\",\"4136d2b6-93b1-42bb-ad71-6a19e3cc12b8X3\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":4,\"w\":13,\"h\":4,\"i\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\"},\"panelIndex\":\"cec1fd74-b355-4dde-a4d0-a249bbe4f600\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":6,\"w\":8,\"h\":10,\"i\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\"},\"panelIndex\":\"28e2a613-0d7f-4476-aed1-7175f2a18f28\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-7ab9f589-0859-4a2d-a405-8041d7078f67\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ab9f589-0859-4a2d-a405-8041d7078f67\",\"primaryGroups\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\"],\"secondaryGroups\":[],\"metrics\":[\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"allowMultipleMetrics\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ab9f589-0859-4a2d-a405-8041d7078f67\":{\"columns\":{\"2e5e2a7f-5d61-4b93-b105-11d149d39607\":{\"label\":\"OS Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\",\"isBucketed\":true,\"params\":{\"size\":10,\"orderBy\":{\"type\":\"column\",\"columnId\":\"45feac65-b609-44f9-832f-b6d72365b5d8\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"45feac65-b609-44f9-832f-b6d72365b5d8\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2e5e2a7f-5d61-4b93-b105-11d149d39607\",\"45feac65-b609-44f9-832f-b6d72365b5d8\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Operating System\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":21,\"y\":6,\"w\":9,\"h\":10,\"i\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\"},\"panelIndex\":\"13f2d060-9d0e-4fba-9ab5-d2f3baeb0250\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-8d93f7aa-9914-492a-a515-42761f7602a6\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"8d93f7aa-9914-492a-a515-42761f7602a6\",\"primaryGroups\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\"],\"metrics\":[\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"5d8b4201-d4ea-4da3-a2a8-a70c399b406e\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"8d93f7aa-9914-492a-a515-42761f7602a6\":{\"columns\":{\"9185484c-03ef-4d02-8714-d3226d0fc7a2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\":{\"label\":\"Top 3 values of host.os.kernel\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.os.kernel\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fb8d8eb-a066-4a91-8fdc-2fb8a632698d\",\"9185484c-03ef-4d02-8714-d3226d0fc7a2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Kernels\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":8,\"w\":13,\"h\":8,\"i\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\"},\"panelIndex\":\"87fa7e60-7def-4b15-a49b-1f651cfee463\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"isTransposed\":false},{\"columnId\":\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"},{\"columnId\":\"87f792ec-41cb-4052-ae3c-8e39032305c0\",\"isTransposed\":false,\"summaryRow\":\"sum\",\"summaryLabel\":\"Total\"}],\"layerId\":\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9\":{\"columns\":{\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"filters\",\"scale\":\"ordinal\",\"isBucketed\":true,\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity :\\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity : \\\"medium\\\" \",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity : \\\"low\\\" \",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"customLabel\":true},\"31cd5bd5-bf05-4039-a241-c75a16ad9165\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"87f792ec-41cb-4052-ae3c-8e39032305c0\":{\"label\":\"Total Pass\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2\",\"31cd5bd5-bf05-4039-a241-c75a16ad9165\",\"87f792ec-41cb-4052-ae3c-8e39032305c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"Passes and Fails broken down by the rule severity level.\",\"enhancements\":{}},\"title\":\"Severity Breakdown\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":30,\"y\":11,\"w\":4,\"h\":20,\"i\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\"},\"panelIndex\":\"ca6d3287-d16e-4e2f-9216-6140f4f2b4c1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-771df181-6280-4ee3-b215-d26003efa966\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"verticalBullet\",\"layerId\":\"771df181-6280-4ee3-b215-d26003efa966\",\"layerType\":\"data\",\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"maxAccessor\":\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#AFB8C680\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#E7664C\",\"stop\":100}],\"colorStops\":[{\"color\":\"#AFB8C680\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#E7664C\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"colorMode\":\"palette\",\"minAccessor\":\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"771df181-6280-4ee3-b215-d26003efa966\":{\"columns\":{\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\":{\"label\":\"Failure Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\":{\"label\":\"Sum of rule.weight\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.weight\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result : \\\"fail\\\" or rule.result : \\\"pass\\\"\",\"language\":\"kuery\"}},\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]}},\"columnOrder\":[\"33881eb3-ce77-4a4f-b41f-e74e4b17ff86\",\"e31a8da1-6c99-4e57-a6f6-510b5d44e88b\",\"ccf28f2a-27d2-4cc2-a4c0-f9d06ea672dc\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":16,\"w\":30,\"h\":15,\"i\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\"},\"panelIndex\":\"3d731c15-8a40-45e3-bb29-f6aed782e586\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-cbc12900-bf4a-46dd-b2a6-bd0477c82967\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"30c31964-540e-4717-bd75-e40ea661192e\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"isTransposed\":false,\"oneClickFilter\":false,\"alignment\":\"center\"},{\"columnId\":\"d84fce0c-6ffe-47fe-a85c-6286ca255f7f\",\"isTransposed\":true}],\"layerId\":\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cbc12900-bf4a-46dd-b2a6-bd0477c82967\":{\"columns\":{\"30c31964-540e-4717-bd75-e40ea661192e\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ff66c536-1d5f-4bb4-8890-ec64e448627a\":{\"label\":\"Overall Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"eca93477-2464-4ff3-bc2a-63468a90b200\":{\"label\":\"IP Address\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.domain\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d84fce0c-6ffe-47fe-a85c-6286ca255f7f\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d84fce0c-6ffe-47fe-a85c-6286ca255f7f\",\"30c31964-540e-4717-bd75-e40ea661192e\",\"eca93477-2464-4ff3-bc2a-63468a90b200\",\"8bdbac72-279d-4c9a-a1b8-0bd49791e78d\",\"ff66c536-1d5f-4bb4-8890-ec64e448627a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"3c0dfe4d-c571-4127-ba6c-7362042cf2e2\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"View Benchmark Results for this Endpoint\",\"config\":{\"useCurrentFilters\":true,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"description\":\"By host breakdown of failing STIG checks and the sum of their score.\"},\"title\":\"Top 100 Vulnerable Hosts\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":20,\"w\":14,\"h\":11,\"i\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\"},\"panelIndex\":\"5bf2f4f8-4744-4f94-b99d-69b88ff226d1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"name\":\"indexpattern-datasource-layer-0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\",\"accessors\":[\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"cb589ffa-895e-453a-ad68-df02d014d992\"}]},\"query\":{\"query\":\"event.code: 8107\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0e956b5d-4b99-4efc-98a3-8b5ad23c4cab\":{\"columns\":{\"cb589ffa-895e-453a-ad68-df02d014d992\":{\"label\":\"event.created\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.created\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"h\",\"includeEmptyRows\":true,\"dropPartials\":false,\"ignoreTimeRange\":true}},\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"cb589ffa-895e-453a-ad68-df02d014d992\",\"b876dcfc-0fd2-4fcb-9602-65c9ea2c85fe\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{},\"description\":\"This is the event trigger of Benchmark scans completed on endpoints. This is not based on results but on the event log flagging that a scan was completed. \"},\"title\":\"Benchmark Scan Rates\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":31,\"w\":11,\"h\":25,\"i\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\"},\"panelIndex\":\"100e003c-689d-4ccb-a36e-3a61c8aa1f37\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-531949cb-8d36-4358-b503-c470db2357b8\"},{\"type\":\"index-pattern\",\"name\":\"68fe6bfd-8554-40ce-9803-f0fa1fa5f047\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\"}],\"state\":{\"visualization\":{\"layerId\":\"531949cb-8d36-4358-b503-c470db2357b8\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"694097f4-e845-4f15-a42b-3fd4b5731141\"},{\"isTransposed\":false,\"columnId\":\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\"},{\"isTransposed\":false,\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},{\"columnId\":\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"isTransposed\":false,\"alignment\":\"center\"}],\"paging\":{\"enabled\":true,\"size\":30}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"68fe6bfd-8554-40ce-9803-f0fa1fa5f047\",\"negate\":true,\"type\":\"phrase\",\"key\":\"STIG_ID\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"STIG_ID\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"531949cb-8d36-4358-b503-c470db2357b8\":{\"columns\":{\"694097f4-e845-4f15-a42b-3fd4b5731141\":{\"label\":\"Vuln ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"VULN_ID\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"20ad1142-7e78-47f7-8889-6069ad3f7a46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"694097f4-e845-4f15-a42b-3fd4b5731141\",\"24eae38e-8e7e-40fd-aa3a-19cd55219b6c\",\"2a90ac34-3274-49b2-bac3-2dac93b5e0a6\",\"20ad1142-7e78-47f7-8889-6069ad3f7a46\",\"e2c1831b-bcc2-49b1-b286-a80e84bfebe1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":31,\"w\":37,\"h\":11,\"i\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\"},\"panelIndex\":\"e9b5a9c0-5358-43e6-bcf3-ca3dbfe6ee60\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"indexpattern-datasource-layer-324940c5-7336-4d83-afd8-f132999ad21d\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"type\":\"index-pattern\"},{\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"324940c5-7336-4d83-afd8-f132999ad21d\",\"accessors\":[\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"4c922613-246c-4854-8a29-4a64075d585e\",\"splitAccessor\":\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"de7d5fcd-69c9-489a-ad14-e43451dc3eaa\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"not applicable\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"not applicable\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"82886999-a1d2-44ca-9355-6473b13151a2\",\"negate\":true,\"type\":\"phrase\",\"key\":\"rule.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"rule.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"324940c5-7336-4d83-afd8-f132999ad21d\":{\"columns\":{\"4c922613-246c-4854-8a29-4a64075d585e\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\":{\"label\":\"STIG Counts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"9fe8831b-a25f-4432-874b-af29a49486d1\":{\"label\":\"Top 4 values of rule.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"9fe8831b-a25f-4432-874b-af29a49486d1\",\"4c922613-246c-4854-8a29-4a64075d585e\",\"c7ed6ef5-293c-4841-8d4b-44ba3a962b27\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON continuously reports the status of STIG results, this is the history of those results.\",\"enhancements\":{}},\"title\":\"STIG Scan Results History \"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":42,\"w\":37,\"h\":14,\"i\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\"},\"panelIndex\":\"0259e2ee-6cce-430e-8e87-d57537a418f0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"treemap\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"},\"layers\":[{\"layerId\":\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\",\"primaryGroups\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\"],\"secondaryGroups\":[],\"metrics\":[\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"collapseFns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":\"\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"159bfab9-7c23-4970-a3b5-5fbfe799e5f4\":{\"columns\":{\"55733772-e80d-4270-b1ec-3cb02c639a4a\":{\"label\":\"Top 1000 values of rule.oval.id\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.oval.id\",\"isBucketed\":true,\"params\":{\"size\":1000,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\":{\"label\":\"Sum of rule.result.score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"rule.result.score\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"55733772-e80d-4270-b1ec-3cb02c639a4a\",\"3f83400f-c042-46f1-acaa-22fc25d8fdbd\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Result Map\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -16,11 +22,11 @@ "title": "[TYCHON] STIG Report Dashboard", "version": 1 }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-30T23:08:53.189Z", + "coreMigrationVersion": "8.8.0", + "created_at": "2023-08-31T11:43:43.382Z", "id": "tychon-078edb40-d137-11e9-a2af-693b633cf871-stig", "migrationVersion": { - "dashboard": "8.5.0" + "dashboard": "8.6.0" }, "managed": true, "references": [ @@ -34,6 +40,11 @@ "name": "2b7c414a-b5fb-4a90-9231-26aaa796e7bf:indexpattern-datasource-layer-dd63da37-c38e-481c-8749-8d1939e14d4f", "type": "index-pattern" }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "6cb8b7bb-6752-4d80-b398-16c5b02eb0b6:indexpattern-datasource-layer-bbddf942-4f39-4965-9729-159c62ef2d15", + "type": "index-pattern" + }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "name": "149977b6-c38d-4715-974d-641c1fc8e57b:indexpattern-datasource-layer-5e88cf37-b3d3-4794-acb6-5e30cdcfd93e", @@ -86,7 +97,7 @@ }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:e138c594-47e4-4f7e-a73e-d8179180ad04", + "name": "100e003c-689d-4ccb-a36e-3a61c8aa1f37:68fe6bfd-8554-40ce-9803-f0fa1fa5f047", "type": "index-pattern" }, { @@ -109,6 +120,26 @@ "name": "0259e2ee-6cce-430e-8e87-d57537a418f0:indexpattern-datasource-layer-159bfab9-7c23-4970-a3b5-5fbfe799e5f4", "type": "index-pattern" }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "controlGroup_49a66ed0-406a-4bd8-b21b-965eb1f497f9:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "controlGroup_dbbeb350-d58e-4ea2-8079-2b9d4478974f:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "controlGroup_44a753fb-4299-48af-b65f-ebb50e7a8c3b:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "controlGroup_ac743466-b33c-422d-a482-e9a04f6351ca:optionsListDataView", + "type": "index-pattern" + }, { "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", "name": "tag-ref-tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", @@ -131,6 +162,7 @@ } ], "type": "dashboard", - "updated_at": "2023-08-30T23:08:53.189Z", - "version": "WzI0OTIsNF0=" + "typeMigrationVersion": "8.7.0", + "updated_at": "2023-08-31T11:43:43.382Z", + "version": "WzM0MDEsNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json index 24f0ac77c4b..bbbebbaf91a 100644 --- a/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json @@ -5,7 +5,7 @@ "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":14,\"i\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\"},\"panelIndex\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protection Status\\nTYCHON tracks specific Endpoint Protection vendors for enabled features, installed software, and definition versions. Currently, TYCHON supports Trellix, Elastic Defender, and Windows Defender.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":0,\"w\":4,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":4,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":4,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":0,\"w\":4,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":4,\"h\":7,\"i\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\"},\"panelIndex\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Trellix Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\" or not trellix.service.accm.version :\\\"\\\" or not trellix.service.dlp.version :\\\"\\\" or not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":4,\"h\":7,\"i\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\"},\"panelIndex\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ENS Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.status : \\\"Running\\\" and not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":0,\"w\":4,\"h\":7,\"i\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\"},\"panelIndex\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with PA Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.pa.status : \\\"Running\\\" and not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":4,\"h\":7,\"i\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\"},\"panelIndex\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Elastic Defender Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.malware : \\\"\\\" and not elastic.service.endpoint.memory_protection : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":0,\"w\":4,\"h\":7,\"i\":\"94022264-e2ce-4661-b384-b2b5454b02c8\"},\"panelIndex\":\"94022264-e2ce-4661-b384-b2b5454b02c8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Malware Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.malware: \\\"\\\" and not elastic.service.endpoint.malware : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":7,\"w\":4,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":7,\"w\":4,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":7,\"w\":4,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":7,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":7,\"w\":4,\"h\":7,\"i\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\"},\"panelIndex\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ACCM Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.accm.status : \\\"Running\\\" and not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":7,\"w\":4,\"h\":7,\"i\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\"},\"panelIndex\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with DLP Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.dlp.status : \\\"Running\\\" and not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":7,\"w\":4,\"h\":7,\"i\":\"16205847-2ebc-46db-bc4b-606228f52996\"},\"panelIndex\":\"16205847-2ebc-46db-bc4b-606228f52996\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RSD Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.rsd.status : \\\"Running\\\" and not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":7,\"w\":4,\"h\":7,\"i\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\"},\"panelIndex\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Behavior Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.behavior_protection : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\"},\"panelIndex\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Memory Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.memory_protection: \\\"\\\" and not elastic.service.endpoint..memory_protection: \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":24,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e00a8c06-9b49-4cb8-9cd5-598dbcb26113\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Protection\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":8,\"i\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\"},\"panelIndex\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"isTransposed\":false},{\"columnId\":\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"7e2c653a-cc31-404e-847d-913fb28c20b8\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aa495d01-49df-4dfa-9117-2efb3d4407b5\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9dd45bd7-37df-4418-bcf0-00b80fe159a5\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Elastic Endpoint Status \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":22,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5aa080e4-d756-4967-92d3-f92a920b315f\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":22,\"w\":24,\"h\":8,\"i\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\"},\"panelIndex\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\":{\"label\":\"ENS Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"39600cce-a379-46d1-9b6a-42c97b06c32d\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Endpoint Security Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"8d9908e0-205b-43ec-8fd4-343ce4057237\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":8,\"i\":\"d0f95b46-cb78-4246-b605-cf764851569e\"},\"panelIndex\":\"d0f95b46-cb78-4246-b605-cf764851569e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9b0c3115-07d2-4a63-be6e-424b453fd041\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"ACCM Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":38,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"hidden\":false,\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"641eddc6-5d50-4512-9409-a6d9f49e7e8a\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":30,\"w\":24,\"h\":8,\"i\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\"},\"panelIndex\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"04264bb0-25f8-4128-b7dc-821f46b7dd54\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Rogue System Detection \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"24732923-c957-4110-8558-e38a86ad50bf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":38,\"w\":24,\"h\":8,\"i\":\"426f8706-b652-422d-a763-19eb6a28916f\"},\"panelIndex\":\"426f8706-b652-422d-a763-19eb6a28916f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Policy Auditor Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Policy Auditor Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"547ea5a0-a1ae-4a90-8cd0-7ad0e177b613\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Policy Auditor Status\"}]", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":7,\"h\":14,\"i\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\"},\"panelIndex\":\"d2e09597-e06f-4cf8-8bfd-88d40612b89e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protection Status\\nTYCHON tracks specific Endpoint Protection vendors for enabled features, installed software, and definition versions. Currently, TYCHON supports Trellix, Elastic Defender, and Windows Defender.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":0,\"w\":4,\"h\":7,\"i\":\"f9a975c1-d99b-436b-9173-c616f0059426\"},\"panelIndex\":\"f9a975c1-d99b-436b-9173-c616f0059426\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":0,\"w\":4,\"h\":7,\"i\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\"},\"panelIndex\":\"dca19098-8eb9-440e-abf0-19ef55cee62c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with a Feature Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\" or windows_defender.service.antispyware.status :\\\"Disabled\\\" or windows_defender.service.antivirus.status : \\\"Disabled\\\" or windows_defender.service.behavior_monitor.status : \\\"Disabled\\\" or windows_defender.service.ioav_protection.status : \\\"Disabled\\\" or windows_defender.service.nis.status : \\\"Disabled\\\" or windows_defender.service.on_access_protection.status : \\\"Disabled\\\" or windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":4,\"h\":7,\"i\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\"},\"panelIndex\":\"4383ee4c-ec16-48c2-bb13-8f896a9519d4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Spyware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antispyware.status :\\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":0,\"w\":4,\"h\":7,\"i\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\"},\"panelIndex\":\"d3b08c18-3a64-4ea0-95f1-39ac4198013d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Behavior Monitor Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.behavior_monitor.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":0,\"w\":4,\"h\":7,\"i\":\"ac716d8e-e533-4072-aa74-65848d4e0925\"},\"panelIndex\":\"ac716d8e-e533-4072-aa74-65848d4e0925\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RealTime Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.real_time_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":0,\"w\":4,\"h\":7,\"i\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\"},\"panelIndex\":\"e5b0bf6c-69e6-4892-b691-9bc21f0c6b25\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Trellix Endpoints Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\" or not trellix.service.accm.version :\\\"\\\" or not trellix.service.dlp.version :\\\"\\\" or not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":0,\"w\":4,\"h\":7,\"i\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\"},\"panelIndex\":\"bc5b8947-a82b-44d5-bea7-addfad736ad2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ENS Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.ens.status : \\\"Running\\\" and not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.ens.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":0,\"w\":4,\"h\":7,\"i\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\"},\"panelIndex\":\"370c3dc5-5a15-4347-b9a7-7d75ac86cb10\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with PA Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.pa.status : \\\"Running\\\" and not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.pa.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":0,\"w\":4,\"h\":7,\"i\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\"},\"panelIndex\":\"116cc01e-5861-4993-baaf-3f0cc2a312cf\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-69f12a8d-98b2-49f6-bbf5-4182bffc0572\"}],\"state\":{\"visualization\":{\"layerId\":\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\",\"accessor\":\"8e04d29a-e144-4e68-a816-7e820fabc9b4\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"69f12a8d-98b2-49f6-bbf5-4182bffc0572\":{\"columns\":{\"8e04d29a-e144-4e68-a816-7e820fabc9b4\":{\"label\":\"Total Elastic Defender Tracked\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.malware : \\\"\\\" and not elastic.service.endpoint.memory_protection : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"8e04d29a-e144-4e68-a816-7e820fabc9b4\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":0,\"w\":4,\"h\":7,\"i\":\"94022264-e2ce-4661-b384-b2b5454b02c8\"},\"panelIndex\":\"94022264-e2ce-4661-b384-b2b5454b02c8\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Malware Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.malware: \\\"\\\" and not elastic.service.endpoint.malware : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":7,\"w\":4,\"h\":7,\"i\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\"},\"panelIndex\":\"0336a4e3-a647-415d-84b5-fef984ac4a3f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with IOAV Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.ioav_protection.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":11,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\"},\"panelIndex\":\"5fa1a00d-8e9c-441f-be66-9b5c01663fd7\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Malware Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antimalware.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":7,\"w\":4,\"h\":7,\"i\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\"},\"panelIndex\":\"4d4e6682-9758-4359-a6f0-1ba6ca5e40f5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Anti-Virus Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.antivirus.status : \\\"Disabled\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":19,\"y\":7,\"w\":4,\"h\":7,\"i\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\"},\"panelIndex\":\"6a29e48e-892b-4c8a-a3de-8884fd1d9820\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with NIS Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.nis.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":23,\"y\":7,\"w\":4,\"h\":7,\"i\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\"},\"panelIndex\":\"33d492ba-c62f-405e-84a2-c0254e8e743c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with On-Access Protection Disabled\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"windows_defender.service.on_access_protection.status : \\\"Disabled\\\" \",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":27,\"y\":7,\"w\":4,\"h\":7,\"i\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\"},\"panelIndex\":\"685110fd-a3a4-441b-b9b6-42316b8e33ee\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with ACCM Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.accm.status : \\\"Running\\\" and not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"not trellix.service.accm.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":31,\"y\":7,\"w\":4,\"h\":7,\"i\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\"},\"panelIndex\":\"f985f8a3-3272-43d8-90e6-76e56aac5f91\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with DLP Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.dlp.status : \\\"Running\\\" and not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.dlp.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":35,\"y\":7,\"w\":4,\"h\":7,\"i\":\"16205847-2ebc-46db-bc4b-606228f52996\"},\"panelIndex\":\"16205847-2ebc-46db-bc4b-606228f52996\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with RSD Not Running\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not trellix.service.rsd.status : \\\"Running\\\" and not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not trellix.service.rsd.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":39,\"y\":7,\"w\":4,\"h\":7,\"i\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\"},\"panelIndex\":\"fb20b198-fe52-4bb3-b6dd-d4d74855ca73\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Behavior Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.behavior_protection : \\\"\\\" and not elastic.service.endpoint.behavior_protection : \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":43,\"y\":7,\"w\":4,\"h\":7,\"i\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\"},\"panelIndex\":\"5b9ce41f-1950-4c60-8322-a6aa80be383d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-3bf4a05d-75bb-449c-8fd1-34014d8a71e2\"}],\"state\":{\"visualization\":{\"layerId\":\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":1.33},{\"color\":\"#d6bf57\",\"stop\":2.66},{\"color\":\"#cc5642\",\"stop\":4}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"showBar\":true,\"maxAccessor\":\"7713b385-a222-4c2f-a03b-6c8d04045c8a\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3bf4a05d-75bb-449c-8fd1-34014d8a71e2\":{\"columns\":{\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\":{\"label\":\"Systems with Elastic Memory Protection Not Protecting\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.hostname\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true,\"filter\":{\"query\":\"not elastic.service.endpoint.memory_protection: \\\"\\\" and not elastic.service.endpoint..memory_protection: \\\"prevent\\\"\",\"language\":\"kuery\"}},\"7713b385-a222-4c2f-a03b-6c8d04045c8a\":{\"label\":\"Unique count of agent.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"agent.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"filter\":{\"query\":\"not elastic.service.endpoint.version : \\\"\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"82ce687c-6166-4fe3-bad6-69ddbc84ec76\",\"7713b385-a222-4c2f-a03b-6c8d04045c8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":14,\"w\":24,\"h\":8,\"i\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\"},\"panelIndex\":\"8bbedd4e-bc5e-413d-81a1-b17dd5152428\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"c474b5fc-316d-4b04-a857-0476433994f5\"},{\"isTransposed\":false,\"columnId\":\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\"},{\"isTransposed\":false,\"columnId\":\"9b9d897c-2547-4e0a-bb29-196338b39f13\"},{\"isTransposed\":false,\"columnId\":\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\"},{\"isTransposed\":false,\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c98d407f-b7b6-4f65-bb36-e67d26a3b8cb\":{\"columns\":{\"c474b5fc-316d-4b04-a857-0476433994f5\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7114dee1-3e04-4de2-9f99-63d55defb006\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\":{\"label\":\"On Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9b9d897c-2547-4e0a-bb29-196338b39f13\":{\"label\":\"Real Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\":{\"label\":\"IOAV Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.ioav_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"7114dee1-3e04-4de2-9f99-63d55defb006\",\"c474b5fc-316d-4b04-a857-0476433994f5\",\"0f57cac6-9654-421a-8d33-9ef83fbfbea3\",\"9b9d897c-2547-4e0a-bb29-196338b39f13\",\"a5a7cc94-56a0-4570-a209-35cd8ef7b3f5\",\"6c95c57e-4555-492f-8ad6-40dbd3bb8b12\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"e00a8c06-9b49-4cb8-9cd5-598dbcb26113\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Protection\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":8,\"i\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\"},\"panelIndex\":\"5b7f5afe-074d-4b2e-8a81-53c925c2b698\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"isTransposed\":false},{\"columnId\":\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"7e2c653a-cc31-404e-847d-913fb28c20b8\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"aa495d01-49df-4dfa-9117-2efb3d4407b5\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"7e2c653a-cc31-404e-847d-913fb28c20b8\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"aa495d01-49df-4dfa-9117-2efb3d4407b5\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9dd45bd7-37df-4418-bcf0-00b80fe159a5\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Elastic Endpoint Status \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":22,\"w\":24,\"h\":8,\"i\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\"},\"panelIndex\":\"3e9e34b5-9c30-4ef2-b616-bd55af84812a\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Active Antivirus Assets\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-5b735852-dd75-405e-9611-03fcd2e0a96b\"}],\"state\":{\"visualization\":{\"layerId\":\"5b735852-dd75-405e-9611-03fcd2e0a96b\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"485de305-7200-4ba9-b5f5-8af3932725a2\"},{\"isTransposed\":false,\"columnId\":\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"5108c5e3-f394-4061-b4a1-81d642c5b986\"},{\"isTransposed\":false,\"columnId\":\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\"},{\"isTransposed\":false,\"columnId\":\"2cb5be2b-d061-4e44-a346-d2613e2d8552\"},{\"isTransposed\":false,\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5b735852-dd75-405e-9611-03fcd2e0a96b\":{\"columns\":{\"485de305-7200-4ba9-b5f5-8af3932725a2\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5108c5e3-f394-4061-b4a1-81d642c5b986\":{\"label\":\"Quick Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.quick_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2cb5be2b-d061-4e44-a346-d2613e2d8552\":{\"label\":\"Full Scan Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"33ceb4d0-aaf7-44b2-b3d7-cfe2be3369d9\",\"485de305-7200-4ba9-b5f5-8af3932725a2\",\"5108c5e3-f394-4061-b4a1-81d642c5b986\",\"2cb5be2b-d061-4e44-a346-d2613e2d8552\",\"c75b9cff-9203-42a5-aaae-3a7dea61fe25\",\"1eeff7e9-617e-415e-8642-c5b0b4b2f439\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"5aa080e4-d756-4967-92d3-f92a920b315f\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}},\"hidePanelTitles\":false},\"title\":\"Defender Antivirus\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":22,\"w\":24,\"h\":8,\"i\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\"},\"panelIndex\":\"469ca4f4-f561-461b-8067-52e9ccdd675d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false},{\"columnId\":\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\":{\"label\":\"ENS Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"d15c5d0e-53c9-4e95-a815-ebbd0ace6b47\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"39600cce-a379-46d1-9b6a-42c97b06c32d\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Endpoint Security Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":30,\"w\":24,\"h\":8,\"i\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\"},\"panelIndex\":\"3e1efdc5-02e7-46ff-bb1d-4642aa1f1327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\"},{\"isTransposed\":false,\"columnId\":\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\"},{\"isTransposed\":false,\"columnId\":\"56035903-0bcc-4140-99e4-17c30c1bb440\"},{\"isTransposed\":false,\"columnId\":\"ac68d3d0-92e3-469d-b504-cd609a201cc5\"},{\"isTransposed\":false,\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\",\"hidden\":true}],\"layerId\":\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a4583603-ba5e-4eb5-ab11-7d8f7d5586ce\":{\"columns\":{\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\":{\"label\":\"Product Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.product_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"56035903-0bcc-4140-99e4-17c30c1bb440\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ac68d3d0-92e3-469d-b504-cd609a201cc5\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"2ee1d67a-e5d4-4256-9f47-94c77fa3ee8a\",\"99cf82fa-4ea2-4168-bbe7-cd84efd5b468\",\"cfbf81d7-8896-4df5-8b79-4ff131d5d4b4\",\"56035903-0bcc-4140-99e4-17c30c1bb440\",\"ac68d3d0-92e3-469d-b504-cd609a201cc5\",\"e15a4e68-fbf1-40b2-aa20-d993a9e4a214\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"8d9908e0-205b-43ec-8fd4-343ce4057237\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antimalware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":8,\"i\":\"d0f95b46-cb78-4246-b605-cf764851569e\"},\"panelIndex\":\"d0f95b46-cb78-4246-b605-cf764851569e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"9b0c3115-07d2-4a63-be6e-424b453fd041\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"ACCM Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":38,\"w\":24,\"h\":8,\"i\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\"},\"panelIndex\":\"08341f8a-a71d-414d-8b73-d1648e343d3c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6d406795-8e1a-4015-909d-8a0125090f83\"}],\"state\":{\"visualization\":{\"layerId\":\"6d406795-8e1a-4015-909d-8a0125090f83\",\"layerType\":\"data\",\"columns\":[{\"isTransposed\":false,\"columnId\":\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\"},{\"isTransposed\":false,\"columnId\":\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\"},{\"isTransposed\":false,\"columnId\":\"7d79ed89-257d-412b-b67f-5e7e323485ae\"},{\"isTransposed\":false,\"columnId\":\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"hidden\":false,\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\",\"hidden\":true}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6d406795-8e1a-4015-909d-8a0125090f83\":{\"columns\":{\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7d79ed89-257d-412b-b67f-5e7e323485ae\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"dd0ce9a1-5dd8-4836-b4ef-ea94d6b2592b\",\"7d79ed89-257d-412b-b67f-5e7e323485ae\",\"0acc6180-132d-4fc3-b32e-0f3ed79b1712\",\"c7fb6c5e-23c3-4584-8325-a715a3e55c0c\",\"1291d4e7-6e58-44b4-b7bf-3bb2542c2a07\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"641eddc6-5d50-4512-9409-a6d9f49e7e8a\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender Antispyware\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":30,\"w\":24,\"h\":8,\"i\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\"},\"panelIndex\":\"79fcc1f0-f7d1-4ac5-8b1a-790dcd1ca676\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"04264bb0-25f8-4128-b7dc-821f46b7dd54\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Rogue System Detection \"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":8,\"i\":\"dad722ab-af91-4d03-a313-faab0d9533c5\"},\"panelIndex\":\"dad722ab-af91-4d03-a313-faab0d9533c5\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-140a1766-6ea5-4c9c-9c7c-244b239a9d96\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\"},{\"isTransposed\":false,\"columnId\":\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"6659fc9a-979e-4207-be9a-c9f73f507897\"},{\"isTransposed\":false,\"columnId\":\"50793a11-2d90-4843-81df-3c65675a9efd\"},{\"isTransposed\":false,\"columnId\":\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\"},{\"isTransposed\":false,\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\",\"hidden\":true}],\"layerId\":\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"140a1766-6ea5-4c9c-9c7c-244b239a9d96\":{\"columns\":{\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\":{\"label\":\"Host IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ipv4\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f5af84a-9f76-40dd-aceb-14d89c193701\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6659fc9a-979e-4207-be9a-c9f73f507897\":{\"label\":\"Signature Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"50793a11-2d90-4843-81df-3c65675a9efd\":{\"label\":\"Engine Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.engine_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\":{\"label\":\"Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"3ae33139-d059-4477-890a-06dc7abfb798\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3ae33139-d059-4477-890a-06dc7abfb798\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"3f5af84a-9f76-40dd-aceb-14d89c193701\",\"ed88526d-22bc-4fe9-bf8c-8054dcf29513\",\"6659fc9a-979e-4207-be9a-c9f73f507897\",\"50793a11-2d90-4843-81df-3c65675a9efd\",\"100d1fb2-4db6-4ad3-9769-3cefdb067fb8\",\"3ae33139-d059-4477-890a-06dc7abfb798\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"24732923-c957-4110-8558-e38a86ad50bf\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Defender NIS\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":38,\"w\":24,\"h\":8,\"i\":\"426f8706-b652-422d-a763-19eb6a28916f\"},\"panelIndex\":\"426f8706-b652-422d-a763-19eb6a28916f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"isTransposed\":false},{\"columnId\":\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"isTransposed\":false},{\"columnId\":\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"isTransposed\":false}],\"layerId\":\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f0204bf6-51c3-4a5a-a267-b9d92c0bdcae\":{\"columns\":{\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\":{\"label\":\"Policy Auditor Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"76affbdb-026e-4c4d-ba16-8420cbf56dda\":{\"label\":\"IP\",\"dataType\":\"ip\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eff89e1e-c098-4819-a4de-eb050dbbcd13\":{\"label\":\"Policy Auditor Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true}},\"columnOrder\":[\"4d4418c0-d3dd-4bc7-8f4b-78fe0a8afaac\",\"76affbdb-026e-4c4d-ba16-8420cbf56dda\",\"85aea8a2-c9c3-4118-8503-c6b9df2c890a\",\"eff89e1e-c098-4819-a4de-eb050dbbcd13\",\"8763a5c5-efbe-4ccb-bdb5-8372b47f69ee\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"547ea5a0-a1ae-4a90-8cd0-7ad0e177b613\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Drill to Endpoint Browser for System\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":false}}}]}}},\"title\":\"Trellix Policy Auditor Status\"}]", "refreshInterval": { "pause": true, "value": 0 diff --git a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json index 5ee6406315d..e187b2f0425 100644 --- a/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json @@ -4,14 +4,14 @@ "chainingSystem": "HIERARCHICAL", "controlStyle": "oneLine", "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" + "panelsJSON": "{\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"hideExclude\":true,\"hideExists\":true,\"id\":\"8c4d7403-b7c0-4274-9e12-cec69c62e01e\",\"enhancements\":{},\"selectedOptions\":[]}}}" }, - "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. \n\nThe TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", + "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Vulnerabilities view displays all CVEs checked by TYCHON and reported as passed or failed.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date \u003c now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":45,\"w\":48,\"h\":11,\"i\":\"63ef44de-a1a5-41af-9c45-c466e9fc2867\"},\"panelIndex\":\"63ef44de-a1a5-41af-9c45-c466e9fc2867\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\"},{\"type\":\"index-pattern\",\"name\":\"36b078d6-c00f-4595-ac72-09f777c1da1b\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\",\"accessors\":[\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\",\"splitAccessor\":\"386b6bfa-84db-48b8-95bd-96bca3df6355\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"36b078d6-c00f-4595-ac72-09f777c1da1b\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad\":{\"columns\":{\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\":{\"label\":\"Result Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"386b6bfa-84db-48b8-95bd-96bca3df6355\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"386b6bfa-84db-48b8-95bd-96bca3df6355\",\"d1d7d542-9650-40fe-9cf0-76e2b2759d1b\",\"0741b511-e2c9-4cd1-9960-67ad1dd94be7\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON Continuously reports the status of vulnerabilities, this table shows the pass and fails. \",\"enhancements\":{}},\"title\":\"Vulnerability Results History\"}]", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\"},\"panelIndex\":\"e243d9ab-d083-4b45-88a2-9581bf3689ae\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_e243d9ab-d083-4b45-88a2-9581bf3689ae\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":7,\"h\":8,\"i\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\"},\"panelIndex\":\"9c9464be-67ab-4220-bbab-50cfda4e211f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Vulnerabilities\\nTYCHON will scan and report what CVEs are vulnerable on an endpoint, this is a local check using OVAL and customized content. Severity and third-party identifiers like IAVA and CISA dates are pre-correlated at the endpoint in its definition.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":3,\"w\":8,\"h\":8,\"i\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\"},\"panelIndex\":\"18ef0327-ab0a-46d7-ac9c-bf8d01e28eba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\",\"colorMode\":\"Labels\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#209280\",\"stop\":1},{\"color\":\"#cc5642\",\"stop\":100}],\"colorStops\":[{\"color\":\"#209280\",\"stop\":null},{\"color\":\"#209280\",\"stop\":0},{\"color\":\"#cc5642\",\"stop\":1}],\"continuity\":\"all\",\"maxSteps\":5}}},\"query\":{\"query\":\"vulnerability.due_date \u003c now and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Failed Vulnerabilities Pass Due\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":3,\"w\":8,\"h\":8,\"i\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\"},\"panelIndex\":\"0f3331b8-da1a-452c-a1b0-39a5558a1379\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":3,\"w\":8,\"h\":8,\"i\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\"},\"panelIndex\":\"91a3fb55-660d-48ec-89f2-4e5b3122b49b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"iava\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total IAVA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":3,\"w\":8,\"h\":8,\"i\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\"},\"panelIndex\":\"ecee7b3f-f07e-4911-bb36-405e687f3ae0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\"}],\"state\":{\"visualization\":{\"layerId\":\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\",\"accessor\":\"f0df1a7d-307a-40d6-9925-8afb18d9808c\",\"layerType\":\"data\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\",\"size\":\"l\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date_reason : \\\"cisa\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b\":{\"columns\":{\"f0df1a7d-307a-40d6-9925-8afb18d9808c\":{\"label\":\"Total CISA Failed Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"f0df1a7d-307a-40d6-9925-8afb18d9808c\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":7,\"y\":3,\"w\":9,\"h\":8,\"i\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\"},\"panelIndex\":\"eadda9a3-732f-4ad7-81fb-7abc16fe4bd2\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353\"}],\"state\":{\"visualization\":{\"layerId\":\"cd8f844b-1401-4c37-9b58-7ee816064353\",\"accessor\":\"4db8ade0-256f-4272-99a0-61495a90c327\",\"layerType\":\"data\",\"colorMode\":\"None\",\"size\":\"l\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"cd8f844b-1401-4c37-9b58-7ee816064353\":{\"columns\":{\"4db8ade0-256f-4272-99a0-61495a90c327\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4db8ade0-256f-4272-99a0-61495a90c327\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":11,\"w\":16,\"h\":16,\"i\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\"},\"panelIndex\":\"721cfff2-211b-4e21-a5a7-874dcd0e6edc\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_horizontal\",\"layers\":[{\"layerId\":\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\",\"accessors\":[\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"position\":\"top\",\"seriesType\":\"bar_horizontal\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"yConfig\":[{\"forAccessor\":\"c3ae2971-d1a3-447e-9679-439492ce7757\",\"color\":\"#6092c0\"}]}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9f9cf1ce-1e59-4b0f-a264-04b877d4dfba\":{\"columns\":{\"efb8128a-a1e5-46bb-8278-9c81fb97f741\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"c3ae2971-d1a3-447e-9679-439492ce7757\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c3ae2971-d1a3-447e-9679-439492ce7757\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"efb8128a-a1e5-46bb-8278-9c81fb97f741\",\"c3ae2971-d1a3-447e-9679-439492ce7757\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities By Severity\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":11,\"w\":32,\"h\":15,\"i\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\"},\"panelIndex\":\"30647fae-03f0-46a0-b6a6-96f4b9692227\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#D6BF57\",\"stop\":4},{\"color\":\"#d69d57\",\"stop\":6},{\"color\":\"#e7664c\",\"stop\":8},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#D6BF57\",\"stop\":0},{\"color\":\"#d69d57\",\"stop\":4},{\"color\":\"#e7664c\",\"stop\":6},{\"color\":\"#cc5642\",\"stop\":8}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"isTransposed\":false},{\"columnId\":\"05257a37-66cb-4415-979e-b99535b47e1d\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c97d1951-13d7-4266-a021-151ea9e8b441\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true},\"05257a37-66cb-4415-979e-b99535b47e1d\":{\"label\":\"Due Date Category\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"7c5f284d-4d53-4b1d-bde1-dd7d0b6eaac9\",\"05257a37-66cb-4415-979e-b99535b47e1d\",\"c97d1951-13d7-4266-a021-151ea9e8b441\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Failed CVEs\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":18,\"i\":\"b146db26-e963-43f4-b2cd-60eb96128506\"},\"panelIndex\":\"b146db26-e963-43f4-b2cd-60eb96128506\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-52771762-574a-44e5-b312-212bca766745\"}],\"state\":{\"visualization\":{\"shape\":\"pie\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\"},\"layers\":[{\"layerId\":\"52771762-574a-44e5-b312-212bca766745\",\"primaryGroups\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\"],\"metrics\":[\"d694059d-3e12-48e0-8534-c02795963840\"],\"numberDisplay\":\"value\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"52771762-574a-44e5-b312-212bca766745\":{\"columns\":{\"21eb78e0-4d9a-4896-b595-ed36a4c81086\":{\"label\":\"Top 20 values of vulnerability.year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":20,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d694059d-3e12-48e0-8534-c02795963840\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"d694059d-3e12-48e0-8534-c02795963840\":{\"label\":\"Unique count of vulnerability.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"21eb78e0-4d9a-4896-b595-ed36a4c81086\",\"d694059d-3e12-48e0-8534-c02795963840\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Vulnerabilities by Year\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":26,\"w\":32,\"h\":19,\"i\":\"a004f187-6f6e-4875-b63e-2b50db064884\"},\"panelIndex\":\"a004f187-6f6e-4875-b63e-2b50db064884\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"alignment\":\"left\"},{\"columnId\":\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"isTransposed\":false},{\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#45e245\",\"stop\":3},{\"color\":\"#d69d57\",\"stop\":5},{\"color\":\"#df7d6c\",\"stop\":7},{\"color\":\"#e63410\",\"stop\":7.599999904632568}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#45e245\",\"stop\":1},{\"color\":\"#d69d57\",\"stop\":3},{\"color\":\"#df7d6c\",\"stop\":5},{\"color\":\"#e63410\",\"stop\":7}],\"continuity\":\"none\",\"reverse\":false,\"rangeMin\":1,\"rangeMax\":10,\"rangeType\":\"number\"}}},{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"isTransposed\":false},{\"columnId\":\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"d268dc70-0f0d-443b-b702-d08241bc0733\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"direction\":\"asc\"}},\"query\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d268dc70-0f0d-443b-b702-d08241bc0733\":{\"columns\":{\"ac337e99-130a-4af6-a771-32b72b41ea02\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"max\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result: *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"ac337e99-130a-4af6-a771-32b72b41ea02\",\"5e9e7b30-a800-4757-b55c-e7bc60ed32be\",\"eeb56262-f4a7-451c-9a81-dfb12bc296c6\",\"cc9726cd-0333-4030-8ef7-8ca6a134cd74\",\"9d6c754b-aacd-4f6a-8f86-1fb01e957616\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Passed CVEs\"}]", "refreshInterval": { "pause": true, "value": 0 @@ -22,24 +22,18 @@ "title": "[TYCHON] Endpoint Browser - Vulnerabilities ", "version": 1 }, - "coreMigrationVersion": "8.8.0", + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:51:50.468Z", + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", "migrationVersion": { - "dashboard": "8.5.0" + "dashboard": "8.6.0" }, - "created_at": "2023-08-30T21:08:47.844Z", - "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", - "managed": true, "references": [ { "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", "name": "e243d9ab-d083-4b45-88a2-9581bf3689ae:panel_e243d9ab-d083-4b45-88a2-9581bf3689ae", "type": "visualization" }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", - "type": "index-pattern" - }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", "name": "18ef0327-ab0a-46d7-ac9c-bf8d01e28eba:indexpattern-datasource-layer-b5de6e20-9f56-4bec-b4b3-1acb9eb2e76b", @@ -62,7 +56,7 @@ }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "name": "eadda9a3-732f-4ad7-81fb-7abc16fe4bd2:indexpattern-datasource-layer-cd8f844b-1401-4c37-9b58-7ee816064353", "type": "index-pattern" }, { @@ -72,7 +66,7 @@ }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", + "name": "30647fae-03f0-46a0-b6a6-96f4b9692227:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", "type": "index-pattern" }, { @@ -81,13 +75,8 @@ "type": "index-pattern" }, { - "id": "5be62502-2bab-4d66-97ff-d9373963c50d", - "name": "63ef44de-a1a5-41af-9c45-c466e9fc2867:indexpattern-datasource-layer-170cecc9-04b3-4ae1-a0ca-c5d892a6b7ad", - "type": "index-pattern" - }, - { - "id": "5be62502-2bab-4d66-97ff-d9373963c50d", - "name": "63ef44de-a1a5-41af-9c45-c466e9fc2867:36b078d6-c00f-4595-ac72-09f777c1da1b", + "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "name": "a004f187-6f6e-4875-b63e-2b50db064884:indexpattern-datasource-layer-d268dc70-0f0d-443b-b702-d08241bc0733", "type": "index-pattern" }, { @@ -100,11 +89,6 @@ "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", "type": "tag" }, - { - "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, { "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", @@ -119,10 +103,14 @@ "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" + }, + { + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" } ], "type": "dashboard", - "typeMigrationVersion": "8.7.0", - "updated_at": "2023-08-30T21:08:47.844Z", - "version": "WzIxMTgsNF0=" + "updated_at": "2023-08-23T20:51:50.468Z", + "version": "WzgyMTUxMywyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json index 9864097d78c..46af8bafe1f 100644 --- a/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json +++ b/packages/tychon/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json @@ -1,20 +1,14 @@ { "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\":{\"order\":0,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.ip\",\"title\":\"Host IP:\",\"id\":\"a8ba17fc-ba2f-4329-95f5-e4d645c5ae59\",\"enhancements\":{}}},\"1b36863c-a2c8-4696-b534-12cebeca49d1\":{\"order\":2,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.id\",\"title\":\"CVE ID\",\"id\":\"1b36863c-a2c8-4696-b534-12cebeca49d1\",\"enhancements\":{}}},\"67760ce6-5bda-4c39-8960-45439ff4d45b\":{\"order\":3,\"width\":\"small\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"vulnerability.iava\",\"title\":\"IAVA ID:\",\"id\":\"67760ce6-5bda-4c39-8960-45439ff4d45b\",\"enhancements\":{}}},\"9c746f36-33ae-4b53-bb32-7153abb17ba4\":{\"order\":1,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.mac\",\"title\":\"MAC Address\",\"id\":\"9c746f36-33ae-4b53-bb32-7153abb17ba4\",\"enhancements\":{}}},\"db910041-b09f-4b02-b3fe-70c3db05ff62\":{\"order\":4,\"width\":\"medium\",\"grow\":false,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.os.name\",\"title\":\"Operating System\",\"id\":\"db910041-b09f-4b02-b3fe-70c3db05ff62\",\"enhancements\":{}}}}" - }, - "description": "TYCHON scans vulnerabilities on every endpoint, it has thousands of checks and leverages the OVAL standard to determine if a CVE applies to an endpoint. TYCHON updates scan results for failed vulnerabilities every hour and performs full vulnerability checks at every reboot of a computer. The results and findings display in this dashboard.", + "description": "TYCHON scans vulnerabilities on every endpoint, it has thousands of checks and leverages the OVAL standard to determine if a CVE applies to an endpoint. TYCHON updates scan results for failed vulnerabilities every hour and performs full vulnerability checks at every reboot of a computer. The results and findings are displayed in this dashboard.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":5,\"i\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\"},\"panelIndex\":\"679a4e0d-72d6-4080-b8db-fe8c3191e740\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Monitored CVE Count (converted)\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"bb5226cd-c099-46d2-bb71-0257232c7d82\",\"name\":\"indexpattern-datasource-layer-4006531b-9ee8-4f33-9bfc-96670ff0f3b9\"}],\"state\":{\"visualization\":{\"layerId\":\"4006531b-9ee8-4f33-9bfc-96670ff0f3b9\",\"accessor\":\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4006531b-9ee8-4f33-9bfc-96670ff0f3b9\":{\"columns\":{\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\":{\"label\":\"Total Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b9b0efd8-41f5-4e8f-9c83-f8a9a27dd6ec\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":0,\"w\":7,\"h\":5,\"i\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\"},\"panelIndex\":\"373d6d39-77cd-4ee7-9632-27ed5cfad192\",\"embeddableConfig\":{\"attributes\":{\"title\":\"Host Monitored (converted)\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\"}],\"state\":{\"visualization\":{\"layerId\":\"49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\",\"accessor\":\"3c4e58b4-62c9-483e-9cd7-a67e47363392\",\"layerType\":\"data\",\"titlePosition\":\"bottom\",\"textAlign\":\"center\",\"size\":\"xl\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"49f26400-cd0d-4287-b4b9-fb1a81d2fcf6\":{\"columns\":{\"3c4e58b4-62c9-483e-9cd7-a67e47363392\":{\"label\":\"Total Hosts\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"3c4e58b4-62c9-483e-9cd7-a67e47363392\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":0,\"w\":3,\"h\":13,\"i\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\"},\"panelIndex\":\"886b38ad-89f2-4800-ae61-61bcdb4e3b07\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsGauge\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"4f65679f-7137-49e2-8a1e-96c834742340\",\"layerType\":\"data\",\"shape\":\"verticalBullet\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#20928080\",\"stop\":0},{\"color\":\"#D6BF5780\",\"stop\":33.33},{\"color\":\"#CC564280\",\"stop\":66.66}],\"steps\":3,\"continuity\":\"above\",\"maxSteps\":5}},\"ticksPosition\":\"bands\",\"labelMajorMode\":\"auto\",\"metricAccessor\":\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"maxAccessor\":\"e0974009-2843-4825-a7d4-bb854cbe1667\",\"colorMode\":\"palette\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"4f65679f-7137-49e2-8a1e-96c834742340\":{\"columns\":{\"914d14b4-3e36-461c-99db-fc8a7311808b\":{\"label\":\"Failed Score Rank\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"e0974009-2843-4825-a7d4-bb854cbe1667\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"914d14b4-3e36-461c-99db-fc8a7311808b\",\"e0974009-2843-4825-a7d4-bb854cbe1667\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":18,\"y\":0,\"w\":8,\"h\":13,\"i\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\"},\"panelIndex\":\"750876f2-eaee-4c6f-89bd-603c2da274e1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"a738cb8e-6646-4501-9007-03b7d6cf4815\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"oneClickFilter\":true},{\"columnId\":\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"isTransposed\":false},{\"columnId\":\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e7664c\",\"stop\":20},{\"color\":\"#ecb385\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#a8bfda\",\"stop\":80},{\"color\":\"#6092c0\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#e7664c\",\"stop\":0},{\"color\":\"#ecb385\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#a8bfda\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"f7592c84-e21a-4ce1-a92e-f449ce39234c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\",\"summaryLabel\":\"Total Score\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"684eca00-cba8-4853-a931-4e9d535efaec\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"a738cb8e-6646-4501-9007-03b7d6cf4815\":{\"columns\":{\"83e85e09-da17-43c7-9def-0f133f0555ce\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":6,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6a22339f-897e-4ab9-837d-7312b90c77fb\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f7592c84-e21a-4ce1-a92e-f449ce39234c\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"customLabel\":true},\"c83ccc80-c7ff-474e-8489-947456cee9a3\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"83e85e09-da17-43c7-9def-0f133f0555ce\",\"6a22339f-897e-4ab9-837d-7312b90c77fb\",\"ff2782ef-dd0d-4657-ad0c-0b1778af8f3f\",\"c83ccc80-c7ff-474e-8489-947456cee9a3\",\"f7592c84-e21a-4ce1-a92e-f449ce39234c\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":26,\"y\":0,\"w\":8,\"h\":13,\"i\":\"27499756-536c-4e62-b081-addbffdff28d\"},\"panelIndex\":\"27499756-536c-4e62-b081-addbffdff28d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\"},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"cool\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#e0e8f2\",\"stop\":0},{\"color\":\"#c2d2e6\",\"stop\":20},{\"color\":\"#a2bcd9\",\"stop\":40},{\"color\":\"#82a7cd\",\"stop\":60},{\"color\":\"#6092c0\",\"stop\":80}],\"name\":\"cool\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"044d8cc9-a39b-4007-94e6-d34fd9dc0970\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"27d89493-bc6a-4979-a35a-59a5983c3d4c\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"custom\"},\"orderAgg\":{\"label\":\"Last value of vulnerability.score.base\",\"dataType\":\"number\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.score.base\",\"filter\":{\"query\":\"vulnerability.score.base: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"}},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":34,\"y\":0,\"w\":8,\"h\":13,\"i\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\"},\"panelIndex\":\"e6b5c9bd-b726-4be2-93ab-52e7125e3db1\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"},{\"name\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"oneClickFilter\":true},{\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#29b122\",\"stop\":1},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#29b122\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":1},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"b6818356-b709-47f3-a5e7-eb8f19543c9a\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#6092c0\",\"stop\":20},{\"color\":\"#a8bfda\",\"stop\":40},{\"color\":\"#ebeff5\",\"stop\":60},{\"color\":\"#ecb385\",\"stop\":80},{\"color\":\"#e7664c\",\"stop\":100}],\"name\":\"custom\",\"colorStops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"28b051dd-fb8d-449a-b21a-2d70308979bb\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"615410f0-96f3-43e9-9315-2a53fcaa5fdf\":{\"columns\":{\"ba7c701a-298f-4972-a3d7-14b8332adbef\":{\"label\":\"IAVA\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e5331134-3535-412a-ae63-9406eb3a3c46\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e5331134-3535-412a-ae63-9406eb3a3c46\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.iava\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"b6818356-b709-47f3-a5e7-eb8f19543c9a\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ba7c701a-298f-4972-a3d7-14b8332adbef\",\"e5331134-3535-412a-ae63-9406eb3a3c46\",\"b6818356-b709-47f3-a5e7-eb8f19543c9a\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"IAVA Results Breakdown\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":42,\"y\":0,\"w\":6,\"h\":13,\"i\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\"},\"panelIndex\":\"5dc1ffd0-8ed6-4d64-975b-7522c194ea8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"325646e5-58ab-4512-851c-5171a5822fa8\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"648ee7b2-ff85-4404-aa14-175fe01845e5\",\"isTransposed\":false}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"325646e5-58ab-4512-851c-5171a5822fa8\":{\"columns\":{\"75bf2861-0762-41a2-9122-8caa60904d4a\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"648ee7b2-ff85-4404-aa14-175fe01845e5\":{\"label\":\"Total\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"75bf2861-0762-41a2-9122-8caa60904d4a\",\"648ee7b2-ff85-4404-aa14-175fe01845e5\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By CVE Year\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":8,\"h\":4,\"i\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\"},\"panelIndex\":\"c83f05f4-47e2-4b2d-a359-c8ab8ac09e88\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Failed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":5,\"w\":7,\"h\":4,\"i\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\"},\"panelIndex\":\"ab52ed71-894c-466e-b53f-7f0dec7852be\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing Critical\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.severity : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":8,\"h\":4,\"i\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\"},\"panelIndex\":\"35429b34-65a5-4af0-99b6-b9980cdc13ba\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" or vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":9,\"w\":7,\"h\":4,\"i\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\"},\"panelIndex\":\"ec9edb3d-0069-489a-94a7-c7ee626b9f76\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993\"}],\"state\":{\"visualization\":{\"layerId\":\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\",\"layerType\":\"data\",\"metricAccessor\":\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"maxAccessor\":\"649632a8-38c6-42d3-9946-08fd0c7017c8\",\"showBar\":true,\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#cc5642\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#209280\",\"stop\":100}],\"colorStops\":[{\"color\":\"#cc5642\",\"stop\":null},{\"color\":\"#d6bf57\",\"stop\":33.33},{\"color\":\"#209280\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"1c5f04fa-1f1e-4252-908b-77a5c75bc993\":{\"columns\":{\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.iava : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":2}}},\"customLabel\":true},\"649632a8-38c6-42d3-9946-08fd0c7017c8\":{\"label\":\"Vulnerability ID\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.id : *\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"b8b589b9-1f8b-4ee0-bc97-40e09e2d8626\",\"649632a8-38c6-42d3-9946-08fd0c7017c8\"],\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":15,\"h\":21,\"i\":\"f4148e30-8031-419e-aafc-375334eb93bb\"},\"panelIndex\":\"f4148e30-8031-419e-aafc-375334eb93bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed\"}],\"state\":{\"visualization\":{\"layerId\":\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"a821c037-534b-4114-8840-28b32f57547f\",\"oneClickFilter\":true,\"width\":562.8125},{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"width\":678.75},{\"columnId\":\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}}},{\"columnId\":\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"width\":852.3125},{\"columnId\":\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"isTransposed\":false,\"alignment\":\"center\",\"width\":447.8125}],\"sorting\":{\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f2abbf0c-776c-41e1-a7ab-cd8c207389ed\":{\"columns\":{\"a821c037-534b-4114-8840-28b32f57547f\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false,\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0,\"suffix\":\"\"}}},\"customLabel\":true},\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5593d99d-c179-424b-a38a-6f94751c3f4f\":{\"label\":\"Failed IAVAs\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.iava : * and vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\":{\"label\":\"Domain\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a821c037-534b-4114-8840-28b32f57547f\",\"cedab1f5-eacf-4fa9-b83f-d8e602a149bc\",\"411d9d7b-bbc3-4c01-9337-8fa3b66b5573\",\"5593d99d-c179-424b-a38a-6f94751c3f4f\",\"9a387a1a-6c45-40ac-b21c-75dc4ddd1c3e\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Top 200 Hosts by Failures\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":15,\"y\":13,\"w\":9,\"h\":21,\"i\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\"},\"panelIndex\":\"fa0504a4-ba9e-4429-b706-e429d42828a4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"oneClickFilter\":true},{\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\",\"alignment\":\"center\"}]},\"query\":{\"query\":\"event.code : 8000\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"d9b506eb-03f8-4dd4-a72a-3cf98e84ada5\":{\"columns\":{\"25103ba4-d45f-453d-ac4d-226600fbf532\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"46bb4591-4054-4b9b-a51e-961589046c64\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"46bb4591-4054-4b9b-a51e-961589046c64\":{\"label\":\"Last Scan Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"event.ingested\",\"filter\":{\"query\":\"event.ingested: *\",\"language\":\"kuery\"},\"timeShift\":\"\",\"params\":{\"sortField\":\"event.ingested\"},\"customLabel\":true}},\"columnOrder\":[\"25103ba4-d45f-453d-ac4d-226600fbf532\",\"46bb4591-4054-4b9b-a51e-961589046c64\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Hosts Last Scan\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":13,\"w\":24,\"h\":10,\"i\":\"54623b32-425a-4c80-8f8b-e2a3401aa06b\"},\"panelIndex\":\"54623b32-425a-4c80-8f8b-e2a3401aa06b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-38d3d7aa-9059-4c73-b69c-d6d541808d29\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"38d3d7aa-9059-4c73-b69c-d6d541808d29\",\"accessors\":[\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\",\"yConfig\":[{\"forAccessor\":\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\",\"color\":\"#d36086\"}],\"splitAccessor\":\"20c4da2d-a27e-4461-84cf-31c7cc253951\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"38d3d7aa-9059-4c73-b69c-d6d541808d29\":{\"columns\":{\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\":{\"label\":\"Ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\":{\"label\":\"Failing Vulnerabilities\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"20c4da2d-a27e-4461-84cf-31c7cc253951\":{\"label\":\"Top 3 values of vulnerability.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[\"unknown\"],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"71d1c8ab-095a-455e-a4b2-e915ab4cf558\",\"20c4da2d-a27e-4461-84cf-31c7cc253951\",\"f5717b90-e184-4fb6-9d3f-eea8954a2d8a\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON runs full vulnerability checks every day and delta checks every hour, this graph tracks those results over time.\",\"enhancements\":{}},\"title\":\"Vulnerability Result History\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":24,\"y\":23,\"w\":24,\"h\":11,\"i\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\"},\"panelIndex\":\"7a66b950-c869-4bdd-afb7-794cfcc5225b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416\",\"id\":\"df491fbb-3f09-4ab0-995a-c2c549a9bc21\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"fittingFunction\":\"None\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"preferredSeriesType\":\"area_stacked\",\"layers\":[{\"layerId\":\"6597e88e-74e8-47dd-a41e-b0856b99a416\",\"accessors\":[\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"position\":\"top\",\"seriesType\":\"area_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"splitAccessor\":\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\"}]},\"query\":{\"query\":\"event.code : 8000 or event.code: 8001 or event.code: 8002\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6597e88e-74e8-47dd-a41e-b0856b99a416\":{\"columns\":{\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\":{\"label\":\"Top 5 values of event.code\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.code\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e3310b41-0106-49dc-88fd-a1a867198197\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}},\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"e3310b41-0106-49dc-88fd-a1a867198197\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"29e7fd52-d400-468e-8162-2cfeb2c11cbf\",\"2270dadf-b0b9-4a09-9e92-8ce74e2756fc\",\"e3310b41-0106-49dc-88fd-a1a867198197\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Scan Starts and Ends over Time\"},{\"version\":\"8.8.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":34,\"w\":48,\"h\":20,\"i\":\"26748b80-0759-4316-b554-d2309ea63ce6\"},\"panelIndex\":\"26748b80-0759-4316-b554-d2309ea63ce6\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"88fe4865-829d-4e1e-864d-5954609d283f\",\"oneClickFilter\":true},{\"isTransposed\":false,\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\",\"alignment\":\"center\"},{\"columnId\":\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"isTransposed\":false},{\"columnId\":\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":5,\"stops\":[{\"color\":\"#89adf2\",\"stop\":20},{\"color\":\"#f3bbaf\",\"stop\":40},{\"color\":\"#e99a89\",\"stop\":60},{\"color\":\"#db7965\",\"stop\":80},{\"color\":\"#cc5642\",\"stop\":100}],\"name\":\"custom\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null,\"colorStops\":[{\"color\":\"#89adf2\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}]}}}],\"layerId\":\"68551b69-50f5-4d7e-a51b-98dead9be7c2\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"68551b69-50f5-4d7e-a51b-98dead9be7c2\":{\"columns\":{\"88fe4865-829d-4e1e-864d-5954609d283f\":{\"label\":\"Vulnerability ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":300,\"orderBy\":{\"type\":\"column\",\"columnId\":\"d7cf9854-7dca-4331-927c-960f11be25bb\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"342a7ea2-f259-4604-a28b-272bff538a02\":{\"label\":\"Total Reported\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7422b908-e777-43a3-bad1-e8558ff15d4e\":{\"label\":\"Base Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"342a7ea2-f259-4604-a28b-272bff538a02\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d7cf9854-7dca-4331-927c-960f11be25bb\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"host.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"88fe4865-829d-4e1e-864d-5954609d283f\",\"4b8d6316-a5f3-4fb3-8bfb-0c36a2df4f4b\",\"7422b908-e777-43a3-bad1-e8558ff15d4e\",\"3f2ff38f-876c-4d6f-acd3-86368cb61a8a\",\"d7cf9854-7dca-4331-927c-960f11be25bb\",\"342a7ea2-f259-4604-a28b-272bff538a02\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Top 200 CVEs by Failure Count\"}]", + "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":0,\"w\":4,\"h\":5,\"i\":\"c727c528-622b-4fb7-857e-e3bcfe0751fd\"},\"panelIndex\":\"c727c528-622b-4fb7-857e-e3bcfe0751fd\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-0682870a-1465-4a9d-be3e-c4863b7582ea\"}],\"state\":{\"visualization\":{\"layerId\":\"0682870a-1465-4a9d-be3e-c4863b7582ea\",\"accessor\":\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\",\"layerType\":\"data\",\"size\":\"xl\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0682870a-1465-4a9d-be3e-c4863b7582ea\":{\"columns\":{\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\":{\"label\":\"Total Vulnerability Count\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":4,\"y\":0,\"w\":4,\"h\":5,\"i\":\"cab4478f-def6-426a-9c1d-b960cb9e03e9\"},\"panelIndex\":\"cab4478f-def6-426a-9c1d-b960cb9e03e9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsLegacyMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-0682870a-1465-4a9d-be3e-c4863b7582ea\"}],\"state\":{\"visualization\":{\"layerId\":\"0682870a-1465-4a9d-be3e-c4863b7582ea\",\"accessor\":\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\",\"layerType\":\"data\",\"size\":\"xl\",\"textAlign\":\"center\",\"titlePosition\":\"bottom\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"0682870a-1465-4a9d-be3e-c4863b7582ea\":{\"columns\":{\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\":{\"label\":\"Total Asset Count\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"e7d4cc9e-5f43-472d-959d-e0ba1333952b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":13,\"i\":\"c34200e8-bd83-4a77-9b2f-dc4c87bc1ad9\"},\"panelIndex\":\"c34200e8-bd83-4a77-9b2f-dc4c87bc1ad9\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-017cbeff-136b-4bcd-a68f-1d9bb899aa4b\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"949c9440-9dd3-49e4-8476-8ff7d5b0e4b7\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"e1ab1f7d-bcb4-4c68-b383-8662ed9a3adf\",\"isTransposed\":false}],\"layerId\":\"017cbeff-136b-4bcd-a68f-1d9bb899aa4b\",\"layerType\":\"data\"},\"query\":{\"query\":\"vulnerability.result : \\\"fail\\\" and vulnerability.due_date \u003e \\\"1970-01-01\\\" and vulnerability.due_date \u003c now\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"017cbeff-136b-4bcd-a68f-1d9bb899aa4b\":{\"columns\":{\"949c9440-9dd3-49e4-8476-8ff7d5b0e4b7\":{\"label\":\"CVE ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":50,\"orderBy\":{\"type\":\"column\",\"columnId\":\"e1ab1f7d-bcb4-4c68-b383-8662ed9a3adf\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e1ab1f7d-bcb4-4c68-b383-8662ed9a3adf\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"vulnerability.due_date\"},\"customLabel\":true}},\"columnOrder\":[\"949c9440-9dd3-49e4-8476-8ff7d5b0e4b7\",\"e1ab1f7d-bcb4-4c68-b383-8662ed9a3adf\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON gives a \\\"due date\\\" for vulnerabilities when they meet certain criteria. It uses CISA reported date, then 18 days from an IAVA release, or 30 days from the release of a critical severity CVE.\",\"enhancements\":{}},\"title\":\"Vulnerabilities Failing Past Due\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":16,\"y\":0,\"w\":16,\"h\":13,\"i\":\"d4f17392-b10b-4343-82ea-a7e374333327\"},\"panelIndex\":\"d4f17392-b10b-4343-82ea-a7e374333327\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-2aca319d-8aef-4230-afa2-3fc928a03f8d\"},{\"type\":\"index-pattern\",\"name\":\"4e2f597d-d225-4927-8a8f-a9c968bd4a21\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"4be56e8d-3d14-4175-80c8-222f40fd9659\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"summaryRow\":\"sum\"},{\"columnId\":\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"summaryRow\":\"sum\"},{\"columnId\":\"f55eae82-d6a8-4314-9eac-c4e5f68a521e\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"summaryRow\":\"sum\"},{\"columnId\":\"2bf89fa2-fa5e-49d4-ae94-69caf1677afd\",\"isTransposed\":false}],\"layerId\":\"2aca319d-8aef-4230-afa2-3fc928a03f8d\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"disabled\":false,\"negate\":true,\"alias\":null,\"index\":\"4e2f597d-d225-4927-8a8f-a9c968bd4a21\",\"key\":\"vulnerability.severity\",\"field\":\"vulnerability.severity\",\"params\":{\"query\":\"\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"vulnerability.severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2aca319d-8aef-4230-afa2-3fc928a03f8d\":{\"columns\":{\"4be56e8d-3d14-4175-80c8-222f40fd9659\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"f55eae82-d6a8-4314-9eac-c4e5f68a521e\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2bf89fa2-fa5e-49d4-ae94-69caf1677afd\":{\"label\":\"Total Possible Score\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"4be56e8d-3d14-4175-80c8-222f40fd9659\",\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\",\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\",\"f55eae82-d6a8-4314-9eac-c4e5f68a521e\",\"2bf89fa2-fa5e-49d4-ae94-69caf1677afd\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON uses NVD version 2 and 3 scores to evaluate risk scores for CVE vulnerabilities. \",\"enhancements\":{}},\"title\":\"NVD Severity Breakdown\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":0,\"w\":8,\"h\":9,\"i\":\"5cb629a9-cd1d-4c34-80d0-bd4f89f8c7a3\"},\"panelIndex\":\"5cb629a9-cd1d-4c34-80d0-bd4f89f8c7a3\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-2aca319d-8aef-4230-afa2-3fc928a03f8d\"},{\"type\":\"index-pattern\",\"name\":\"f9b1376a-2b15-459b-83e8-808684076ee2\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"4be56e8d-3d14-4175-80c8-222f40fd9659\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\",\"isTransposed\":false,\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}},\"alignment\":\"center\",\"summaryRow\":\"sum\"},{\"columnId\":\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"positive\",\"params\":{\"stops\":[{\"color\":\"#d6e9e4\",\"stop\":20},{\"color\":\"#aed3ca\",\"stop\":40},{\"color\":\"#85bdb1\",\"stop\":60},{\"color\":\"#5aa898\",\"stop\":80},{\"color\":\"#209280\",\"stop\":100}]}},\"summaryRow\":\"sum\"}],\"layerId\":\"2aca319d-8aef-4230-afa2-3fc928a03f8d\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"disabled\":false,\"negate\":true,\"alias\":null,\"index\":\"f9b1376a-2b15-459b-83e8-808684076ee2\",\"key\":\"vulnerability.iava_severity\",\"field\":\"vulnerability.iava_severity\",\"params\":{\"query\":\"\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"vulnerability.iava_severity\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2aca319d-8aef-4230-afa2-3fc928a03f8d\":{\"columns\":{\"4be56e8d-3d14-4175-80c8-222f40fd9659\":{\"label\":\"NVD Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava_severity\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"4be56e8d-3d14-4175-80c8-222f40fd9659\",\"98af4dc8-b5fd-49fe-979f-fdcd1b012600\",\"2c114e7a-fd2b-4a07-a4c1-9438782e8f5b\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON aligns its vulnerabilities to DISA IAVA to help associate the risk with failing checks.\",\"enhancements\":{}},\"title\":\"IAVA Severity Breakdown \"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":40,\"y\":0,\"w\":8,\"h\":32,\"i\":\"9d7c1a54-bcc4-4ee3-9fb0-bcc83768d8bb\"},\"panelIndex\":\"9d7c1a54-bcc4-4ee3-9fb0-bcc83768d8bb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-10dc586e-9120-457f-bd25-337e235c0ede\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"},{\"columnId\":\"b5204440-d65a-4c58-a048-242c2bc8c9da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"negative\",\"params\":{\"stops\":[{\"color\":\"#fbddd6\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"name\":\"negative\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"10dc586e-9120-457f-bd25-337e235c0ede\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"10dc586e-9120-457f-bd25-337e235c0ede\":{\"columns\":{\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\":{\"label\":\"Year\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.year\",\"isBucketed\":true,\"params\":{\"size\":30,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b5204440-d65a-4c58-a048-242c2bc8c9da\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b5204440-d65a-4c58-a048-242c2bc8c9da\":{\"label\":\"Total Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\":{\"label\":\"Failing Counts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\",\"b5204440-d65a-4c58-a048-242c2bc8c9da\",\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Counts By Year\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":5,\"w\":4,\"h\":4,\"i\":\"43687602-22dc-4c1c-8eaa-b73bf8684e2b\"},\"panelIndex\":\"43687602-22dc-4c1c-8eaa-b73bf8684e2b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856\"}],\"state\":{\"visualization\":{\"layerId\":\"f8c69b31-1e26-48da-bfce-173a232da856\",\"layerType\":\"data\",\"metricAccessor\":\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"maxAccessor\":\"64227f18-dfeb-4263-acbd-a4bc6e800520\",\"showBar\":true,\"color\":\"#E7664C\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f8c69b31-1e26-48da-bfce-173a232da856\":{\"columns\":{\"70df2efb-db8e-43ab-bd8e-35efab122186\":{\"label\":\"Total Fails\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"64227f18-dfeb-4263-acbd-a4bc6e800520\":{\"label\":\"Total Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"64227f18-dfeb-4263-acbd-a4bc6e800520\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":4,\"y\":5,\"w\":4,\"h\":4,\"i\":\"8e5d38ea-9796-49e2-bbb7-02db91569c4b\"},\"panelIndex\":\"8e5d38ea-9796-49e2-bbb7-02db91569c4b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856\"}],\"state\":{\"visualization\":{\"layerId\":\"f8c69b31-1e26-48da-bfce-173a232da856\",\"layerType\":\"data\",\"metricAccessor\":\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"maxAccessor\":\"64227f18-dfeb-4263-acbd-a4bc6e800520\",\"showBar\":true,\"color\":\"#E7664C\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f8c69b31-1e26-48da-bfce-173a232da856\":{\"columns\":{\"70df2efb-db8e-43ab-bd8e-35efab122186\":{\"label\":\"Hosts Failing\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"64227f18-dfeb-4263-acbd-a4bc6e800520\":{\"label\":\"Unique count of tychon.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"64227f18-dfeb-4263-acbd-a4bc6e800520\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":9,\"w\":4,\"h\":4,\"i\":\"69a84b6a-5fd8-47b0-ac56-4b36579689c3\"},\"panelIndex\":\"69a84b6a-5fd8-47b0-ac56-4b36579689c3\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856\"}],\"state\":{\"visualization\":{\"layerId\":\"f8c69b31-1e26-48da-bfce-173a232da856\",\"layerType\":\"data\",\"metricAccessor\":\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"maxAccessor\":\"64227f18-dfeb-4263-acbd-a4bc6e800520\",\"showBar\":true,\"color\":\"#54B399\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f8c69b31-1e26-48da-bfce-173a232da856\":{\"columns\":{\"70df2efb-db8e-43ab-bd8e-35efab122186\":{\"label\":\"Total Passed\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"vulnerability.result : \\\"pass\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"64227f18-dfeb-4263-acbd-a4bc6e800520\":{\"label\":\"Total Count\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"64227f18-dfeb-4263-acbd-a4bc6e800520\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":4,\"y\":9,\"w\":4,\"h\":4,\"i\":\"e77342b9-6b1d-4c31-ae74-65550418decb\"},\"panelIndex\":\"e77342b9-6b1d-4c31-ae74-65550418decb\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856\"}],\"state\":{\"visualization\":{\"layerId\":\"f8c69b31-1e26-48da-bfce-173a232da856\",\"layerType\":\"data\",\"metricAccessor\":\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"maxAccessor\":\"64227f18-dfeb-4263-acbd-a4bc6e800520\",\"showBar\":true,\"color\":\"#E7664C\",\"progressDirection\":\"horizontal\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"f8c69b31-1e26-48da-bfce-173a232da856\":{\"columns\":{\"70df2efb-db8e-43ab-bd8e-35efab122186\":{\"label\":\"Hosts Failing IAVA\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" and not vulnerability.iava : \\\"\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"64227f18-dfeb-4263-acbd-a4bc6e800520\":{\"label\":\"Unique count of tychon.id\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"params\":{\"emptyAsNull\":true}}},\"columnOrder\":[\"70df2efb-db8e-43ab-bd8e-35efab122186\",\"64227f18-dfeb-4263-acbd-a4bc6e800520\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":32,\"y\":9,\"w\":8,\"h\":23,\"i\":\"9d985147-542e-444e-95de-86b72e141def\"},\"panelIndex\":\"9d985147-542e-444e-95de-86b72e141def\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-10dc586e-9120-457f-bd25-337e235c0ede\"},{\"type\":\"index-pattern\",\"name\":\"8da78282-bb0e-4b32-b6c4-5b6fcb752b4d\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\",\"isTransposed\":false,\"oneClickFilter\":true,\"alignment\":\"center\"},{\"columnId\":\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"negative\",\"params\":{\"stops\":[{\"color\":\"#fbddd6\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"name\":\"negative\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"10dc586e-9120-457f-bd25-337e235c0ede\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"8da78282-bb0e-4b32-b6c4-5b6fcb752b4d\",\"type\":\"phrase\",\"key\":\"vulnerability.iava\",\"params\":{\"query\":\"\"},\"disabled\":false,\"negate\":true,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.iava\":\"\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"10dc586e-9120-457f-bd25-337e235c0ede\":{\"columns\":{\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\":{\"label\":\"IAVA ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.iava\",\"isBucketed\":true,\"params\":{\"size\":30,\"orderBy\":{\"type\":\"column\",\"columnId\":\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\":{\"label\":\"Failing Counts\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true}},\"columnOrder\":[\"0bddfe81-b0e4-4eca-9e82-6f5072578ee7\",\"ff6c9cbe-26b9-4185-b86d-e41dbc60c1c6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{},\"description\":\"DISA IAVA IDs and the total number of failures.\"},\"title\":\"IAVA IDs\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":13,\"h\":19,\"i\":\"fbd0fbab-9136-49c6-9b75-46bd3f8d987b\"},\"panelIndex\":\"fbd0fbab-9136-49c6-9b75-46bd3f8d987b\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"78931842-dc88-45d7-a6ee-d79fb9f615bd\",\"name\":\"indexpattern-datasource-layer-2b0af3cf-2577-4225-b801-4dbc1c6d10c3\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"2209b20f-7ba7-4118-8ec1-1b860ce5c335\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"96b1c955-f220-47d9-a69f-a01099cd252f\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"negative\",\"params\":{\"stops\":[{\"color\":\"#fbddd6\",\"stop\":0},{\"color\":\"#f3bbaf\",\"stop\":20},{\"color\":\"#e99a89\",\"stop\":40},{\"color\":\"#db7965\",\"stop\":60},{\"color\":\"#cc5642\",\"stop\":80}],\"name\":\"negative\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"235c5841-8650-4f0d-b15e-e3d9b27ceabc\",\"isTransposed\":false},{\"columnId\":\"41beb024-d85d-4652-a507-97071212c25f\",\"isTransposed\":false}],\"layerId\":\"2b0af3cf-2577-4225-b801-4dbc1c6d10c3\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2b0af3cf-2577-4225-b801-4dbc1c6d10c3\":{\"columns\":{\"2209b20f-7ba7-4118-8ec1-1b860ce5c335\":{\"label\":\"Hostname\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.hostname\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"96b1c955-f220-47d9-a69f-a01099cd252f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"96b1c955-f220-47d9-a69f-a01099cd252f\":{\"label\":\"Total Failing\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":false,\"filter\":{\"query\":\"vulnerability.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"235c5841-8650-4f0d-b15e-e3d9b27ceabc\":{\"label\":\"IP\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.ip\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"96b1c955-f220-47d9-a69f-a01099cd252f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"41beb024-d85d-4652-a507-97071212c25f\":{\"label\":\"MAC\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.mac\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"96b1c955-f220-47d9-a69f-a01099cd252f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"2209b20f-7ba7-4118-8ec1-1b860ce5c335\",\"235c5841-8650-4f0d-b15e-e3d9b27ceabc\",\"41beb024-d85d-4652-a507-97071212c25f\",\"96b1c955-f220-47d9-a69f-a01099cd252f\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"The Top 200 hosts that are reporting failed vulnerabilities, this is a total count of fails. \",\"enhancements\":{\"dynamicActions\":{\"events\":[{\"eventId\":\"96e39190-5ea2-4199-993b-6e2657b8299b\",\"triggers\":[\"FILTER_TRIGGER\"],\"action\":{\"factoryId\":\"DASHBOARD_TO_DASHBOARD_DRILLDOWN\",\"name\":\"Navigate to Endpoint Browser\",\"config\":{\"useCurrentFilters\":false,\"useCurrentDateRange\":true,\"openInNewTab\":true}}}]}}},\"title\":\"Top 200 Failing Hosts\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":13,\"y\":13,\"w\":19,\"h\":19,\"i\":\"1e383218-85c2-48c6-a653-25b2f0c0d869\"},\"panelIndex\":\"1e383218-85c2-48c6-a653-25b2f0c0d869\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-21c4a9b8-f5ce-418b-9466-605c2742d8d9\"},{\"type\":\"index-pattern\",\"name\":\"d50ba03c-dcd0-469e-a4c2-1a02d99263d8\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"21c4a9b8-f5ce-418b-9466-605c2742d8d9\",\"accessors\":[\"83ac325a-0162-45d4-b642-33f73351c8d2\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"132c8097-326e-4f5b-81fa-df708221c0ee\",\"splitAccessor\":\"b57de897-5bb8-42a6-8158-571e3fda028a\",\"palette\":{\"type\":\"palette\",\"name\":\"status\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[{\"meta\":{\"index\":\"d50ba03c-dcd0-469e-a4c2-1a02d99263d8\",\"negate\":true,\"type\":\"phrase\",\"key\":\"vulnerability.result\",\"params\":{\"query\":\"unknown\"},\"disabled\":false,\"alias\":null},\"query\":{\"match_phrase\":{\"vulnerability.result\":\"unknown\"}},\"$state\":{\"store\":\"appState\"}}],\"datasourceStates\":{\"formBased\":{\"layers\":{\"21c4a9b8-f5ce-418b-9466-605c2742d8d9\":{\"columns\":{\"132c8097-326e-4f5b-81fa-df708221c0ee\":{\"label\":\"event.ingested\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"83ac325a-0162-45d4-b642-33f73351c8d2\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"b57de897-5bb8-42a6-8158-571e3fda028a\":{\"label\":\"Top 3 values of vulnerability.result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"83ac325a-0162-45d4-b642-33f73351c8d2\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"b57de897-5bb8-42a6-8158-571e3fda028a\",\"132c8097-326e-4f5b-81fa-df708221c0ee\",\"83ac325a-0162-45d4-b642-33f73351c8d2\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"A complete history of all vulnerabilities status over time.\",\"enhancements\":{}},\"title\":\"Vulnerability Results Historical Status\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":32,\"w\":48,\"h\":22,\"i\":\"0cc0c389-dc34-4831-ba8e-6f651ee8a793\"},\"panelIndex\":\"0cc0c389-dc34-4831-ba8e-6f651ee8a793\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"5be62502-2bab-4d66-97ff-d9373963c50d\",\"name\":\"indexpattern-datasource-layer-c1cf2b61-d20b-40c8-8a05-678aaa9f2358\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"66252270-26d7-4524-9a63-1885224cb57e\",\"isTransposed\":false,\"alignment\":\"center\",\"summaryRow\":\"sum\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"complimentary\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a6c1db\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#e3bd9d\",\"stop\":60},{\"color\":\"#da8b45\",\"stop\":80}],\"name\":\"complimentary\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"a8438ac2-fb97-4ac8-9f2c-2a0308725c01\",\"isTransposed\":false,\"oneClickFilter\":true},{\"columnId\":\"ebec492d-2edd-46fd-95ee-ca6c191dc2ed\",\"isTransposed\":false},{\"columnId\":\"e0e551be-9366-40fb-80eb-942569b9fdb3\",\"isTransposed\":false,\"alignment\":\"center\",\"oneClickFilter\":true},{\"columnId\":\"1ca90a06-f5e5-46ca-9402-65517773efac\",\"isTransposed\":false},{\"columnId\":\"0bae816d-069c-4b6b-ac1f-220e5c3b3e3c\",\"isTransposed\":false},{\"columnId\":\"3b94ade7-e7f2-4c92-9450-ac63c31f2a59\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7a438fd4-a307-4cc9-85f4-855203fccfc5\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"c1cf2b61-d20b-40c8-8a05-678aaa9f2358\",\"layerType\":\"data\",\"sorting\":{\"columnId\":\"66252270-26d7-4524-9a63-1885224cb57e\",\"direction\":\"desc\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"c1cf2b61-d20b-40c8-8a05-678aaa9f2358\":{\"columns\":{\"66252270-26d7-4524-9a63-1885224cb57e\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"tychon.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.test_result : \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a8438ac2-fb97-4ac8-9f2c-2a0308725c01\":{\"label\":\"CVE ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.id\",\"isBucketed\":true,\"params\":{\"size\":200,\"orderBy\":{\"type\":\"column\",\"columnId\":\"66252270-26d7-4524-9a63-1885224cb57e\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":false},\"customLabel\":true},\"ebec492d-2edd-46fd-95ee-ca6c191dc2ed\":{\"label\":\"Reference\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.reference\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e0e551be-9366-40fb-80eb-942569b9fdb3\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.severity\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1ca90a06-f5e5-46ca-9402-65517773efac\":{\"label\":\"NVD Score\",\"dataType\":\"number\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.score.base\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0bae816d-069c-4b6b-ac1f-220e5c3b3e3c\":{\"label\":\"TItle\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.title\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"3b94ade7-e7f2-4c92-9450-ac63c31f2a59\":{\"label\":\"Due Date\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"vulnerability.due_date\",\"filter\":{\"query\":\"vulnerability.due_date: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"vulnerability.due_date\"},\"customLabel\":true},\"7a438fd4-a307-4cc9-85f4-855203fccfc5\":{\"label\":\"Due Date Reason\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"vulnerability.due_date_reason\",\"isBucketed\":true,\"params\":{\"size\":1,\"orderBy\":{\"type\":\"column\",\"columnId\":\"66252270-26d7-4524-9a63-1885224cb57e\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"a8438ac2-fb97-4ac8-9f2c-2a0308725c01\",\"0bae816d-069c-4b6b-ac1f-220e5c3b3e3c\",\"e0e551be-9366-40fb-80eb-942569b9fdb3\",\"1ca90a06-f5e5-46ca-9402-65517773efac\",\"ebec492d-2edd-46fd-95ee-ca6c191dc2ed\",\"7a438fd4-a307-4cc9-85f4-855203fccfc5\",\"3b94ade7-e7f2-4c92-9450-ac63c31f2a59\",\"66252270-26d7-4524-9a63-1885224cb57e\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"CVE IDs that have been reported by the TYCHON scan engine.\",\"enhancements\":{}},\"title\":\"CVE List\"}]", "refreshInterval": { "pause": true, - "value": 0 + "value": 60000 }, "timeFrom": "now-30d/d", "timeRestore": true, @@ -23,161 +17,120 @@ "version": 1 }, "coreMigrationVersion": "8.8.0", - "migrationVersion": { - "dashboard": "8.5.0" - }, - "created_at": "2023-08-30T12:28:25.488Z", + "created_at": "2023-08-31T18:48:53.917Z", "id": "tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve", - "managed": true, + "managed": false, "references": [ - { - "id": "bb5226cd-c099-46d2-bb71-0257232c7d82", - "name": "679a4e0d-72d6-4080-b8db-fe8c3191e740:indexpattern-datasource-layer-4006531b-9ee8-4f33-9bfc-96670ff0f3b9", - "type": "index-pattern" - }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "373d6d39-77cd-4ee7-9632-27ed5cfad192:indexpattern-datasource-layer-49f26400-cd0d-4287-b4b9-fb1a81d2fcf6", + "name": "c727c528-622b-4fb7-857e-e3bcfe0751fd:indexpattern-datasource-layer-0682870a-1465-4a9d-be3e-c4863b7582ea", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "886b38ad-89f2-4800-ae61-61bcdb4e3b07:indexpattern-datasource-layer-4f65679f-7137-49e2-8a1e-96c834742340", + "name": "cab4478f-def6-426a-9c1d-b960cb9e03e9:indexpattern-datasource-layer-0682870a-1465-4a9d-be3e-c4863b7582ea", "type": "index-pattern" }, { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:indexpattern-datasource-layer-a738cb8e-6646-4501-9007-03b7d6cf4815", + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "c34200e8-bd83-4a77-9b2f-dc4c87bc1ad9:indexpattern-datasource-layer-017cbeff-136b-4bcd-a68f-1d9bb899aa4b", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "750876f2-eaee-4c6f-89bd-603c2da274e1:684eca00-cba8-4853-a931-4e9d535efaec", + "name": "d4f17392-b10b-4343-82ea-a7e374333327:indexpattern-datasource-layer-2aca319d-8aef-4230-afa2-3fc928a03f8d", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "name": "d4f17392-b10b-4343-82ea-a7e374333327:4e2f597d-d225-4927-8a8f-a9c968bd4a21", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:044d8cc9-a39b-4007-94e6-d34fd9dc0970", + "name": "5cb629a9-cd1d-4c34-80d0-bd4f89f8c7a3:indexpattern-datasource-layer-2aca319d-8aef-4230-afa2-3fc928a03f8d", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "27499756-536c-4e62-b081-addbffdff28d:27d89493-bc6a-4979-a35a-59a5983c3d4c", + "name": "5cb629a9-cd1d-4c34-80d0-bd4f89f8c7a3:f9b1376a-2b15-459b-83e8-808684076ee2", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:indexpattern-datasource-layer-615410f0-96f3-43e9-9315-2a53fcaa5fdf", + "name": "9d7c1a54-bcc4-4ee3-9fb0-bcc83768d8bb:indexpattern-datasource-layer-10dc586e-9120-457f-bd25-337e235c0ede", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "e6b5c9bd-b726-4be2-93ab-52e7125e3db1:28b051dd-fb8d-449a-b21a-2d70308979bb", + "name": "43687602-22dc-4c1c-8eaa-b73bf8684e2b:indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "5dc1ffd0-8ed6-4d64-975b-7522c194ea8c:indexpattern-datasource-layer-325646e5-58ab-4512-851c-5171a5822fa8", + "name": "8e5d38ea-9796-49e2-bbb7-02db91569c4b:indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "c83f05f4-47e2-4b2d-a359-c8ab8ac09e88:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "name": "69a84b6a-5fd8-47b0-ac56-4b36579689c3:indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ab52ed71-894c-466e-b53f-7f0dec7852be:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "name": "e77342b9-6b1d-4c31-ae74-65550418decb:indexpattern-datasource-layer-f8c69b31-1e26-48da-bfce-173a232da856", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "35429b34-65a5-4af0-99b6-b9980cdc13ba:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "name": "9d985147-542e-444e-95de-86b72e141def:indexpattern-datasource-layer-10dc586e-9120-457f-bd25-337e235c0ede", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "ec9edb3d-0069-489a-94a7-c7ee626b9f76:indexpattern-datasource-layer-1c5f04fa-1f1e-4252-908b-77a5c75bc993", + "name": "9d985147-542e-444e-95de-86b72e141def:8da78282-bb0e-4b32-b6c4-5b6fcb752b4d", "type": "index-pattern" }, { "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "f4148e30-8031-419e-aafc-375334eb93bb:indexpattern-datasource-layer-f2abbf0c-776c-41e1-a7ab-cd8c207389ed", + "name": "fbd0fbab-9136-49c6-9b75-46bd3f8d987b:indexpattern-datasource-layer-2b0af3cf-2577-4225-b801-4dbc1c6d10c3", "type": "index-pattern" }, { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "fa0504a4-ba9e-4429-b706-e429d42828a4:indexpattern-datasource-layer-d9b506eb-03f8-4dd4-a72a-3cf98e84ada5", - "type": "index-pattern" + "id": "tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve", + "name": "fbd0fbab-9136-49c6-9b75-46bd3f8d987b:drilldown:DASHBOARD_TO_DASHBOARD_DRILLDOWN:96e39190-5ea2-4199-993b-6e2657b8299b:dashboardId", + "type": "dashboard" }, { "id": "5be62502-2bab-4d66-97ff-d9373963c50d", - "name": "54623b32-425a-4c80-8f8b-e2a3401aa06b:indexpattern-datasource-layer-38d3d7aa-9059-4c73-b69c-d6d541808d29", - "type": "index-pattern" - }, - { - "id": "df491fbb-3f09-4ab0-995a-c2c549a9bc21", - "name": "7a66b950-c869-4bdd-afb7-794cfcc5225b:indexpattern-datasource-layer-6597e88e-74e8-47dd-a41e-b0856b99a416", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "26748b80-0759-4316-b554-d2309ea63ce6:indexpattern-datasource-layer-68551b69-50f5-4d7e-a51b-98dead9be7c2", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_a8ba17fc-ba2f-4329-95f5-e4d645c5ae59:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_1b36863c-a2c8-4696-b534-12cebeca49d1:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_67760ce6-5bda-4c39-8960-45439ff4d45b:optionsListDataView", + "name": "1e383218-85c2-48c6-a653-25b2f0c0d869:indexpattern-datasource-layer-21c4a9b8-f5ce-418b-9466-605c2742d8d9", "type": "index-pattern" }, { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_9c746f36-33ae-4b53-bb32-7153abb17ba4:optionsListDataView", + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "1e383218-85c2-48c6-a653-25b2f0c0d869:d50ba03c-dcd0-469e-a4c2-1a02d99263d8", "type": "index-pattern" }, { - "id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "name": "controlGroup_db910041-b09f-4b02-b3fe-70c3db05ff62:optionsListDataView", + "id": "5be62502-2bab-4d66-97ff-d9373963c50d", + "name": "0cc0c389-dc34-4831-ba8e-6f651ee8a793:indexpattern-datasource-layer-c1cf2b61-d20b-40c8-8a05-678aaa9f2358", "type": "index-pattern" }, { - "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", - "name": "tag-ref-9c222660-1100-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", - "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", + "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "name": "tag-ref-tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", "type": "tag" }, { - "id": "tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "name": "tag-ref-5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "id": "tychon-9c222660-1100-11ee-af86-538da1394f27", + "name": "tag-ref-tychon-9c222660-1100-11ee-af86-538da1394f27", "type": "tag" } ], "type": "dashboard", - "typeMigrationVersion": "8.7.0", - "updated_at": "2023-08-30T12:28:25.488Z", - "version": "WzkxNiwyXQ==" + "migrationVersion": { + "dashboard": "8.7.0" + }, + "updated_at": "2023-08-31T18:48:53.917Z", + "version": "WzQzODksNF0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json index 39593f0b7cf..7c65218eeef 100644 --- a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json @@ -11,7 +11,7 @@ "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"02c59767-547c-4cda-bba5-77ad8a00a068\"},\"panelIndex\":\"02c59767-547c-4cda-bba5-77ad8a00a068\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_02c59767-547c-4cda-bba5-77ad8a00a068\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":10,\"i\":\"cefa3c11-9742-4955-9569-40a38489d62a\"},\"panelIndex\":\"cefa3c11-9742-4955-9569-40a38489d62a\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protections\\nTYCHON monitors the endpoint for installed endpoint protection software. TYCHON integrates with EPP vendors to report the status of each specific vendor and its features to ensure all the proper protections are in place.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":5,\"i\":\"12e45058-431b-4504-a6ea-b37cdb08043d\"},\"panelIndex\":\"12e45058-431b-4504-a6ea-b37cdb08043d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588\"}],\"state\":{\"visualization\":{\"layerId\":\"9aeae475-3f70-4b1f-8e37-3d09bb018588\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"alignment\":\"center\"},{\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9aeae475-3f70-4b1f-8e37-3d09bb018588\":{\"columns\":{\"de290752-f19c-48d6-88b4-bbacb0a643ba\":{\"label\":\"Elastic Defender Behavior Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.behavior_protection\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1a761e73-7d11-44ba-b41d-12792debe4cc\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\":{\"label\":\"Elastic Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.malware\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b4ec867-8b7e-4d41-8b61-5615715413eb\":{\"label\":\"Elastic Defender Memory Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.memory_protection\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"1a761e73-7d11-44ba-b41d-12792debe4cc\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Elastic Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":5,\"i\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\"},\"panelIndex\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf\"}],\"state\":{\"visualization\":{\"layerId\":\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"alignment\":\"center\"},{\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\",\"hidden\":true},{\"columnId\":\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"005add0c-a692-4d2d-9758-6beb27289076\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\":{\"columns\":{\"fdfec985-df5b-4716-b4b7-fc583b364c03\":{\"label\":\"TPM Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.present\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6bca86d-5a9b-4e18-902b-a573c57e734f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\":{\"label\":\"TPM Digest\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.digest.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfc72b21-55c2-4913-bcff-15362a0f8500\":{\"label\":\"TPM Compliant\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.compliant\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"005add0c-a692-4d2d-9758-6beb27289076\":{\"label\":\"TPM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"005add0c-a692-4d2d-9758-6beb27289076\",\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Trusted Platform Module Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":5,\"i\":\"21705463-1697-44dc-9a09-62df26148332\"},\"panelIndex\":\"21705463-1697-44dc-9a09-62df26148332\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\",\"isTransposed\":false,\"colorMode\":\"none\",\"alignment\":\"center\",\"hidden\":true},{\"columnId\":\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5560824c-b749-475f-8423-603ee0107b9e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\":{\"columns\":{\"dd967aec-5d3a-4e98-b8bb-1861bff07184\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d9295119-6956-41e0-8b42-ac2e47a370de\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33408527-4b67-4ab8-985a-5f4b9bcb0618\":{\"label\":\"Trellix PA Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\":{\"label\":\"Trellix DLP Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5560824c-b749-475f-8423-603ee0107b9e\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"5560824c-b749-475f-8423-603ee0107b9e\",\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":48,\"h\":5,\"i\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\"},\"panelIndex\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"0ac16482-70d8-47af-9017-43495072b88a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"04332c65-6c71-4235-8823-49823d7deda5\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"04332c65-6c71-4235-8823-49823d7deda5\":{\"columns\":{\"dbfeb47c-32b6-474c-8677-dae820f07b2d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"512f9032-b127-4739-b5bf-3eb959638ff5\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cf12a36e-89b5-4367-b35f-9afb91f70d09\":{\"label\":\"Trellix DLP Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c05bb470-b273-4a26-bf5d-a81b3c58767f\":{\"label\":\"Trellix PA Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\":{\"label\":\"Trellix RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0ac16482-70d8-47af-9017-43495072b88a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"0ac16482-70d8-47af-9017-43495072b88a\",\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":5,\"i\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\"},\"panelIndex\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"29924658-9aa3-42ea-bd98-79e173958e42\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\":{\"columns\":{\"eb149617-f610-4378-ba74-d639147b5601\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"29924658-9aa3-42ea-bd98-79e173958e42\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33c42b63-ee69-433c-95af-9d7d01e4f845\":{\"label\":\"Windows Defender Anti-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\":{\"label\":\"Windows Defender Anti-Virus \",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\":{\"label\":\"Windows Defender Real-Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d88f0d3a-2942-49fc-bd63-a971fa819412\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\":{\"label\":\"Windows Defender On-Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"29924658-9aa3-42ea-bd98-79e173958e42\",\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"eb149617-f610-4378-ba74-d639147b5601\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":5,\"i\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\"},\"panelIndex\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c4d70098-785e-4a47-814e-9e380659c08a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"6cde8617-3e7c-4778-a329-d928e36d7275\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6cde8617-3e7c-4778-a329-d928e36d7275\":{\"columns\":{\"beb6fb15-943b-4309-90f7-f4dce874a09b\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"2ecb665e-6607-46bb-b133-227e2a1f86e5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\":{\"label\":\"Windows Defender Anit-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\":{\"label\":\"Windows Defender AV\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c4d70098-785e-4a47-814e-9e380659c08a\":{\"label\":\"Trellix ENS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.siganture_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"c4d70098-785e-4a47-814e-9e380659c08a\",\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Endpoint Protection Signature Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":33,\"w\":48,\"h\":5,\"i\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\"},\"panelIndex\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\":{\"columns\":{\"407f21d2-19c4-4989-af6d-6d1874ed4adb\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b16cb63b-c175-474d-92c1-8a4259f824a6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\":{\"label\":\"Credential Guard Running\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.running\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"485d3df1-2842-46fa-8709-b9e1c226c7fa\":{\"label\":\"Device Guard Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4001a32-8acc-4546-ad61-096ef4ada2da\":{\"label\":\"Secure Boot Available\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.secureboot.available\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"20655296-06de-4a2f-8c5c-d3f11575f76b\":{\"label\":\"Usermode Integrity Policy Enforcement\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.usermodecodeintegrity.policyenforcement\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"93d9fdc5-1776-4120-b653-35f6ade218ff\":{\"label\":\"Virtualization Based Security\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.virtualizationbasedsecurity.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d17a739-c24f-47da-8215-5f85d7fab0eb\":{\"label\":\"Secure Launch Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.systemguardsecurelaunch.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\":{\"label\":\"UFI Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.ufi.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"b16cb63b-c175-474d-92c1-8a4259f824a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Security Settings\"}]", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"02c59767-547c-4cda-bba5-77ad8a00a068\"},\"panelIndex\":\"02c59767-547c-4cda-bba5-77ad8a00a068\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":true},\"panelRefName\":\"panel_02c59767-547c-4cda-bba5-77ad8a00a068\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":10,\"i\":\"cefa3c11-9742-4955-9569-40a38489d62a\"},\"panelIndex\":\"cefa3c11-9742-4955-9569-40a38489d62a\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Endpoint Protections\\nTYCHON monitors the endpoint for installed endpoint protection software. TYCHON integrates with EPP vendors to report the status of each specific vendor and its features to ensure all the proper protections are in place.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":5,\"i\":\"12e45058-431b-4504-a6ea-b37cdb08043d\"},\"panelIndex\":\"12e45058-431b-4504-a6ea-b37cdb08043d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-9aeae475-3f70-4b1f-8e37-3d09bb018588\"}],\"state\":{\"visualization\":{\"layerId\":\"9aeae475-3f70-4b1f-8e37-3d09bb018588\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"alignment\":\"center\"},{\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"9aeae475-3f70-4b1f-8e37-3d09bb018588\":{\"columns\":{\"de290752-f19c-48d6-88b4-bbacb0a643ba\":{\"label\":\"Elastic Defender Behavior Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.behavior_protection\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"1a761e73-7d11-44ba-b41d-12792debe4cc\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\":{\"label\":\"Elastic Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.malware\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6b4ec867-8b7e-4d41-8b61-5615715413eb\":{\"label\":\"Elastic Defender Memory Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.memory_protection\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"1a761e73-7d11-44ba-b41d-12792debe4cc\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"de290752-f19c-48d6-88b4-bbacb0a643ba\",\"7f900bc4-4ed6-456b-9e5f-b77e10a1109c\",\"6b4ec867-8b7e-4d41-8b61-5615715413eb\",\"1a761e73-7d11-44ba-b41d-12792debe4cc\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Elastic Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":8,\"w\":39,\"h\":5,\"i\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\"},\"panelIndex\":\"ea31c98b-3c46-4f95-a986-c4693b92b89e\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-5387a34a-b7b2-4177-9083-335cf4e9a3bf\"}],\"state\":{\"visualization\":{\"layerId\":\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\",\"layerType\":\"data\",\"columns\":[{\"columnId\":\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"alignment\":\"center\"},{\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\",\"hidden\":true},{\"columnId\":\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"005add0c-a692-4d2d-9758-6beb27289076\",\"isTransposed\":false,\"alignment\":\"center\"}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"5387a34a-b7b2-4177-9083-335cf4e9a3bf\":{\"columns\":{\"fdfec985-df5b-4716-b4b7-fc583b364c03\":{\"label\":\"TPM Present\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.present\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6bca86d-5a9b-4e18-902b-a573c57e734f\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\":{\"label\":\"TPM Digest\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.digest.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"bfc72b21-55c2-4913-bcff-15362a0f8500\":{\"label\":\"TPM Compliant\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.compliant\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"005add0c-a692-4d2d-9758-6beb27289076\":{\"label\":\"TPM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"host.tpm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"fdfec985-df5b-4716-b4b7-fc583b364c03\",\"3e2f3d28-d02f-4e67-954e-ca5dbf0f5cec\",\"bfc72b21-55c2-4913-bcff-15362a0f8500\",\"005add0c-a692-4d2d-9758-6beb27289076\",\"f6bca86d-5a9b-4e18-902b-a573c57e734f\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Trusted Platform Module Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":13,\"w\":48,\"h\":5,\"i\":\"21705463-1697-44dc-9a09-62df26148332\"},\"panelIndex\":\"21705463-1697-44dc-9a09-62df26148332\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-75c713fc-0fdd-431c-8bc6-ecfb247c176e\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\",\"isTransposed\":false,\"colorMode\":\"none\",\"alignment\":\"center\",\"hidden\":true},{\"columnId\":\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5560824c-b749-475f-8423-603ee0107b9e\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"75c713fc-0fdd-431c-8bc6-ecfb247c176e\":{\"columns\":{\"dd967aec-5d3a-4e98-b8bb-1861bff07184\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"d9295119-6956-41e0-8b42-ac2e47a370de\":{\"label\":\"Elastic Agent Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\":{\"label\":\"Trellix ENS Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33408527-4b67-4ab8-985a-5f4b9bcb0618\":{\"label\":\"Trellix PA Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\":{\"label\":\"Trellix DLP Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\":{\"label\":\"ACCM Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\":{\"label\":\"RSD Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5560824c-b749-475f-8423-603ee0107b9e\":{\"label\":\"Elastic Endpoint Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"d9295119-6956-41e0-8b42-ac2e47a370de\",\"5560824c-b749-475f-8423-603ee0107b9e\",\"e4e1c126-d5c4-4037-84c4-8eaf12358e54\",\"33408527-4b67-4ab8-985a-5f4b9bcb0618\",\"f01de7cd-f7e8-462d-baa9-896b85f6c3eb\",\"5133c9fb-f2af-4ded-ace4-bf47124e75e3\",\"6956a5b0-f8ac-48c5-befe-9e3b671f2639\",\"dd967aec-5d3a-4e98-b8bb-1861bff07184\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":48,\"h\":5,\"i\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\"},\"panelIndex\":\"a8c6851c-3730-4c20-b9e0-43af84a176d0\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-04332c65-6c71-4235-8823-49823d7deda5\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"0ac16482-70d8-47af-9017-43495072b88a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"04332c65-6c71-4235-8823-49823d7deda5\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"04332c65-6c71-4235-8823-49823d7deda5\":{\"columns\":{\"dbfeb47c-32b6-474c-8677-dae820f07b2d\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"512f9032-b127-4739-b5bf-3eb959638ff5\":{\"label\":\"Elastic Agent Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.agent.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\":{\"label\":\"Elastic Endpoint Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"elastic.service.endpoint.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\":{\"label\":\"Trellix ENS Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"cf12a36e-89b5-4367-b35f-9afb91f70d09\":{\"label\":\"Trellix DLP Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.dlp.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c05bb470-b273-4a26-bf5d-a81b3c58767f\":{\"label\":\"Trellix PA Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.pa.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\":{\"label\":\"Trellix RSD Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.rsd.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"0ac16482-70d8-47af-9017-43495072b88a\":{\"label\":\"ACCM Status\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.accm.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"512f9032-b127-4739-b5bf-3eb959638ff5\",\"f4d3274b-0ee5-442f-8eeb-b41e5fa7f953\",\"91e23a0c-ed3b-4ad7-bc5e-53f4c6fab562\",\"c05bb470-b273-4a26-bf5d-a81b3c58767f\",\"cf12a36e-89b5-4367-b35f-9afb91f70d09\",\"76f77c25-4df6-4e7a-94ec-a88f4e9c8677\",\"0ac16482-70d8-47af-9017-43495072b88a\",\"dbfeb47c-32b6-474c-8677-dae820f07b2d\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Third-Party Protection Software Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":5,\"i\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\"},\"panelIndex\":\"52a76f9f-e799-4d4a-b9e4-eae7014038e4\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-ef2f26c8-3d23-4b27-b103-3f0ad7394111\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"29924658-9aa3-42ea-bd98-79e173958e42\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"ef2f26c8-3d23-4b27-b103-3f0ad7394111\":{\"columns\":{\"eb149617-f610-4378-ba74-d639147b5601\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"29924658-9aa3-42ea-bd98-79e173958e42\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.status\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"33c42b63-ee69-433c-95af-9d7d01e4f845\":{\"label\":\"Windows Defender Anti-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\":{\"label\":\"Windows Defender Anti-Virus \",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\":{\"label\":\"Windows Defender Real-Time Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.real_time_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"d88f0d3a-2942-49fc-bd63-a971fa819412\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\":{\"label\":\"Windows Defender On-Access Protection\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.on_access_protection.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"eb149617-f610-4378-ba74-d639147b5601\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"29924658-9aa3-42ea-bd98-79e173958e42\",\"33c42b63-ee69-433c-95af-9d7d01e4f845\",\"a052e49e-e5ef-4c10-97df-d5c3f372f8ac\",\"221eaf8f-2283-4ee5-b4b7-8b3236f6d621\",\"d88f0d3a-2942-49fc-bd63-a971fa819412\",\"06750c7f-0d30-41c5-a4b7-cb1d59756b91\",\"eb149617-f610-4378-ba74-d639147b5601\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Defender Feature Status\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":5,\"i\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\"},\"panelIndex\":\"8ad0f3f2-f823-482a-94f5-438a5f4e63ad\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"6c3bf5e0-0feb-4113-a417-ac5e69cd6e00\",\"name\":\"indexpattern-datasource-layer-6cde8617-3e7c-4778-a329-d928e36d7275\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"c4d70098-785e-4a47-814e-9e380659c08a\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"6cde8617-3e7c-4778-a329-d928e36d7275\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6cde8617-3e7c-4778-a329-d928e36d7275\":{\"columns\":{\"beb6fb15-943b-4309-90f7-f4dce874a09b\":{\"label\":\"Windows Defender Anti-Malware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antimalware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"secondaryFields\":[]},\"customLabel\":true},\"2ecb665e-6607-46bb-b133-227e2a1f86e5\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\":{\"label\":\"Windows Defender Anit-Spyware\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antispyware.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\":{\"label\":\"Windows Defender AV\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.antivirus.full_scan.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\":{\"label\":\"Windows Defender NIS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"windows_defender.service.nis.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"c4d70098-785e-4a47-814e-9e380659c08a\":{\"label\":\"Trellix ENS\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"trellix.service.ens.signature_version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"c4d70098-785e-4a47-814e-9e380659c08a\",\"beb6fb15-943b-4309-90f7-f4dce874a09b\",\"f99c5f5c-ed39-4708-a69a-8cb9dafd18c0\",\"7c6804a4-01e8-4d63-abeb-403c9080dfa2\",\"f6f3cda8-645f-4d93-9b56-259ea57e96ba\",\"2ecb665e-6607-46bb-b133-227e2a1f86e5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Endpoint Protection Signature Versions\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":33,\"w\":48,\"h\":5,\"i\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\"},\"panelIndex\":\"165a86cb-4d74-46e5-b01a-c8aa699bb62d\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"9267bb1b-cf22-4417-8cfb-6606848140a7\",\"name\":\"indexpattern-datasource-layer-2c3e9bfb-f184-4fcc-8cf0-289375d17465\"}],\"state\":{\"visualization\":{\"columns\":[{\"columnId\":\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\",\"isTransposed\":false,\"hidden\":true},{\"columnId\":\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"2c3e9bfb-f184-4fcc-8cf0-289375d17465\":{\"columns\":{\"407f21d2-19c4-4989-af6d-6d1874ed4adb\":{\"label\":\"Credential Guard Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.enabled\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"b16cb63b-c175-474d-92c1-8a4259f824a6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\":{\"label\":\"Credential Guard Running\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.credentialguard.running\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"485d3df1-2842-46fa-8709-b9e1c226c7fa\":{\"label\":\"Device Guard Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"e4001a32-8acc-4546-ad61-096ef4ada2da\":{\"label\":\"Secure Boot Available\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.secureboot.available\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"20655296-06de-4a2f-8c5c-d3f11575f76b\":{\"label\":\"Usermode Integrity Policy Enforcement\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.usermodecodeintegrity.policyenforcement\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"93d9fdc5-1776-4120-b653-35f6ade218ff\":{\"label\":\"Virtualization Based Security\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.virtualizationbasedsecurity.status\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"6d17a739-c24f-47da-8215-5f85d7fab0eb\":{\"label\":\"Secure Launch Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.deviceguard.systemguardsecurelaunch.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\":{\"label\":\"UFI Enabled\",\"dataType\":\"boolean\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"event.ufi.enabled\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"b16cb63b-c175-474d-92c1-8a4259f824a6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"407f21d2-19c4-4989-af6d-6d1874ed4adb\",\"dfcfe55f-7ed2-414e-a58c-5ce22504f040\",\"485d3df1-2842-46fa-8709-b9e1c226c7fa\",\"e4001a32-8acc-4546-ad61-096ef4ada2da\",\"20655296-06de-4a2f-8c5c-d3f11575f76b\",\"93d9fdc5-1776-4120-b653-35f6ade218ff\",\"6d17a739-c24f-47da-8215-5f85d7fab0eb\",\"5aaf01cb-a91c-4863-b03b-7df01d5b0139\",\"b16cb63b-c175-474d-92c1-8a4259f824a6\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Windows Security Settings\"}]", "refreshInterval": { "pause": true, "value": 0 diff --git a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json index 5b4634ee0dd..1b13360f411 100644 --- a/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json +++ b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json @@ -4,14 +4,14 @@ "chainingSystem": "HIERARCHICAL", "controlStyle": "oneLine", "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" + "panelsJSON": "{\"accc2a18-0c16-4d33-b8df-09233a36a580\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"id\":\"accc2a18-0c16-4d33-b8df-09233a36a580\",\"enhancements\":{}}}}" }, "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser - Benchmark Results view displays all Benchmark SCAP scan results for the OS and Software installed.", "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" }, "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", - "panelsJSON": "[{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.8.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.8.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":49,\"w\":48,\"h\":10,\"i\":\"d2e11c76-66a2-47d6-ab42-4b7efec8751f\"},\"panelIndex\":\"d2e11c76-66a2-47d6-ab42-4b7efec8751f\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"7d972a32-d117-4963-a7bf-58fc65fb1ee8\",\"name\":\"indexpattern-datasource-layer-aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"area\",\"layers\":[{\"layerId\":\"aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\",\"accessors\":[\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"],\"position\":\"top\",\"seriesType\":\"area\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\",\"splitAccessor\":\"82915713-302b-4052-8b2a-7bb27bca3f46\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\"}}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"aeaf9e07-b4f2-428a-a7c5-a9235f5471b7\":{\"columns\":{\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\":{\"label\":\"Time\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"event.ingested\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false},\"customLabel\":true},\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\":{\"label\":\"Results\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"82915713-302b-4052-8b2a-7bb27bca3f46\":{\"label\":\"Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true}},\"columnOrder\":[\"82915713-302b-4052-8b2a-7bb27bca3f46\",\"68ab0aa6-2433-4470-85d7-728c4b69d1b7\",\"933efbe9-e466-4dd7-96bf-1b0fcb3805a5\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"description\":\"TYCHON records every time a STIG is checked, this is the number of passes and fails over time.\",\"enhancements\":{}},\"title\":\"Check History\"}]", + "panelsJSON": "[{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":3,\"i\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\"},\"panelIndex\":\"8f6fafd2-91a2-424b-a877-284568fd3f98\",\"embeddableConfig\":{\"hidePanelTitles\":true,\"enhancements\":{}},\"panelRefName\":\"panel_8f6fafd2-91a2-424b-a877-284568fd3f98\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":9,\"h\":6,\"i\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\"},\"panelIndex\":\"363067aa-6ee2-41c7-b95d-0e61e6c28537\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"type\":\"palette\",\"name\":\"status\",\"params\":{\"name\":\"status\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":0,\"rangeMax\":100,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#209280\",\"stop\":33.33},{\"color\":\"#d6bf57\",\"stop\":66.66},{\"color\":\"#cc5642\",\"stop\":100}],\"steps\":3,\"colorStops\":[],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Failed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"fail\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}}},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":3,\"w\":39,\"h\":16,\"i\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\"},\"panelIndex\":\"6eda45c7-cb35-4f4a-8d66-4206ded45c8c\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"37f5da22-553d-4f51-8e0a-25ba01358872\"},{\"isTransposed\":false,\"columnId\":\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"alignment\":\"center\"},{\"isTransposed\":false,\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"alignment\":\"center\"},{\"columnId\":\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}},{\"columnId\":\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"isTransposed\":false,\"alignment\":\"center\",\"colorMode\":\"cell\",\"palette\":{\"type\":\"palette\",\"name\":\"temperature\",\"params\":{\"stops\":[{\"color\":\"#6092c0\",\"stop\":0},{\"color\":\"#a8bfda\",\"stop\":20},{\"color\":\"#ebeff5\",\"stop\":40},{\"color\":\"#ecb385\",\"stop\":60},{\"color\":\"#e7664c\",\"stop\":80}],\"name\":\"temperature\",\"continuity\":\"above\",\"reverse\":false,\"rangeMin\":0,\"rangeMax\":null}}}],\"layerId\":\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"3a5ee27d-64e5-4145-91f5-5805379b4f2f\":{\"columns\":{\"37f5da22-553d-4f51-8e0a-25ba01358872\":{\"label\":\"Benchmark Name\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.name\",\"isBucketed\":true,\"params\":{\"size\":15,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"a648975d-7369-4b4b-bf40-70dabb3571c0\":{\"label\":\"Version\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"benchmark.version\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"8991452e-70b0-4dee-a3bb-f840b70af1fe\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"8991452e-70b0-4dee-a3bb-f840b70af1fe\":{\"label\":\"Total Checks\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\":{\"label\":\"Total Failures\",\"dataType\":\"number\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"rule.id\",\"isBucketed\":false,\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result : \\\"fail\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\":{\"label\":\"Part of count(kql='rule.result : \\\"fail\\\" ') * 10\",\"dataType\":\"number\",\"operationType\":\"math\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"tinymathAst\":{\"type\":\"function\",\"name\":\"multiply\",\"args\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",10],\"location\":{\"min\":0,\"max\":39},\"text\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\"}},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\"],\"customLabel\":true},\"43067dd3-665f-4543-b21e-3b5f4cc96c97\":{\"label\":\"Total Score\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='rule.result : \\\"fail\\\" ') * 10\",\"isFormulaBroken\":false},\"references\":[\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"customLabel\":true}},\"columnOrder\":[\"37f5da22-553d-4f51-8e0a-25ba01358872\",\"a648975d-7369-4b4b-bf40-70dabb3571c0\",\"8991452e-70b0-4dee-a3bb-f840b70af1fe\",\"38dd2eaa-ba46-473b-9ecf-d55a40ef9ed3\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X0\",\"43067dd3-665f-4543-b21e-3b5f4cc96c97X1\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Benchmark Results\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":18,\"w\":9,\"h\":6,\"i\":\"2a770935-c253-4473-9b7c-47353bb53b47\"},\"panelIndex\":\"2a770935-c253-4473-9b7c-47353bb53b47\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"name\":\"indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"layerId\":\"6fff9691-3ddd-4388-8285-de60ad5d992f\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"percent\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#E7664C\",\"stop\":33.33},{\"color\":\"#DA8B45\",\"stop\":66.66},{\"color\":\"#6092C0\",\"stop\":100}],\"colorStops\":[{\"color\":\"#E7664C\",\"stop\":null},{\"color\":\"#DA8B45\",\"stop\":33.33},{\"color\":\"#6092C0\",\"stop\":66.66}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"maxAccessor\":\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\",\"showBar\":true,\"progressDirection\":\"horizontal\",\"subtitle\":\"Passed tests to all tests.\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"6fff9691-3ddd-4388-8285-de60ad5d992f\":{\"columns\":{\"71671d69-d31c-4a61-9ee3-68bacec8d16f\":{\"label\":\"Total Passes\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"rule.result: \\\"pass\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true},\"filter\":{\"query\":\"rule.result: \\\"fail\\\" or rule.result: \\\"pass\\\"\",\"language\":\"kuery\"}}},\"columnOrder\":[\"71671d69-d31c-4a61-9ee3-68bacec8d16f\",\"a2a4b1f7-a375-41c3-8b87-261df67e20c0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":true,\"enhancements\":{}},\"title\":\"\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":24,\"w\":9,\"h\":12,\"i\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\"},\"panelIndex\":\"f96a0653-055c-46d2-9dfd-f44631a1428b\",\"embeddableConfig\":{\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Checks by Results and Severity\",\"panelRefName\":\"panel_f96a0653-055c-46d2-9dfd-f44631a1428b\"},{\"version\":\"8.6.2\",\"type\":\"lens\",\"gridData\":{\"x\":9,\"y\":19,\"w\":39,\"h\":30,\"i\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\"},\"panelIndex\":\"e9ebb74e-da8e-40f8-b8a5-b47558d28d04\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsDatatable\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a\",\"name\":\"indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011\"}],\"state\":{\"visualization\":{\"columns\":[{\"isTransposed\":false,\"columnId\":\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\"},{\"isTransposed\":false,\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"hidden\":true},{\"columnId\":\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"isTransposed\":false,\"alignment\":\"center\"},{\"columnId\":\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"isTransposed\":false},{\"columnId\":\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"isTransposed\":false},{\"columnId\":\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\",\"isTransposed\":false,\"alignment\":\"center\"}],\"layerId\":\"684ae460-2769-47f6-b1e3-442ea5978011\",\"layerType\":\"data\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"684ae460-2769-47f6-b1e3-442ea5978011\":{\"columns\":{\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\":{\"label\":\"Title\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.title\",\"isBucketed\":true,\"params\":{\"size\":100,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"params\":{\"emptyAsNull\":true}},\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\":{\"label\":\"Finding ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.finding_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"9190595b-2b89-47ab-bb49-62819cd2e3a5\":{\"label\":\"Severity\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.severity\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\":{\"label\":\"Test Result\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.result\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\":{\"label\":\"Rule ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"ed8182ed-6249-449f-844f-138d115fc1d6\":{\"label\":\"STIG ID\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"rule.stig_id\",\"isBucketed\":true,\"params\":{\"size\":3,\"orderBy\":{\"type\":\"column\",\"columnId\":\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":true},\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\":{\"label\":\"Last Reported\",\"dataType\":\"date\",\"operationType\":\"last_value\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"@timestamp\",\"filter\":{\"query\":\"@timestamp: *\",\"language\":\"kuery\"},\"params\":{\"sortField\":\"@timestamp\"},\"customLabel\":true}},\"columnOrder\":[\"a19d4424-845d-4c07-bd6f-c90128a0ff8f\",\"2bfceb96-1e89-4a1f-83f9-cbb4bc2d0ae4\",\"fbd00864-4cc9-41ac-9f8d-20265f9601f8\",\"ed8182ed-6249-449f-844f-138d115fc1d6\",\"9190595b-2b89-47ab-bb49-62819cd2e3a5\",\"eaef3af5-13f3-4936-baf5-5f1dd42bb36c\",\"f06f16d7-6954-48fd-9c3d-cbf7a7c8ccc6\",\"f25bbb8d-e09e-4a7a-9979-f6ca304fbcd2\"],\"incompleteColumns\":{},\"sampling\":1}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Rule Results\"},{\"version\":\"8.6.2\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":3,\"w\":9,\"h\":9,\"i\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\"},\"panelIndex\":\"8a98dfe4-7bf6-43b7-a050-ad6bc362a79e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Benchmark Results \\nTYCHON scans endpoints for weaknesses in the Operating System and Software to help you meet regulatory compliance and secure your attack surface. TYCHON uses SCAP (Security Content Automation Protocol) to perform checks and read results.\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{}}}]", "refreshInterval": { "pause": true, "value": 0 @@ -22,24 +22,23 @@ "title": "[TYCHON] Endpoint Browser - Benchmark Results", "version": 1 }, - "coreMigrationVersion": "8.8.0", + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T20:38:45.823Z", + "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", "migrationVersion": { - "dashboard": "8.5.0" + "dashboard": "8.6.0" }, - "created_at": "2023-08-30T20:53:59.597Z", - "id": "tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig", - "managed": true, "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, { "id": "tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", "name": "8f6fafd2-91a2-424b-a877-284568fd3f98:panel_8f6fafd2-91a2-424b-a877-284568fd3f98", "type": "visualization" }, - { - "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", - "type": "index-pattern" - }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", "name": "363067aa-6ee2-41c7-b95d-0e61e6c28537:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", @@ -47,22 +46,22 @@ }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", + "name": "6eda45c7-cb35-4f4a-8d66-4206ded45c8c:indexpattern-datasource-layer-3a5ee27d-64e5-4145-91f5-5805379b4f2f", "type": "index-pattern" }, { "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", + "name": "2a770935-c253-4473-9b7c-47353bb53b47:indexpattern-datasource-layer-6fff9691-3ddd-4388-8285-de60ad5d992f", "type": "index-pattern" }, { - "id": "837878a0-c3cb-11eb-8956-0b1a70e695fd", + "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", "name": "f96a0653-055c-46d2-9dfd-f44631a1428b:panel_f96a0653-055c-46d2-9dfd-f44631a1428b", "type": "visualization" }, { - "id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", - "name": "d2e11c76-66a2-47d6-ab42-4b7efec8751f:indexpattern-datasource-layer-aeaf9e07-b4f2-428a-a7c5-a9235f5471b7", + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "e9ebb74e-da8e-40f8-b8a5-b47558d28d04:indexpattern-datasource-layer-684ae460-2769-47f6-b1e3-442ea5978011", "type": "index-pattern" }, { @@ -75,11 +74,6 @@ "name": "tag-ref-a3922360-3de6-11ee-9610-15dee918f31a", "type": "tag" }, - { - "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - }, { "id": "tychon-10af3800-10f3-11ee-af86-538da1394f27", "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", @@ -94,10 +88,14 @@ "id": "tychon-39b55820-10f2-11ee-af86-538da1394f27", "name": "tag-ref-39b55820-10f2-11ee-af86-538da1394f27", "type": "tag" + }, + { + "id": "tychon-e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" } ], "type": "dashboard", - "typeMigrationVersion": "8.7.0", - "updated_at": "2023-08-30T20:53:59.597Z", - "version": "WzIwODcsNF0=" + "updated_at": "2023-08-23T20:38:45.823Z", + "version": "WzgyMDAyMiwyMl0=" } \ No newline at end of file diff --git a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json index 57f0521e883..d1d488c2e4b 100644 --- a/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json +++ b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json @@ -7,7 +7,7 @@ "runtimeFieldMap": "{}", "sourceFilters": "[]", "timeFieldName": "@timestamp", - "title": "logs-tychon_latest.tychon_epp*", + "title": "tychon_epp*", "typeMeta": "{}" }, "coreMigrationVersion": "8.8.0", diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json index a253098fa6e..aecfd32fecc 100644 --- a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json +++ b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json @@ -45,7 +45,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "data_view_id": "5be62502-2bab-4d66-97ff-d9373963c50d", "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json b/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json index 57eb31d71b0..cfd43cee0d1 100644 --- a/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json +++ b/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json @@ -44,7 +44,7 @@ "setup": "", "type": "threshold", "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "data_view_id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", "filters": [], "threshold": { diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json index d196821d0be..f2367efc402 100644 --- a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json +++ b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json @@ -52,7 +52,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "data_view_id": "6ce8198c-8c52-4f20-8e68-b566ebf84b18", "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json index a894e02025f..33a866d7a7c 100644 --- a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json +++ b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json @@ -45,7 +45,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "data_view_id": "5be62502-2bab-4d66-97ff-d9373963c50d", "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json b/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json index 4862924831c..b019ca5a060 100644 --- a/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json +++ b/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json @@ -50,7 +50,7 @@ "history_window_start": "now-7d", "filters": [], "language": "kuery", - "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "data_view_id": "4b420fb2-cf3e-40a2-a8fe-92db1bd570b2", "throttle": "no_actions", "actions": [] } diff --git a/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json b/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json index 9d10e2fddad..56b2a029381 100644 --- a/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json +++ b/packages/tychon/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json @@ -44,7 +44,7 @@ "setup": "", "type": "threshold", "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "data_view_id": "5be62502-2bab-4d66-97ff-d9373963c50d", "query": "vulnerability.result : \"fail\" ", "filters": [], "threshold": { diff --git a/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json b/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json index 6e759d93662..79d17783d16 100644 --- a/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json +++ b/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json @@ -36,7 +36,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "data_view_id": "a61d021d-d78f-485d-93b2-8075149794af", "query": "tychon.definition.stig \u003c \"now-120d\"", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json b/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json index 23cabe07fcc..bf685e52528 100644 --- a/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json +++ b/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json @@ -44,7 +44,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "data_view_id": "a61d021d-d78f-485d-93b2-8075149794af", "query": "host.security.antivirus.status : *OutOfDate*", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json b/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json index 501de15c886..d96a3466872 100644 --- a/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json +++ b/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json @@ -46,7 +46,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "data_view_id": "a61d021d-d78f-485d-93b2-8075149794af", "query": "host.tpm.compliant : false ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json index 0fc3ac423f1..3e015aa8fe1 100644 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json @@ -44,7 +44,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "data_view_id": "7d972a32-d117-4963-a7bf-58fc65fb1ee8", "query": "rule.result : \"fail\" and rule.severity : \"high\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json index 19f15e7028a..af84db91b34 100644 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json @@ -45,7 +45,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "data_view_id": "5be62502-2bab-4d66-97ff-d9373963c50d", "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json b/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json index 146fb6921bc..f16dc5c4279 100644 --- a/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json +++ b/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json @@ -3,7 +3,10 @@ "type": "security-rule", "attributes": { "name": "Weak WIFI Authentication in use", - "tags": [], + "tags": [ + "TYCHON", + "WIFI" + ], "interval": "5m", "enabled": true, "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", @@ -42,7 +45,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", + "data_view_id": "39822d3a-870f-4a82-8928-e9264b4d1a31", "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json b/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json index 7ca38703831..d8b3fd0205f 100644 --- a/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json +++ b/packages/tychon/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json @@ -47,7 +47,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "data_view_id": "5be62502-2bab-4d66-97ff-d9373963c50d", "query": "vulnerability.result : \"fail\" and vulnerability.due_date \u003c now", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json b/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json index 5445182ce93..d2f91e13c06 100644 --- a/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json +++ b/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json @@ -36,7 +36,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "data_view_id": "a61d021d-d78f-485d-93b2-8075149794af", "query": "tychon.definition.oval \u003c \"now-30d\"", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json index 6a90978d9f6..58ca78d4f1e 100644 --- a/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json +++ b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json @@ -58,7 +58,7 @@ "history_window_start": "now-7d", "filters": [], "language": "kuery", - "data_view_id": "c6b645d3-dd29-43f2-b831-49e29ffd5b6c", + "data_view_id": "b006641c-69de-48bd-9a5a-1125f0da1c0b", "throttle": "no_actions", "actions": [] } diff --git a/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json b/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json index 5923815ff91..bc6dca8c638 100644 --- a/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json +++ b/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json @@ -44,7 +44,7 @@ "setup": "", "type": "query", "language": "kuery", - "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "data_view_id": "02acfb43-5302-4331-bb10-4174171f6091", "query": "volume.system_volume : true and not volume.drive.letter : \"\"", "filters": [], "throttle": "no_actions", diff --git a/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json index eb774756c6e..7fc49e47d01 100644 --- a/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json +++ b/packages/tychon/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json @@ -1,20 +1,138 @@ { "attributes": { "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9": { + "columnOrder": [ + "ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2", + "31cd5bd5-bf05-4039-a241-c75a16ad9165", + "87f792ec-41cb-4052-ae3c-8e39032305c0" + ], + "columns": { + "31cd5bd5-bf05-4039-a241-c75a16ad9165": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "rule.result : \"fail\" " + }, + "isBucketed": false, + "label": "Total Fails", + "operationType": "count", + "params": { + "emptyAsNull": false + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "87f792ec-41cb-4052-ae3c-8e39032305c0": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "rule.result : \"pass\" " + }, + "isBucketed": false, + "label": "Total Pass", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Severity", + "operationType": "filters", + "params": { + "filters": [ + { + "input": { + "language": "kuery", + "query": "rule.severity :\"high\" " + }, + "label": "CAT I" + }, + { + "input": { + "language": "kuery", + "query": "rule.severity : \"medium\" " + }, + "label": "CAT II" + }, + { + "input": { + "language": "kuery", + "query": "rule.severity : \"low\" " + }, + "label": "CAT III" + } + ] + }, + "scale": "ordinal" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "ecc959a5-6cb4-43ed-bd8e-c8a11c51d3d2", + "isTransposed": false + }, + { + "columnId": "31cd5bd5-bf05-4039-a241-c75a16ad9165", + "isTransposed": false, + "summaryLabel": "Total", + "summaryRow": "sum" + }, + { + "columnId": "87f792ec-41cb-4052-ae3c-8e39032305c0", + "isTransposed": false, + "summaryLabel": "Total", + "summaryRow": "sum" + } + ], + "layerId": "93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9", + "layerType": "data" + } }, - "title": "CCRI: Rule Results - Table", - "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":null}}}}", - "version": 1, - "visState": "{\"title\":\"CCRI: Rule Results - Table\",\"type\":\"table\",\"aggs\":[{\"id\":\"6\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.severity : \\\"high\\\" \",\"language\":\"kuery\"},\"label\":\"CAT I\"},{\"input\":{\"query\":\"rule.severity:medium\",\"language\":\"kuery\"},\"label\":\"CAT II\"},{\"input\":{\"query\":\"rule.severity:low\",\"language\":\"kuery\"},\"label\":\"CAT III\"}]},\"schema\":\"bucket\"},{\"id\":\"8\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"8-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: \\\"pass\\\" \",\"language\":\"kuery\"},\"label\":\"Pass\"}]}},\"customMetric\":{\"id\":\"8-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Pass\"},\"schema\":\"metric\"},{\"id\":\"9\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"9-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"Fail\"}]}},\"customMetric\":{\"id\":\"9-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Fail\"},\"schema\":\"metric\"},{\"id\":\"1\",\"enabled\":true,\"type\":\"sum_bucket\",\"params\":{\"customBucket\":{\"id\":\"1-bucket\",\"enabled\":true,\"type\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"query\":\"rule.result: pass\",\"language\":\"kuery\"},\"label\":\"\"},{\"input\":{\"query\":\"rule.result: fail\",\"language\":\"kuery\"},\"label\":\"\"}]}},\"customMetric\":{\"id\":\"1-metric\",\"enabled\":true,\"type\":\"count\",\"params\":{\"emptyAsNull\":false}},\"customLabel\":\"Total\"},\"schema\":\"metric\"}],\"params\":{\"perPage\":5,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":true,\"totalFunc\":\"sum\",\"dimensions\":{\"metrics\":[{\"accessor\":6,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":4,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":5,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"date\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]},\"percentageCol\":\"\",\"showToolbar\":true,\"autoFitRowToContent\":false}}" + "title": "CCRI Category Table", + "visualizationType": "lnsDatatable" }, "coreMigrationVersion": "8.8.0", - "created_at": "2023-08-30T22:09:42.471Z", + "created_at": "2023-08-31T21:39:00.136Z", "id": "tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd", - "managed": true, - "type": "visualization", - "typeMigrationVersion": "8.5.0", - "updated_at": "2023-08-30T22:09:42.540Z", - "version": "WzIyMDgsNF0=" + "managed": false, + "references": [ + { + "id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "name": "indexpattern-datasource-layer-93bb9ce5-6dc1-41ec-bff3-f8c606cab5c9", + "type": "index-pattern" + } + ], + "type": "lens", + "typeMigrationVersion": "8.6.0", + "updated_at": "2023-08-31T21:39:00.136Z", + "version": "WzYyODksNV0=" } \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 47871cc3f94..402c152bac5 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.27 +version: 0.0.33 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 4edd91e47056fb149e593edc30dc953eaa4d5c5c Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:53:41 +0000 Subject: [PATCH 53/65] Upgraded Plugin For Linux and Performed cleanup --- packages/tychon/LICENSE.txt | 93 +++++++++ .../transform/cve_linux/fields/agent.yml | 192 ++++++++++++++++++ .../cve_linux/fields/base-fields.yml | 21 ++ .../transform/cve_linux/fields/ecs.yml | 64 ++++++ .../transform/cve_linux/fields/fields.yml | 70 +++++++ .../transform/cve_linux/manifest.yml | 12 ++ .../transform/cve_linux/transform.yml | 26 +++ .../software_inventory_rpm/fields/agent.yml | 110 ++++++++++ .../fields/base-fields.yml | 6 + .../software_inventory_rpm/fields/ecs.yml | 87 ++++++++ .../software_inventory_rpm/fields/fields.yml | 16 ++ .../software_inventory_rpm/manifest.yml | 12 ++ .../software_inventory_rpm/transform.yml | 26 +++ .../transform/stig_linux/fields/agent.yml | 192 ++++++++++++++++++ .../stig_linux/fields/base-fields.yml | 21 ++ .../transform/stig_linux/fields/ecs.yml | 54 +++++ .../transform/stig_linux/fields/fields.yml | 126 ++++++++++++ .../transform/stig_linux/manifest.yml | 12 ++ .../transform/stig_linux/transform.yml | 26 +++ 19 files changed, 1166 insertions(+) create mode 100644 packages/tychon/LICENSE.txt create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/cve_linux/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/fields/ecs.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/manifest.yml create mode 100644 packages/tychon/elasticsearch/transform/stig_linux/transform.yml diff --git a/packages/tychon/LICENSE.txt b/packages/tychon/LICENSE.txt new file mode 100644 index 00000000000..809108b857f --- /dev/null +++ b/packages/tychon/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml new file mode 100644 index 00000000000..31ba2470b1f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml @@ -0,0 +1,64 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml new file mode 100644 index 00000000000..e5104b41dff --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml @@ -0,0 +1,70 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml b/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_linux/transform.yml b/packages/tychon/elasticsearch/transform/cve_linux/transform.yml new file mode 100644 index 00000000000..ec804d02a8e --- /dev/null +++ b/packages/tychon/elasticsearch/transform/cve_linux/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + host.os.type: "linux" + - match_phrase: + event.kind: "state" +dest: + index: tychon_cve-linux +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.6 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what LINUX based vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml new file mode 100644 index 00000000000..2f024c089ab --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml new file mode 100644 index 00000000000..b1abf837fb0 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml @@ -0,0 +1,6 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml new file mode 100644 index 00000000000..c56cb240566 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml @@ -0,0 +1,87 @@ +- external: ecs + name: '@timestamp' +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.dataset +- external: ecs + name: event.kind +- external: ecs + name: event.module +- external: ecs + name: event.timezone +- external: ecs + name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime +- external: ecs + name: log.file.path +- external: ecs + name: package.architecture +- external: ecs + name: package.description +- external: ecs + name: package.installed + ignore_malformed: true +- external: ecs + name: package.name +- external: ecs + name: package.path +- external: ecs + name: package.size +- external: ecs + name: package.type +- external: ecs + name: package.version +- external: ecs + name: tags +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml new file mode 100644 index 00000000000..fec6c53f2e3 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml @@ -0,0 +1,16 @@ +- name: package.uninstall + type: text +- name: package.cpe + type: keyword +- name: package.id + type: keyword +- name: package.publisher + type: keyword +- name: package.version_build + type: integer +- name: package.version_major + type: integer +- name: package.version_minor + type: integer +- name: package.version_release + type: integer diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml b/packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml new file mode 100644 index 00000000000..ceef8eeaae3 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_softwareinventory-* + query: + bool: + must: + - match_phrase: + package.type: "rpm" + - match_phrase: + event.kind: "state" +dest: + index: tychon_softwareinventory-rpm +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.5 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml b/packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/ecs.yml b/packages/tychon/elasticsearch/transform/stig_linux/fields/ecs.yml new file mode 100644 index 00000000000..7329d8fd21c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/fields/ecs.yml @@ -0,0 +1,54 @@ +- external: ecs + name: package.description +- external: ecs + name: package.name +- external: ecs + name: package.reference +- external: ecs + name: package.type +- external: ecs + name: package.build_version +- external: ecs + name: rule.name +- external: ecs + name: event.kind +- external: ecs + name: ecs.version +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: event.ingested +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.dataset +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml b/packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml new file mode 100644 index 00000000000..864e77b3f8f --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml @@ -0,0 +1,126 @@ +- name: id + description: Tychon Unique Stig Id. + type: keyword +- name: benchmark + type: group + fields: + - name: guid + description: Benchmark GUID. + type: keyword + - name: generated_utc + description: Benchmark UTC. + type: keyword + - name: hash + description: Benchmark SHA256 Hash + type: keyword + - name: name + description: Benchmark Name. + type: keyword + - name: title + description: Benchmark Title. + type: keyword + - name: version + description: Benchmark Version. + type: keyword + - name: list + description: Benchmark Summary Name List. + type: keyword + - name: count + description: Benchmark Summary Name List Item Count. + type: long +- name: oval + type: group + fields: + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. + type: keyword +- name: rule + type: group + fields: + - name: id + description: Benchmark Rule Identifier. + type: keyword + - name: finding_id + description: Benchmark Rule Finding Identifier. + type: keyword + - name: result + description: Benchmark Rule Results. + type: keyword + - name: severity + description: Benchmark Severity Status. + type: keyword + - name: stig_id + description: Stig rule id + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: vulnerability_id + description: Rule vulnerability id. + type: keyword + - name: weight + description: Benchmark Rule Weight. + type: float + - name: benchmark + type: group + fields: + - name: guid + description: Benchmark Rule GUID. + type: keyword + - name: profile.id + description: Benchmark Rule Profile Identifier. + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: oval + type: group + fields: + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Reference Identifier. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig_linux/manifest.yml b/packages/tychon/elasticsearch/transform/stig_linux/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/stig_linux/transform.yml b/packages/tychon/elasticsearch/transform/stig_linux/transform.yml new file mode 100644 index 00000000000..fa423d73d67 --- /dev/null +++ b/packages/tychon/elasticsearch/transform/stig_linux/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_stig-* + query: + bool: + must: + - match_phrase: + host.os.type: "linux" + - match_phrase: + event.kind: "state" +dest: + index: tychon_stig-linux +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.5 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows STIG SCAP results are from TYCHON. From 82d9631ed3f5f4ecb33863ecfbbcd2404944c46c Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:55:59 +0000 Subject: [PATCH 54/65] Updating for linux and code review --- packages/tychon/_dev/build/docs/README.md | 5 +- packages/tychon/changelog.yml | 2 +- .../tychon_arp/agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 94 +++--- .../data_stream/tychon_arp/fields/agent.yml | 2 +- .../data_stream/tychon_arp/fields/fields.yml | 25 +- .../data_stream/tychon_arp/manifest.yml | 12 +- .../tychon_cpu/agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 102 ++++--- .../data_stream/tychon_cpu/fields/agent.yml | 2 +- .../data_stream/tychon_cpu/manifest.yml | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 30 +- .../data_stream/tychon_cve/fields/agent.yml | 2 +- .../data_stream/tychon_cve/fields/fields.yml | 3 +- .../data_stream/tychon_cve/manifest.yml | 7 +- .../elasticsearch/ingest_pipeline/default.yml | 21 +- .../data_stream/tychon_epp/manifest.yml | 12 +- .../agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 111 ++++--- .../tychon_exposedservice/fields/fields.yml | 13 +- .../tychon_exposedservice/manifest.yml | 12 +- .../agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 207 ++++--------- .../tychon_harddrive/fields/fields.yml | 134 +++++---- .../data_stream/tychon_harddrive/manifest.yml | 9 +- .../agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 127 ++++---- .../data_stream/tychon_hardware/manifest.yml | 9 +- .../tychon_host/agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 126 ++++---- .../data_stream/tychon_host/fields/fields.yml | 241 ++++++++++----- .../data_stream/tychon_host/manifest.yml | 12 +- .../agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 147 ++++----- .../tychon_networkadapter/fields/agent.yml | 2 +- .../tychon_networkadapter/fields/fields.yml | 193 ++++++++---- .../tychon_networkadapter/manifest.yml | 7 +- .../agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 146 +++++---- .../tychon_softwareinventory/manifest.yml | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 17 +- .../data_stream/tychon_stig/manifest.yml | 12 +- .../tychon_volume/agent/stream/stream.yml.hbs | 38 +-- .../elasticsearch/ingest_pipeline/default.yml | 110 +++---- .../tychon_volume/fields/fields.yml | 74 ++--- .../data_stream/tychon_volume/manifest.yml | 12 +- packages/tychon/docs/README.md | 283 ++++++++---------- .../transform/network_adapter/transform.yml | 9 +- ...7dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json | 48 --- ...0359860-1139-11ee-af86-538da1394f27_1.json | 54 ---- ...1481830-426d-11ee-83e4-c92ed141b9e5_1.json | 57 ---- ...7a4a660-4111-11ee-83e4-c92ed141b9e5_1.json | 53 ---- ...e5a7e20-1137-11ee-af86-538da1394f27_1.json | 61 ---- ...e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 54 ---- ...8a72d20-426e-11ee-83e4-c92ed141b9e5_1.json | 52 ---- ...a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json | 42 --- ...5197a50-428d-11ee-83e4-c92ed141b9e5_1.json | 42 --- ...67e3450-1139-11ee-af86-538da1394f27_1.json | 53 ---- ...34a39a0-1138-11ee-af86-538da1394f27_1.json | 54 ---- ...fdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json | 54 ---- ...85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json | 57 ---- ...b5715c0-426b-11ee-83e4-c92ed141b9e5_1.json | 50 ---- ...dcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json | 50 ---- .../026431f0-3de5-11ee-9610-15dee918f31a.json | 17 -- .../11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 -- .../27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 -- .../39b55820-10f2-11ee-af86-538da1394f27.json | 17 -- .../5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 -- .../7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 -- .../7f851220-3d41-11ee-9610-15dee918f31a.json | 17 -- .../9c222660-1100-11ee-af86-538da1394f27.json | 17 -- .../a3922360-3de6-11ee-9610-15dee918f31a.json | 17 -- .../bae88930-1133-11ee-af86-538da1394f27.json | 17 -- .../c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 -- .../e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 -- .../f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 -- .../ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 -- packages/tychon/manifest.yml | 2 +- 78 files changed, 1466 insertions(+), 2269 deletions(-) delete mode 100644 packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json delete mode 100644 packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index 704661a1c1e..b730419d870 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -1,12 +1,13 @@ # TYCHON Agentless -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source Master Endpoint Record data from endpoints, including vulnerability and STIG results, without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) ## Compatibility -* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration supports Windows and RedHat/CENTOS Endpoint Operating Systems. * This integration requires a TYCHON Agentless license. * This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. +* The Linux Endpoint requires RedHat's [OpenScap](https://www.open-scap.org/tools/openscap-base/) to be installed for STIG and CVE to report data. * This integration supports Elastic 8.8+. ## Returned Data Fields diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 5607c4b9acc..88fabe2c0c2 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.33 +- version: 0.0.51 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index f87ae5a84fe..b3256bbccb0 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -1,43 +1,51 @@ ---- -description: Pipeline for ARP -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: arp - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file +--- +description: Pipeline for TYCHON ARP Tables +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.category + value: arp + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/data_stream/tychon_arp/fields/agent.yml index ec653c7199b..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/agent.yml @@ -27,7 +27,7 @@ type: long - name: current_time description: Current datetime. - type: long + type: date - name: name description: Scanner Script Name. type: keyword diff --git a/packages/tychon/data_stream/tychon_arp/fields/fields.yml b/packages/tychon/data_stream/tychon_arp/fields/fields.yml index 6ee09956138..19998af0b2d 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/fields.yml @@ -1,8 +1,17 @@ -- name: destination.hostname - type: keyword -- name: destination.name - type: keyword -- name: network.interface - type: keyword -- name: network.state - type: keyword +- name: destination + type: group + fields: + - name: hostname + type: keyword + description: The Translated Hostname of the IP in the ARP Table + - name: name + type: keyword +- name: network + type: group + fields: + - name: interface + type: keyword + description: The interface the ARP Table has associated the destination. + - name: state + type: keyword + description: Current state \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/manifest.yml b/packages/tychon/data_stream/tychon_arp/manifest.yml index fa52f659f98..4c387a8bacc 100644 --- a/packages/tychon/data_stream/tychon_arp/manifest.yml +++ b/packages/tychon/data_stream/tychon_arp/manifest.yml @@ -1,19 +1,20 @@ -title: Windows arp Info +title: Endpoint Arp Table Information type: logs streams: - input: logfile - title: Windows arp Info - description: Windows arp Info + title: Endpoint Arp Table Information + description: TYCHON will report on the entire ARP table from an endpoint. template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows arp Info + title: TYCHON Output Arp Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_arp_info.json + - /var/log/tychoncloud/eventlogs/tychon_arp_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index 7d5b3350c57..110bf6e21e0 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -1,43 +1,59 @@ ---- -description: Pipeline for CPU -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: cpu - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file +--- +description: Pipeline for TYCHON CPU Information +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: cpu + - gsub: + field: host.cpu.speed + pattern: "[^0-9]" + replacement: "" + - gsub: + field: host.cpu.clockspeed + pattern: "[^0-9]" + replacement: "" + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml index ec653c7199b..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml @@ -27,7 +27,7 @@ type: long - name: current_time description: Current datetime. - type: long + type: date - name: name description: Scanner Script Name. type: keyword diff --git a/packages/tychon/data_stream/tychon_cpu/manifest.yml b/packages/tychon/data_stream/tychon_cpu/manifest.yml index 0cf790fa1c0..b4175c56c09 100644 --- a/packages/tychon/data_stream/tychon_cpu/manifest.yml +++ b/packages/tychon/data_stream/tychon_cpu/manifest.yml @@ -1,19 +1,20 @@ -title: Windows cpu Info +title: Endpoint CPU Info type: logs streams: - input: logfile - title: Windows cpu Info - description: Windows cpu Info + title: Endpoint CPU Info + description: Endpoint CPU Info template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows cpu Info + title: TYCHON Endpoint CPU Output Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cpu_info.json + - /var/log/tychoncloud/eventlogs/tychon_cpu_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 12dae9b84df..16286a38e4d 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -22,18 +22,23 @@ processors: - set: field: event.module value: tychon - - set: - field: host.uptime - value: "{{host.uptime}}" + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - split: field: host.uptime separator: "\\.+" target_field: tempuptime + ignore_failure: true - set: field: host.uptime value: "{{tempuptime.0}}" + ignore_failure: true - remove: field: tempuptime + ignore_failure: true + ignore_missing: true - set: field: event.category value: vulnerability @@ -49,17 +54,18 @@ processors: - gsub: field: host.mac pattern: ":" - replacement: "-" + replacement: "-" - convert: field: script.current_duration type: float + ignore_missing: true - convert: field: vulnerability.score.base type: float - convert: field: vulnerability.year type: long - - set: + - set: field: vulnerability.scanner.vendor value: tychon - set: @@ -71,13 +77,19 @@ processors: - set: field: vulnerability.enumeration value: CVE - - set: - field: vulnerability.version - value: "{{vulnerability.version}}" + - date: + field: vulnerability.due_date + target_field: vulnerability.due_date + output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX + formats: + - strict_date_optional_time + - epoch_millis + - date + - "MM/dd/yyyy" on_failure: - set: field: event.kind value: pipeline_error - append: field: error.message - value: '{{{ _ingest.on_failure_message }}}' + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index 9fd0c90e91c..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -27,7 +27,7 @@ type: long - name: current_time description: Current datetime. - type: long + type: date - name: name description: Scanner Script Name. type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 26b783e1349..925eab85d41 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -7,6 +7,7 @@ - name: due_date description: Vulnerability Due Date. type: date + format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" - name: due_date_reason description: Vulnerability Due Date Reason type: keyword @@ -18,7 +19,7 @@ type: keyword - name: result description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword + type: keyword - name: title description: Common Vulnerabilities and Exposures Description and Title. type: keyword diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index 7afc8e18535..4c1d2258971 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -8,13 +8,13 @@ streams: vars: - name: paths type: text - title: Vulnerability Results + title: Vulnerability Results Location multi: true required: true show_user: true default: - #- /root/systemInfo/data/tychon_cve_info.json - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cve_info.json + - /var/log/tychoncloud/eventlogs/tychon_cve_info.json - name: tags type: text title: Tags @@ -30,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index aae86e5fd6b..1a31e66f028 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -1,5 +1,5 @@ --- -description: Pipeline for EPP +description: Pipeline for TYCHON Endpoint Protection Datasets processors: - dot_expander: field: "*" @@ -21,29 +21,44 @@ processors: - set: field: event.category value: epp + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: host.uptime + value: "0" + if: ctx.host.uptime == '' - split: field: host.uptime separator: "\\.+" target_field: tempuptime + ignore_failure: true - set: field: host.uptime value: "{{tempuptime.0}}" + ignore_failure: true - remove: field: tempuptime + ignore_failure: true + ignore_missing: true - convert: field: host.uptime type: long + ignore_missing: true - gsub: field: host.mac pattern: ":" - replacement: "-" + replacement: "-" + ignore_missing: true - convert: field: script.current_duration type: float + ignore_missing: true on_failure: - set: field: event.kind value: pipeline_error - append: field: error.message - value: '{{{ _ingest.on_failure_message }}}' + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index 021373c406c..37d37c1eb63 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -1,19 +1,20 @@ -title: Windows EPP Info +title: Endpoint Protection Platform Info type: logs streams: - input: logfile - title: Windows EPP Info - description: Windows EPP Info + title: Endpoint Protection Platform Info + description: Endpoint Protection Platform Info template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows EPP Info + title: TYCHON EPP Output Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_epp_info.json + - /var/log/tychoncloud/eventlogs/tychon_epp_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 501df7f2480..0b1d21bc7e8 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -1,47 +1,64 @@ ---- -description: Pipeline for Exposed Services -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: source.ip - value: "0.0.0.0" - if: ctx.source.ip == '' - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: exposed service - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - +--- +description: Pipeline for Exposed Services +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: source.ip + value: "0.0.0.0" + if: ctx.source.ip == '' + - set: + field: service.name + value: "{{process.name}}" + if: "ctx.service?.name == null" + ignore_failure: true + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: exposed service + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - set: + field: service.state + value: Running + if: ctx.service.state == '' + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml index eada49f31af..cc0dc08ce10 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml @@ -1,4 +1,9 @@ -- name: service.description - type: keyword -- name: service.display_name - type: keyword +- name: service + type: group + fields: + - name: description + type: keyword + description: The description text on the serivce. + - name: display_name + type: keyword + description: The human readable name of the service \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml index aaf504358a3..01937d88bd8 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml @@ -1,19 +1,20 @@ -title: Windows exposedservice Info +title: Endpoint Exposed Services type: logs streams: - input: logfile - title: Windows exposedservice Info - description: Windows exposedservice Info + title: Endpoint Exposed Services + description: TYCHON will detect open ports and their processes to help determine extrenal exposure for an endpoint. template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows exposedservice Info + title: TYCHON Exposed Services Output Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_exposedservice_info.json + - /var/log/tychoncloud/eventlogs/tychon_exposedservice_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index 655a9dbb863..a0b8abf6fc5 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -1,156 +1,51 @@ ---- -description: Pipeline for Hard Drives -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: hard drive - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float - - set: - field: disk.partition_style - value: '{{disk_partition_style}}' - - remove: - field: disk_partition_style - - set: - field: disk.number_of_partitions - value: '{{disk_NumberOfPartitions}}' - - remove: - field: disk_NumberOfPartitions - - set: - field: disk.operational_status - value: '{{disk_operational_status}}' - - remove: - field: disk_operational_status - - set: - field: disk.health_status - value: '{{disk_health_status}}' - - remove: - field: disk_health_status - - set: - field: disk.highly_available - value: '{{disk.is_highly_available}}' - - remove: - field: disk.is_highly_available - - set: - field: disk.offline - value: '{{disk.is_offline}}' - - remove: - field: disk.is_offline - - set: - field: disk.bus_type - value: '{{disk.bus_type}}' - - remove: - field: disk.bus_type - - set: - field: disk.adapter.serial_number - value: '{{disk_adapter_serialnumber}}' - - remove: - field: disk_adapter_serialnumber - - set: - field: disk.adapter.serial_number - value: '{{disk_adapter_serialnumber}}' - - remove: - field: disk_adapter_serialnumber - - set: - field: disk.size - value: '{{disk_size}}' - - remove: - field: disk_size - - set: - field: disk.system - value: '{{disk_system}}' - - remove: - field: disk_system - - set: - field: disk.manufacturer - value: '{{disk_manufacturer}}' - - remove: - field: disk_manufacturer - - set: - field: disk.clustered - value: '{{disk.is_clustered}}' - - remove: - field: disk.is_clustered - - set: - field: disk.model - value: '{{disk_model}}' - - remove: - field: disk_model - - set: - field: disk.number - value: '{{disk_number}}' - - remove: - field: disk_number - - set: - field: disk.location.function - value: '{{disk_location_function}}' - - remove: - field: disk_location_function - - set: - field: disk.location.device - value: '{{disk_location_device}}' - - remove: - field: disk_location_device - - set: - field: disk.location.bus - value: '{{disk_location_bus}}' - - remove: - field: disk_location_bus - - set: - field: disk.location.adapter - value: '{{disk_location_adapter}}' - - remove: - field: disk_location_adapter - - set: - field: disk.is_boot - value: '{{disk_is_boot}}' - - remove: - field: disk_is_boot - - set: - field: disk.guid - value: '{{disk_guid}}' - - remove: - field: disk_guid - - set: - field: disk.boot_from - value: '{{disk_boot_from}}' - - remove: - field: disk_boot_from - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file +--- +description: Pipeline for the TYCHON Hard Drive Dataset +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: hard drive + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml index 89116cfd6ac..c8de5ee5041 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml @@ -1,50 +1,84 @@ -- name: disk.adapter.serial_number - type: keyword -- name: disk.boot_from - type: boolean -- name: disk.bus_type - type: keyword -- name: disk.clustered - type: boolean -- name: disk.firmware.version - type: keyword -- name: disk.firmware_version - type: keyword -- name: disk.guid - type: keyword -- name: disk.health_status - type: keyword -- name: disk.highly_available - type: boolean -- name: disk.is_boot - type: boolean -- name: disk.location.adapter - type: integer -- name: disk.location.bus - type: integer -- name: disk.location.device - type: integer -- name: disk.location.function - type: integer -- name: disk.manufacturer - type: keyword -- name: disk.model - type: keyword -- name: disk.name - type: keyword -- name: disk.number - type: integer -- name: disk.number_of_partitions - type: integer -- name: disk.offline - type: boolean -- name: disk.operational_status - type: keyword -- name: disk.partition_style - type: keyword -- name: disk.serial_number - type: keyword -- name: disk.size - type: long -- name: disk.system - type: boolean +- name: disk + type: group + fields: + - name: adapter + type: group + fields: + - name: serial_number + type: keyword + description: Disk Adatper Serial Number + - name: boot_from + type: boolean + description: OS booted from this disk + - name: bus_type + type: keyword + description: THe Disk Bus Type + - name: clustered + type: boolean + description: Is the Disk Clustered + - name: firmware + type: group + fields: + - name: version + type: keyword + description: Disk Firmware version + - name: guid + type: keyword + description: Disk UUID + - name: health_status + type: keyword + description: Health status of the disk + - name: highly_available + type: boolean + description: Disk is marked as highly available + - name: is_boot + type: boolean + description: Disk is a boot disk + - name: location + type: group + fields: + - name: adapter + type: integer + description: Zero index adapter location + - name: bus + type: integer + description: Disk Bus Location + - name: device + type: integer + descirption: Disk Device Location + - name: function + type: integer + description: Disk Function Location + - name: manufacturer + type: keyword + description: The manufacturer of the Disk + - name: model + type: keyword + description: The model of the disk + - name: name + type: keyword + description: The firendly name of the disk + - name: number + type: integer + description: The number assigned to the disk + - name: number_of_partitions + type: integer + description: Total number of partitions on the drive + - name: offline + type: boolean + description: Is the disk offline + - name: operational_status + type: keyword + description: Operational Status of the disk + - name: partition_style + type: keyword + description: Partition style + - name: serial_number + type: keyword + description: The unique serial number of the drive + - name: size + type: long + description: Total Size of the disk + - name: system + type: boolean + description: Is this a system drive diff --git a/packages/tychon/data_stream/tychon_harddrive/manifest.yml b/packages/tychon/data_stream/tychon_harddrive/manifest.yml index 05fd46993f5..c030df86e49 100644 --- a/packages/tychon/data_stream/tychon_harddrive/manifest.yml +++ b/packages/tychon/data_stream/tychon_harddrive/manifest.yml @@ -1,19 +1,20 @@ -title: Windows harddrive Info +title: Endpoint Harddrive Info type: logs streams: - input: logfile - title: Windows harddrive Info - description: Windows harddrive Info + title: Endpoint Harddrive Info + description: TYCHON reports all the physical Hard Drive's on an endpoint template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows harddrive Info + title: TYCHON Harddrive Output Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_harddrive_info.json + - /var/log/tychoncloud/eventlogs/tychon_harddrive_info.json - name: tags type: text title: Tags diff --git a/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index c917d8d7797..8c6aee9e114 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -1,73 +1,54 @@ ---- -description: Pipeline for Hardware -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: hardware - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float - - set: - field: device.id - value: '{{device_id}}' - - remove: - field: device_id - - set: - field: device.status - value: '{{status}}' - - remove: - field: status - - set: - field: device.present - value: '{{present}}' - - remove: - field: present - - set: - field: device.name - value: '{{name}}' - - remove: - field: name - - set: - field: device.manufacturer - value: '{{manufacturer}}' - - remove: - field: manufacturer - - set: - field: device.friendly_name - value: '{{friendly_name}}' - - remove: - field: friendly_name -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file +--- +description: Pipeline for Hardware +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - lowercase: + field: device.present + ignore_missing: true + - set: + field: event.module + value: tychon + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.category + value: hardware + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/manifest.yml b/packages/tychon/data_stream/tychon_hardware/manifest.yml index 435b60875cf..1daff5cba8c 100644 --- a/packages/tychon/data_stream/tychon_hardware/manifest.yml +++ b/packages/tychon/data_stream/tychon_hardware/manifest.yml @@ -1,19 +1,20 @@ -title: Windows hardware Info +title: Hardware Info type: logs streams: - input: logfile - title: Windows hardware Info - description: Windows hardware Info + title: Hardware Info + description: The physical hardware attached to a computer system. template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows hardware Info + title: TYCHON Hardware Output Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_hardware_info.json + - /var/log/tychoncloud/eventlogs/tychon_hardware_info.json - name: tags type: text title: Tags diff --git a/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index fef9742e0c8..ca901abade7 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -1,54 +1,72 @@ ---- -description: Pipeline for TYCHON HOST OS -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: host os - - convert: - field: script.current_duration - type: float - - lowercase: - field: host.security.antivirus.exists - - split: - field: host.security.antivirus.exists - separator: "," - target_field: tempav - - set: - field: host.security.antivirus.exists - value: "{{tempav.0}}" - - remove: - field: tempav - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: "{{{ _ingest.on_failure_message }}}" - \ No newline at end of file +--- +description: Pipeline for TYCHON HOST OS +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.category + value: host os + - remove: + field: tychon.definition.oval + if: ctx.tychon.definition.oval == '' + - remove: + field: tychon.definition.stig + if: ctx.tychon.definition.stig == '' + - convert: + field: script.current_duration + type: float + ignore_missing: true + - set: + field: host.security.antivirus.exists + value: "false" + if: ctx.host.security.antivirus.exists == '' + - lowercase: + field: host.security.antivirus.exists + - split: + field: host.security.antivirus.exists + separator: "," + target_field: tempav + - set: + field: host.security.antivirus.exists + value: "{{tempav.0}}" + - remove: + field: tempav + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml index 8a8e8a28231..a18a43e11b5 100644 --- a/packages/tychon/data_stream/tychon_host/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -1,72 +1,169 @@ -- name: event.deviceguard.basevirtualizationsupport.available - type: boolean -- name: event.deviceguard.credentialguard.enabled - type: boolean -- name: event.deviceguard.credentialguard.running - type: boolean -- name: event.deviceguard.dmaprotection.available - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.enabled - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.running - type: boolean -- name: event.deviceguard.secureboot.available - type: boolean -- name: event.deviceguard.securememoverwrite.available - type: boolean -- name: event.deviceguard.smmsecuritymigrations.available - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.enabled - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.running - type: boolean -- name: event.deviceguard.ueficodereadonly.available - type: boolean -- name: event.deviceguard.usermodecodeintegrity.policyenforcement - type: keyword -- name: event.deviceguard.version - type: keyword -- name: event.deviceguard.virtualizationbasedsecurity.status - type: keyword -- name: event.ufi.enabled - type: boolean -- name: host.cpu.caption - type: keyword -- name: host.cpu.count - type: integer -- name: host.memory.size - type: long -- name: host.motherboard.chipset - type: keyword -- name: host.motherboard.serial_number - type: keyword -- name: host.os.edition - type: keyword -- name: host.os.vendor - type: keyword -- name: host.security.antivirus.exists - type: boolean -- name: host.security.antivirus.name - type: keyword -- name: host.security.antivirus.state - type: keyword -- name: host.security.antivirus.status - type: keyword -- name: host.tpm.compliant - type: boolean -- name: host.tpm.digest.id - type: keyword -- name: host.tpm.present - type: boolean -- name: host.tpm.version - type: keyword -- name: host.virtualization_status - type: keyword -- name: tychon.definition.oval - type: date -- name: tychon.definition.stig - type: date -- name: tychon.version.agent - type: version -- name: tychon.version.content - type: version +- name: event + type: group + fields: + - name: deviceguard + type: group + fields: + - name: basevirtualizationsupport + type: group + fields: + - name: available + type: boolean + - name: credentialguard + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: dmaprotection + type: group + fields: + - name: available + type: boolean + - name: hypervisorenforcedcodeint + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: secureboot + type: group + fields: + - name: available + type: boolean + - name: securememoverwrite + type: group + fields: + - name: available + type: boolean + - name: smmsecuritymigrations + type: group + fields: + - name: available + type: boolean + - name: systemguardsecurelaunch + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: ueficodereadonly + type: group + fields: + - name: available + type: boolean + - name: usermodecodeintegrity + type: group + fields: + - name: policyenforcement + type: keyword + - name: version + type: keyword + - name: virtualizationbasedsecurity + type: group + fields: + - name: status + type: keyword + - name: ufi + type: group + fields: + - name: enabled + type: boolean +- name: host + type: group + fields: + - name: cpu + type: group + fields: + - name: caption + type: keyword + description: Description of the CPU + - name: count + type: integer + description: Total Number of CPUs on the system + - name: memory + type: group + fields: + - name: size + type: long + description: Total RAM Size + - name: motherboard + type: group + fields: + - name: chipset + type: keyword + description: Chipset of the Motherboard + - name: serial_number + type: keyword + description: Serial Number of the Motherboard + - name: os + type: group + fields: + - name: edition + type: keyword + description: The Edition of the Opearting System + - name: vendor + type: keyword + description: The vendor of the Operating System + - name: security + type: group + fields: + - name: antivirus + type: group + fields: + - name: exists + type: boolean + description: Does the OS state that an AV program is installed + - name: name + type: keyword + description: Product name the Operating System states is the AV program installed + - name: state + type: keyword + description: The Operating System state of the AV product + - name: status + type: keyword + description: The Operating System current status of the AV product it says is installed. + - name: tpm + type: group + fields: + - name: compliant + type: boolean + description: Is the endpoint compliant with TPM security settings + - name: digest + type: group + fields: + - name: id + type: keyword + description: What digest is being used by TPM + - name: present + type: boolean + description: Is TPM module present on the operating system + - name: version + type: keyword + description: What version of TPM is being used + - name: host.virtualization_status + type: keyword +- name: tychon + type: group + fields: + - name: definition + type: group + fields: + - name: oval + type: date + description: What version of the TYCHON oval defitnions are currently on this endpoint + - name: stig + type: date + description: What version of the Benchmark checks are on this endpoint + - name: version + type: group + fields: + - name: agent + type: version + description: The TYCHON Agent Version installed on the endpoint + - name: content + type: version + description: The TYCHON Agentless Version installed on the endpoint \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/manifest.yml b/packages/tychon/data_stream/tychon_host/manifest.yml index 6389f0f457d..fcc9e0e7793 100644 --- a/packages/tychon/data_stream/tychon_host/manifest.yml +++ b/packages/tychon/data_stream/tychon_host/manifest.yml @@ -1,19 +1,20 @@ -title: Windows host os Info +title: Host Operating System Info type: logs streams: - input: logfile - title: Windows host_os Info - description: Windows host_os Info + title: Host Operating System Info + description: TYCHON collects 1-1 information about an endpoint in this dataset template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows host_os Info + title: TYCHON Host Operating System Location multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_host_info.json + - /var/log/tychoncloud/eventlogs/tychon_host_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 6bd76506ab2..fef46ef0062 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -1,73 +1,74 @@ ---- -description: Pipeline for parsing TYCHON Network Adapters -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - split: - field: host.ipv4 - separator: "," - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: network adapter - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - script: - source: | - String[] ls; - float l; - if(ctx.host.adapter.link_speed != null && ctx.host.adapter.link_speed.splitOnToken(' ')){ - ls = ctx.host.adapter.link_speed.splitOnToken(' '); - l = Float.parseFloat(ls[0]); - if(ls[1] =='Mbps'){ - ctx.host.adapter.link_speed=(long) l*1048576; - }else if(ls[1] =='Gbps'){ - ctx.host.adapter.link_speed=(long) l*1073741824; - } - } - - remove: - field: host.adapter.ip - if: ctx.host.adapter.ip == '' - - remove: - field: host.adapter.gateway - if: ctx.host.adapter.gateway == '' - - remove: - field: host.adapter.dhcp.server - if: ctx.host.adapter.dhcp.server == '' - - remove: - field: host.adapter.dhcp.lease_obtained - if: ctx.host.adapter.dhcp.lease_obtained == '' - - remove: - field: host.adapter.dhcp.lease_expires - if: ctx.host.adapter.dhcp.lease_expires == '' - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' +--- +description: Pipeline for parsing TYCHON Network Adapters +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: network adapter + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - remove: + field: host.adapter.ip + if: ctx.host.adapter.ip == '' + - remove: + field: host.adapter.gateway + if: ctx.host.adapter.gateway == '' + - remove: + field: host.adapter.dhcp.server + if: ctx.host.adapter.dhcp.server == '' + - remove: + field: host.adapter.dhcp.lease_obtained + if: ctx.host.adapter.dhcp.lease_obtained == '' + - remove: + field: host.adapter.dhcp.lease_expires + if: ctx.host.adapter.dhcp.lease_expires == '' + - remove: + field: host.adapter.driver.date + if: ctx.host.adapter.driver.date == '' + - gsub: + field: host.adapter.link_speed + pattern: "[^0-9]" + replacement: "" + - convert: + field: script.current_duration + type: float + ignore_missing: true + ignore_failure: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml index 2f024c089ab..f2a0c59b335 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml @@ -107,4 +107,4 @@ type: keyword - name: serial_number description: Host BIOS Serial Number. - type: keyword + type: keyword \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml index 5a69e18c631..dcc5cc72bc3 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -1,58 +1,135 @@ -- name: host.adapter.alias - type: keyword -- name: host.adapter.description - type: text -- name: host.adapter.dhcp.enabled - type: boolean -- name: host.adapter.dhcp.lease_expires - type: date -- name: host.adapter.dhcp.lease_obtained - type: date -- name: host.adapter.dhcp.server - type: ip -- name: host.adapter.domain - type: keyword -- name: host.adapter.driver.date - type: date -- name: host.adapter.driver.description - type: text -- name: host.adapter.driver.file_name - type: keyword -- name: host.adapter.driver.name - type: keyword -- name: host.adapter.driver.provider - type: keyword -- name: host.adapter.driver.version - type: keyword -- name: host.adapter.gateway - type: ip -- name: host.adapter.id - type: keyword -- name: host.adapter.ip - type: ip -- name: host.adapter.ip_filter.enabled - type: boolean -- name: host.adapter.wins_server - type: keyword -- name: host.adapter.link_speed - type: long -- name: host.adapter.mac - type: keyword -- name: host.adapter.media.connection_state - type: keyword -- name: host.adapter.media.type - type: keyword -- name: host.adapter.mtu - type: integer -- name: host.adapter.ndis.version - type: keyword -- name: host.adapter.subnet_bit - type: integer -- name: host.adapter.virtual - type: boolean -- name: host.adapter.vlan.id - type: keyword -- name: host.adapter.wifi.enabled - type: boolean -- name: host.adapter.wifi.signal_percent - type: integer +- name: host + type: group + fields: + - name: adapter + type: group + fields: + - name: alias + type: keyword + description: The Alias given to this adapter + - name: description + type: text + description: The network adatper description + - name: dhcp + type: group + fields: + - name: enabled + type: boolean + description: Is DHCP Enabled on this adatper + - name: lease_expires + type: date + description: When does this DHCP lease expire + - name: lease_obtained + type: date + description: When was the DHCP lease obtained + - name: server + type: ip + description: What IP Address was the DHCP IP obtained from. + - name: domain + type: keyword + description: What domain was assigned to this adatper + - name: driver + type: group + fields: + - name: date + type: date + description: Date the driver was installed + - name: description + type: text + description: Description of the driver + - name: file_name + type: keyword + description: Driver File name + - name: name + type: keyword + description: Name of the driver + - name: provider + type: keyword + description: Company that provided the driver + - name: version + type: keyword + description: Version of the driver + - name: gateway + type: ip + description: Gateway IP Address + - name: id + type: keyword + description: ID Of the adapter + - name: ip + type: ip + description: IP Addresses assigned to the adatper + - name: ip_filter + type: group + fields: + - name: enabled + type: boolean + description: Is IP Filtering Enabled + - name: wins_server + type: keyword + description: The WINS Server attached to this adatper + - name: link_speed + type: long + description: Link speed of the adatper + - name: mac + type: keyword + description: Hardware MAC Address + - name: media + type: group + fields: + - name: connection_state + type: keyword + description: Current Connection State + - name: type + type: keyword + description: Current Connection Media Type + - name: mtu + type: integer + description: MTU Size + - name: ndis + type: group + fields: + - name: version + type: keyword + description: NDIS Version + - name: subnet_bit + type: integer + description: Subnet BIT + - name: virtual + type: boolean + description: Is adapter virutal + - name: vlan + type: group + fields: + - name: id + type: keyword + description: The VLAN ID + - name: wifi + type: group + fields: + - name: enabled + type: boolean + description: Is WIFI Enabled + - name: signal_percent + type: integer + description: Signal strenth to connected WIFI Router + - name: ssid + type: keyword + description: The Connected WIFI Router SSID + - name: bssid + type: keyword + description: The Connected WIFI Router Hardware Address + - name: radio_type + type: keyword + description: The radio type of the connected WIFI Router + - name: authentication + type: keyword + description: The Authentication method used to connected to the WIFI Router + - name: cipher + type: keyword + description: The CIPHER used to connected to the WIFI Router + - name: band + type: keyword + description: The band used to connected to the WIFI Router + - name: channel + type: keyword + description: The channel used to connected to the WIFI Router \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml index 4834974691b..f4a01ab6495 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml @@ -8,13 +8,13 @@ streams: vars: - name: paths type: text - title: Host Network Adapters + title: Host Network Adapters Location multi: true required: true show_user: true default: - #- /root/systemInfo/data/tychon_networkadapter_info.json - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_networkadapter_info.json + - /var/log/tychoncloud/eventlogs/tychon_networkadapter_info.json - name: tags type: text title: Tags @@ -30,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index 6e5cafc76b2..690f552d220 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -1,55 +1,91 @@ ---- -description: Pipeline for Software Inventory -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: package.installed - value: "1970-01-01T00:00:01Z" - if: ctx.package.installed == '' - - gsub: - field: version.version_build - pattern: "[^0-9]" - replacement: "" - - gsub: - field: version.version_major - pattern: "[^0-9]" - replacement: "" - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: software inventory - - convert: - field: script.current_duration - type: float - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - +--- +description: Pipeline for Software Inventory +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: package.installed + value: "1970-01-01T00:00:01Z" + if: ctx.package.installed == 'installed' + - set: + field: package.installed + value: "1970-01-01T00:00:01Z" + if: ctx.package.installed == '' + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - gsub: + field: package.size + pattern: "[^0-9]" + replacement: "" + - gsub: + field: package.version_build + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_major + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_minor + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_release + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: package.type + value: rpm + if: ctx.package.type == '' + - script: + source: ctx.package.cpe = "cpe:/a:" + ctx.package.name + ":" + ctx.package.version + if: ctx.package.cpe == '' + ignore_failure: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: software inventory + - convert: + field: script.current_duration + type: float + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml index b3a4e86c2ee..3d40f20614f 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml @@ -1,19 +1,20 @@ -title: Windows softwareinventory Info +title: Endpoint Software Inventory Info type: logs streams: - input: logfile - title: Windows softwareinventory Info - description: Windows softwareinventory Info + title: Endpoint Software Inventory Info + description: TYCHON will collect all installed software from the operating system. template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows softwareinventory Info + title: TYCHON Software Inventory Output multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_softwareinventory_info.json + - /var/log/tychoncloud/eventlogs/tychon_softwareinventory_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 7fec6335c7d..814b9a47c3f 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -14,11 +14,15 @@ processors: field: rule.result value: '{{rule.test_result}}' - remove: - if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" + if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" field: rule.test_result - set: field: ecs.version value: '8.8.0' + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - set: field: event.kind value: state @@ -32,14 +36,15 @@ processors: field: host.uptime separator: "\\.+" target_field: tempuptime + ignore_failure: true - set: field: host.uptime value: "{{tempuptime.0}}" + ignore_failure: true - remove: field: tempuptime - - convert: - field: host.uptime - type: long + ignore_failure: true + ignore_missing: true - gsub: field: host.mac pattern: ":" @@ -47,13 +52,15 @@ processors: - convert: field: script.current_duration type: float + ignore_missing: true - convert: field: rule.weight type: float + ignore_missing: true on_failure: - set: field: event.kind value: pipeline_error - append: field: error.message - value: '{{{ _ingest.on_failure_message }}}' + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index e4d2129d452..cf335ff8247 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -1,19 +1,20 @@ -title: Windows STIG Info +title: Endpoint STIG Results type: logs streams: - input: logfile - title: Windows STIG Info - description: Windows STIG Info + title: Endpoint STIG Results + description: Endpoint Benchmark SCAP/XCCDF Scan Results template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows Patches Results + title: TYCHON STIG Results Output multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_stig_info.json + - /var/log/tychoncloud/eventlogs/tychon_stig_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs index 4daf6354078..e39e88b253d 100644 --- a/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs +++ b/packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index c01d85ae503..c49230cd122 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -1,51 +1,59 @@ ---- -description: Pipeline for TYCHON Volumes -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: volumes - - set: - field: volume.percent_full - value: "0" - if: ctx.volume.percent_full == 'NaN' - - gsub: - field: volume.percent_full - pattern: "%" - replacement: "" - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - - set: - field: host.uptime - value: "{{tempuptime.0}}" - - remove: - field: tempuptime - - convert: - field: script.current_duration - type: float -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' - \ No newline at end of file +--- +description: Pipeline for TYCHON Volumes +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - set: + field: event.category + value: volumes + - set: + field: volume.percent_full + value: "0" + if: ctx.volume.percent_full == 'NaN' + - gsub: + field: volume.percent_full + pattern: "%" + replacement: "" + - convert: + field: script.current_duration + type: float + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/data_stream/tychon_volume/fields/fields.yml index 510274e1fba..1aa277c286f 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/fields.yml @@ -1,34 +1,40 @@ -- name: volume.automount - type: boolean -- name: volume.block_size - type: long -- name: volume.dirty_bit_set - type: boolean -- name: volume.dos_device_path - type: text -- name: volume.drive.letter - type: keyword -- name: volume.drive.type - type: keyword -- name: volume.file_system - type: keyword -- name: volume.freespace - type: long -- name: volume.id - type: keyword -- name: volume.name - type: keyword -- name: volume.page_file_present - type: boolean -- name: volume.percent_full - type: float -- name: volume.power_management_supported - type: boolean -- name: volume.purpose - type: keyword -- name: volume.serial_number - type: keyword -- name: volume.size - type: long -- name: volume.system_volume - type: boolean +- name: volume + type: group + fields: + - name: automount + type: boolean + - name: block_size + type: long + - name: dirty_bit_set + type: boolean + - name: dos_device_path + type: text + - name: volume + type: group + fields: + - name: letter + type: keyword + - name: type + type: keyword + - name: file_system + type: keyword + - name: freespace + type: long + - name: id + type: keyword + - name: name + type: keyword + - name: page_file_present + type: boolean + - name: percent_full + type: float + - name: power_management_supported + type: boolean + - name: purpose + type: keyword + - name: serial_number + type: keyword + - name: size + type: long + - name: system_volume + type: boolean \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/manifest.yml b/packages/tychon/data_stream/tychon_volume/manifest.yml index 02b43e2f359..16a2eb0985e 100644 --- a/packages/tychon/data_stream/tychon_volume/manifest.yml +++ b/packages/tychon/data_stream/tychon_volume/manifest.yml @@ -1,19 +1,20 @@ -title: Windows volumes Info +title: Endpoint Volumes Info type: logs streams: - input: logfile - title: Windows volumes Info - description: Windows volumes Info + title: Endpoint Volumes Info + description: Endpoint Volumes Info template_path: stream.yml.hbs vars: - name: paths type: text - title: Windows volumes Info + title: TYCHON Volumes Output multi: true required: true show_user: true default: - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_volume_info.json + - /var/log/tychoncloud/eventlogs/tychon_volume_info.json - name: tags type: text title: Tags @@ -29,5 +30,4 @@ streams: 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. - + 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. \ No newline at end of file diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 0da1468de39..407fc49c0ab 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -1,20 +1,20 @@ -# TYCHON Agentless - -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) - -## Compatibility - -* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. -* This integration requires a TYCHON Agentless license. -* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. - - -## Returned Data Fields -### ARP Table Information - -TYCHON scans Endpoint ARP Tables and returns the results. - -**Exported fields** +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. +* This integration supports Elastic 8.8+. + +## Returned Data Fields +### ARP Table Information + +TYCHON scans Endpoint ARP Tables and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -36,11 +36,11 @@ TYCHON scans Endpoint ARP Tables and returns the results. | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -63,7 +63,7 @@ TYCHON scans Endpoint ARP Tables and returns the results. | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -83,21 +83,21 @@ TYCHON scans Endpoint ARP Tables and returns the results. | network.interface | | keyword | | network.state | | 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 | -| script.current_duration | Scanner Script Duration. | float | -| script.current_time | Current datetime. | date | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | long | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint CPU's and returns the results. - -**Exported fields** + + +### Vulnerablities + +TYCHON scans for Endpoint CPU's and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -115,11 +115,11 @@ TYCHON scans for Endpoint CPU's and returns the results. | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -151,7 +151,7 @@ TYCHON scans for Endpoint CPU's and returns the results. | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -167,21 +167,21 @@ TYCHON scans for Endpoint CPU's and returns the results. | input.type | Source file 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 | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | -| script.current_time | Current datetime. | date | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | long | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint vulenrabilites and returns the results. - -**Exported fields** + + +### Vulnerablities + +TYCHON scans for Endpoint vulenrabilites and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -192,18 +192,6 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | 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.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 | @@ -224,45 +212,36 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | -| host.ip | Host ip addresses. | ip | -| host.ipv4 | Host ip v4 addresses. | keyword | -| host.ipv6 | Host ip v6 addresses. | keyword | -| host.mac | Host mac addresses. | keyword | +| host.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | | host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.description | Host OS Description. | text | | host.os.kernel | Operating system kernel version as a raw string. | keyword | -| host.os.name | Operating system name, without the version. | keyword | | host.os.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | -| id | Tychon Unique Vulnerability Id. | keyword | +| id | TYCHON unique document identifier. | keyword | | input.type | Source file 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 | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | -| script.current_time | Current datetime. | date | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | long | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | | vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | | vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | | vulnerability.definition | National Vulnerability Database Vulnerability Definition. | keyword | @@ -277,19 +256,19 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | | vulnerability.result | Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. | keyword | | vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | keyword | -| vulnerability.score.base | National Vulnerability Database Score of the Vulnerabilty. | float | +| 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.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | | 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 | | vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | | vulnerability.version | Version Number of the Scan. | keyword | -| vulnerability.year | Common Vulnerabilities and Exposures Year. | long | - - -### Endpoint Protection Platform - -TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** +| vulnerability.year | Common Vulnerabilities and Exposures Year. | integer | + + +### Endpoint Protection Platform + +TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -392,13 +371,13 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | | windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | | windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | - - -### Endpoint Exposed Services Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Exposed Services Information + +The TYCHON script to scan Endpoint Exposed Services and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -416,11 +395,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -468,7 +447,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | 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.start | | date | +| 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 | | script.current_duration | Scanner Script Duration. | float | @@ -485,13 +464,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | source.port | Port of the source. | long | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hard Drive Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Hard Drive Information + +The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -534,11 +513,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -585,13 +564,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hardware Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Hardware Information + +The TYCHON script scans an endpoint's Hardware Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -617,11 +596,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -668,13 +647,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Host OS Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Host OS Information + +The TYCHON script scans an endpoint's OS Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -687,6 +666,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | | event.deviceguard.basevirtualizationsupport.available | | boolean | | event.deviceguard.credentialguard.enabled | | boolean | | event.deviceguard.credentialguard.running | | boolean | @@ -702,6 +682,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | event.deviceguard.usermodecodeintegrity.policyenforcement | | keyword | | event.deviceguard.version | | keyword | | event.deviceguard.virtualizationbasedsecurity.status | | 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.ufi.enabled | | boolean | | host.architecture | Operating system architecture. | keyword | | host.biossn | Host BIOS Serial Number. | keyword | @@ -760,13 +741,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | tychon.id | TYCHON unique host identifier. | keyword | | tychon.version.agent | | version | | tychon.version.content | | version | - - -### Endpoint Network Adapters Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Network Adapters Information + +The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -779,9 +760,9 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | keyword | -| event.ingested | | date | +| 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 | | host.adapter.alias | | keyword | | host.adapter.description | | text | | host.adapter.dhcp.enabled | | boolean | @@ -847,13 +828,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Software Inventory Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Software Inventory Information + +The TYCHON script scans an endpoint's Software Inventory and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -871,11 +852,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -938,13 +919,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -1055,13 +1036,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | - - -### Endpoint Volume Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint Volume Information + +The TYCHON script scans an endpoint's Volume Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -1079,11 +1060,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | | match_only_text | +| error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.ingested | | date | +| 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.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 | @@ -1147,4 +1128,4 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | volume.serial_number | | keyword | | volume.size | | long | | volume.system_volume | | boolean | - + diff --git a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml index d9649922621..71e2648cddd 100644 --- a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml +++ b/packages/tychon/elasticsearch/transform/network_adapter/transform.yml @@ -1,6 +1,13 @@ source: index: - logs-tychon.tychon_networkadapter-* + query: + bool: + must: + - exists: + field: "host.adapter.ip" + - match_phrase: + event.kind: "state" dest: index: tychon_networkadapter frequency: 30m @@ -13,7 +20,7 @@ latest: - id sort: '@timestamp' _meta: - fleet_transform_version: 1.0.3 + fleet_transform_version: 1.0.5 run_as_kibana_system: false managed: true description: This transformation ensures there is a running configuration of endpoint Network Adapter Card information from TYCHON endpoints. diff --git a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 521485625af..00000000000 --- a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id": "07dc1be0-4270-11ee-83e4-c92ed141b9e5_1", - "name": "Weak WIFI Authentication in use", - "tags": [], - "interval": "5m", - "enabled": true, - "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", - "risk_score": 21, - "severity": "low", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://www.techtarget.com/searchnetworking/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", - "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 13fc38ee5ad..00000000000 --- a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "10359860-1139-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "CAT 1 IAVA Vulnerability Detected", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A category one IAVA has been detected as being vulnerable", - "risk_score": 90, - "severity": "high", - "note": "Investigator should work to patch this system for this IAVA as quickly as possible.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "10359860-1139-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 26c1c35adee..00000000000 --- a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id": "11481830-426d-11ee-83e4-c92ed141b9e5_1", - "name": "Large number of failed Vulnerabilities ", - "tags": [ - "CVE", - "TYCHON" - ], - "interval": "1h", - "enabled": true, - "description": "This endpoint has been determined to have a high number of total vulnerabilities failed, this can indicate an extremely exposed endpoint.", - "risk_score": 73, - "severity": "high", - "note": "Due to the high number of failed CVE checks, it is recommended that the security administrator quarantine this system immediately and bring the machine up to date with all patches. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-3900s", - "rule_id": "5be38411-3902-4686-8209-1ab75a6d3847", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "threshold", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.result : \"fail\" ", - "filters": [], - "threshold": { - "field": [ - "tychon.id" - ], - "value": 30, - "cardinality": [] - }, - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 95c753db703..00000000000 --- a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id": "17a4a660-4111-11ee-83e4-c92ed141b9e5_1", - "name": "Past Due Vulnerability Failed", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON tracks when vulnerabilities are past expiration to ensure systems are patched before exploits are released or to reduce the attack surface of the endpoint. Due dates are generated from 3 rules:\n1. CISA - Exact CISA Due Date\n2. IAVA - 18 Days from when TYCHON records an IAVA is released\n3. NVD - If a Vulnerability is marked as critical, the due date is generated as 30 days after its release.", - "risk_score": 99, - "severity": "critical", - "note": "Analysts should quarantine hosts that have out-of-date vulnerabilities, these are normally weaknesses that have active exploits in the wild. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "beeea32f-31ba-4be8-9e2c-14de47280aac", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://www.cisa.gov/known-exploited-vulnerabilities-catalog" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.result : \"fail\" and vulnerability.due_date < now", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 24d5cf80b8f..00000000000 --- a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "id": "2e5a7e20-1137-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "Windows Defender Feature Reported as Disabled", - "tags": [ - "TYCHON", - "EPP", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A Feature in Windows Defender has been set to disabled in the latest report from the TYCHON Agentless Module", - "risk_score": 60, - "severity": "medium", - "note": "Analysts should look into the history of this endpoint to figure out when the feature was disabled and work to re-enable the feature.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "2e5a7e20-1137-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [ - { - "id": "T1089", - "reference": "https://attack.mitre.org/techniques/T1089", - "name": "Disabling Security Tools", - "subtechnique": [] - } - ] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 64926bf7e5a..00000000000 --- a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "2e9c9ac0-1138-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "Critical Vulnerability Failed", - "tags": [ - "TYCHON", - "CCRI", - "CVE" - ], - "interval": "5m", - "enabled": true, - "description": "A vulnerability that has been categorized as Critical by NVD has been reported as failed.", - "risk_score": 90, - "severity": "high", - "note": "Investigators should get systems with critical vulnerabilities patched and ensure mitigations are in place while the system is vulenrable.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "2e9c9ac0-1138-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 39c855a4d7b..00000000000 --- a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id": "38a72d20-426e-11ee-83e4-c92ed141b9e5_1", - "name": "TPM Compliance Failed", - "tags": [ - "TYCHON", - "STIG" - ], - "interval": "5m", - "enabled": true, - "description": "This host has been determined by TYCHON to be non-compliant with the Trusted Platform Module (TPM), this is due to it being not present or at the wrong version.", - "risk_score": 47, - "severity": "medium", - "note": "Enable TPM 2.0 on this machine, if it is unable to be enabled because the host does not support it, determine the risk and take appropriate measures.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0006", - "reference": "https://attack.mitre.org/tactics/TA0006", - "name": "Credential Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "host.tpm.compliant : false ", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 7d379786d15..00000000000 --- a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "3a1028a0-4292-11ee-83e4-c92ed141b9e5_1", - "name": "TYCHON Benchmark SCAP Definition File Out of Date", - "tags": [ - "TYCHON", - "SCAP" - ], - "interval": "24h", - "enabled": true, - "description": "TYCHON updates its SCAP definitions daily and should be no more than 120 days old to ensure you are working from the most up-to-date requirements and settings. ", - "risk_score": 47, - "severity": "medium", - "note": "TYCHON Definitions are updated daily, check the local host logs and see if there are issues with TYCHON definitions updating. You can obtain the latest version from the TYCHON support site.\n\nhttps://support.tychon.io", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-86460s", - "rule_id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [], - "to": "now", - "references": [ - "https://support.tychon.io" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "tychon.definition.stig < \"now-120d\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index d77553fc873..00000000000 --- a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "75197a50-428d-11ee-83e4-c92ed141b9e5_1", - "name": "TYCHON Vulnerability Definitions Out of Date", - "tags": [ - "TYCHON", - "CVE" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON updates its definitions daily for vulnerability checks, if systems are too far out of date you are not getting the results for the most recent vulnerabilities further affecting your attack surface.", - "risk_score": 73, - "severity": "high", - "note": "Review the endpoint event logs and determine why TYCHON definitions are not being updated and pushed. Ensure you have downloaded the latest definition installers from the TYCHON support site.\n\nhttps://support.tychon.io", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [], - "to": "now", - "references": [ - "https://support.tychon.io" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "tychon.definition.oval < \"now-30d\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 5e2befb15ae..00000000000 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id": "867e3450-1139-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "High STIG/SCAP Check Failed", - "tags": [ - "TYCHON", - "CCRI", - "SCAP" - ], - "interval": "5m", - "enabled": true, - "description": "A High Severity STIG/SCAP Check failed on an endpoint.", - "risk_score": 60, - "severity": "medium", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "867e3450-1139-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "query": "rule.result : \"fail\" and rule.severity : \"high\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json deleted file mode 100644 index d9dafd8ca1c..00000000000 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "934a39a0-1138-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "High Vulnerability Failed", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A host with a high-severity CVE was flagged as being vulnerable.", - "risk_score": 60, - "severity": "medium", - "note": "Investigator should work to resolve this patch and keep a close monitor on this endpoint.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "934a39a0-1138-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index e0f44eec534..00000000000 --- a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "afdf3de0-4289-11ee-83e4-c92ed141b9e5_1", - "name": "New Device Discovered", - "tags": [ - "TYCHON", - "ARP" - ], - "interval": "8h", - "enabled": false, - "description": "TYCHON pulls the ARP tables from endpoints, when new devices are found they should be investigated and validated.", - "risk_score": 21, - "severity": "low", - "note": "New devices come online and offline constantly, the MAC address should be investigated and resolved.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-32400s", - "rule_id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0007", - "reference": "https://attack.mitre.org/tactics/TA0007", - "name": "Discovery" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "new_terms", - "query": "not destination.mac : \"ff-ff-ff-ff-ff-ff\" ", - "new_terms_fields": [ - "destination.mac" - ], - "history_window_start": "now-7d", - "filters": [], - "language": "kuery", - "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index d1f291155f6..00000000000 --- a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id": "b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1", - "name": "High number of SCAP Failures", - "tags": [ - "TYCHON", - "CCRI" - ], - "interval": "1h", - "enabled": true, - "description": "TYCHON has reported a high number of SCAP failures for an endpoint. This can indicate a very weak security posture for an endpoint.", - "risk_score": 47, - "severity": "medium", - "note": "The system may need to be isolated. Investigate the SCAP results for this system and perform fixes for all High and Medium checks. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-3660s", - "rule_id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0007", - "reference": "https://attack.mitre.org/tactics/TA0007", - "name": "Discovery" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "threshold", - "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", - "filters": [], - "threshold": { - "field": [ - "tychon.id" - ], - "value": 20, - "cardinality": [] - }, - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 65864f9665a..00000000000 --- a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "id": "cb5715c0-426b-11ee-83e4-c92ed141b9e5_1", - "name": "Endpoint Security Definitions are Out of Date", - "tags": [ - "EPP", - "TYCHON" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON has reported that the registered endpoint protection platform is out of date and needs to be updated.", - "risk_score": 73, - "severity": "high", - "note": "Depending on the Endpoint Protection Vendor, you will need to push new updated to this endpoint. See the vendor's user guides to determine how to install the most recent AV updates.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "host.security.antivirus.status : *OutOfDate*", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index e2aa75c2a01..00000000000 --- a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "id": "edcdabf0-4275-11ee-83e4-c92ed141b9e5_1", - "name": "System Volume Mounted to Drive", - "tags": [ - "TYCHON", - "Volume" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON has reported that the system volume has been mounted to a drive letter.", - "risk_score": 47, - "severity": "medium", - "note": "Investigate and determine how the drive was mounted and remove the mount if it was done maliciously.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "d0d735ed-08fe-4393-9aa6-120236995152", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "reference": "https://attack.mitre.org/tactics/TA0004", - "name": "Privilege Escalation" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "query": "volume.system_volume : true and not volume.drive.letter : \"\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json deleted file mode 100644 index 5afd9afcbcc..00000000000 --- a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#13814a", - "description": "TYCHON reported TCP and UDP ports that are or were open and listening on endpoints.", - "name": "Open Ports" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T16:33:49.204Z", - "id": "026431f0-3de5-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T16:33:49.204Z", - "version": "WzY4MDI0OCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json deleted file mode 100644 index 02f1818c36b..00000000000 --- a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#9b2767", - "description": "TYCHON capture of Network adapters attached to endpoints.", - "name": "Network Adapter" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T13:07:53.023Z", - "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-23T13:07:53.023Z", - "version": "WzgwNjc5OSwyMl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json deleted file mode 100644 index 1966387148d..00000000000 --- a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#c30936", - "description": "TYCHON installed software and apps found on an endpoint.", - "name": "Applications" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T19:26:40.105Z", - "id": "27edf330-3dfd-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T19:26:40.105Z", - "version": "WzY4MzIzMiwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json deleted file mode 100644 index 048fdbea840..00000000000 --- a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#2075cf", - "description": "A Command Cyber Readiness Inspection Report", - "name": "CCRI" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T11:45:03.146Z", - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T11:45:03.146Z", - "version": "WzI3Njg3MSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json deleted file mode 100644 index f42c93f4b85..00000000000 --- a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#75899c", - "description": "This tag indicates a \"Starting Point\" for dashboards that utulize drill downs.", - "name": "TYCHON Primary View" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T12:04:15.710Z", - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T12:04:15.710Z", - "version": "WzY3MzY3MCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json deleted file mode 100644 index 0ae58cbedb9..00000000000 --- a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#154a15", - "description": "The hardware detected by TYCHON as attached to an endpoint", - "name": "Hardware" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T20:04:47.768Z", - "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T20:04:47.768Z", - "version": "WzY4NDA2NCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json deleted file mode 100644 index 96242830e19..00000000000 --- a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#85ed08", - "description": "Hard Drives on Computers", - "name": "Drives" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T21:03:21.673Z", - "id": "7f851220-3d41-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T21:03:21.673Z", - "version": "WzY2MTI0MSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json deleted file mode 100644 index 73bff95d68b..00000000000 --- a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#58b7ff", - "description": "Vulnerability Information", - "name": "CVE" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T13:28:01.234Z", - "id": "9c222660-1100-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T13:28:01.234Z", - "version": "WzI4MTM1OSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json deleted file mode 100644 index b95776ef16b..00000000000 --- a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#efe009", - "description": "The TYCHON Endpoint Browser allows a user to see detailed Endpoint Reported data for a single host.", - "name": "Endpoint Browser" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T16:45:29.125Z", - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T16:45:29.125Z", - "version": "WzY4MDQ3NSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json deleted file mode 100644 index 73f480ee196..00000000000 --- a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#14d15e", - "description": "Endpoint Protection Statuses", - "name": "EPP" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T19:33:57.192Z", - "id": "bae88930-1133-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T19:33:57.192Z", - "version": "WzI4NTA4OSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json deleted file mode 100644 index dddf54941d5..00000000000 --- a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#AA6556", - "description": "Routing Tables from Systems", - "name": "ARP" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T22:24:09.990Z", - "id": "c957d710-3d4c-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T22:24:09.990Z", - "version": "WzY2MzYyNiwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json deleted file mode 100644 index 2bee4b97775..00000000000 --- a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#afaddf", - "description": "Master Endpoint Record", - "name": "MER" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-16T22:40:20.761Z", - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-16T22:40:20.761Z", - "version": "WzYzNTA3MSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json deleted file mode 100644 index 76f5c76268f..00000000000 --- a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#bcbc9c", - "description": "Virtualization Based Security", - "name": "VBS" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T21:49:31.431Z", - "id": "f26ce820-3d47-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T21:49:31.431Z", - "version": "WzY2MjY4NywxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json deleted file mode 100644 index a3878a8d2aa..00000000000 --- a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "attributes": { - "description": "TYCHON Browser is a series of dashbaords dirlling into indvidual datasets for a single computer.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "title": "[TYCHON] Endpoint Browser -Main Navigation", - "uiStateJSON": "{}", - "version": 1, - "visState": "{\"title\":\"[TYCHON] Endpoint Browser -Main Navigation\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Network Cards](/app/dashboards#/view/1af57010-41b6-11ee-83e4-c92ed141b9e5) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | [Benchmark Results](/app/dashboards#/view/e1c9c490-41a5-11ee-83e4-c92ed141b9e5) | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | [Protections](/app/dashboards#/view/b85e87c0-41ab-11ee-83e4-c92ed141b9e5)\"}}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T21:04:08.909Z", - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "migrationVersion": { - "visualization": "8.5.0" - }, - "references": [ - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "visualization", - "updated_at": "2023-08-23T21:04:08.909Z", - "version": "WzgyMjAyOSwyMl0=" -} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 402c152bac5..191a8c4fe7c 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.33 +version: 0.0.51 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 113f307d58a63f9801171eea0126956725357a78 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 21 Sep 2023 13:11:39 +0000 Subject: [PATCH 55/65] Updated README for OS support --- packages/tychon/docs/README.md | 191 +++++++++++++++++---------------- 1 file changed, 96 insertions(+), 95 deletions(-) diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 407fc49c0ab..1836d5bd952 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -1,20 +1,21 @@ -# TYCHON Agentless - -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) - -## Compatibility - -* This integration supports Windows 10 and Windows 11 Endpoint Operating Systems. -* This integration requires a TYCHON Agentless license. -* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. -* This integration supports Elastic 8.8+. - -## Returned Data Fields -### ARP Table Information - -TYCHON scans Endpoint ARP Tables and returns the results. - -**Exported fields** +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows and RedHat/CENTOS Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. +* The Linux Endpoint requires RedHat's [OpenScap](https://www.open-scap.org/tools/openscap-base/) to be installed for STIG and CVE to report data. +* This integration supports Elastic 8.8+. + +## Returned Data Fields +### ARP Table Information + +TYCHON scans Endpoint ARP Tables and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -91,13 +92,13 @@ TYCHON scans Endpoint ARP Tables and returns the results. | script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint CPU's and returns the results. - -**Exported fields** + + +### Vulnerablities + +TYCHON scans for Endpoint CPU's and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -175,13 +176,13 @@ TYCHON scans for Endpoint CPU's and returns the results. | script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint vulenrabilites and returns the results. - -**Exported fields** + + +### Vulnerablities + +TYCHON scans for Endpoint vulenrabilites and returns the results. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -262,13 +263,13 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | | vulnerability.version | Version Number of the Scan. | keyword | | vulnerability.year | Common Vulnerabilities and Exposures Year. | integer | - - -### Endpoint Protection Platform - -TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** + + +### Endpoint Protection Platform + +TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -371,13 +372,13 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | | windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | | windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | - - -### Endpoint Exposed Services Information - -The TYCHON script to scan Endpoint Exposed Services and returns information. - -**Exported fields** + + +### Endpoint Exposed Services Information + +The TYCHON script to scan Endpoint Exposed Services and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -464,13 +465,13 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | source.port | Port of the source. | long | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hard Drive Information - -The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. - -**Exported fields** + + +### Endpoint Hard Drive Information + +The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -564,13 +565,13 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hardware Information - -The TYCHON script scans an endpoint's Hardware Configurations and returns information. - -**Exported fields** + + +### Endpoint Hardware Information + +The TYCHON script scans an endpoint's Hardware Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -647,13 +648,13 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Host OS Information - -The TYCHON script scans an endpoint's OS Configurations and returns information. - -**Exported fields** + + +### Endpoint Host OS Information + +The TYCHON script scans an endpoint's OS Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -741,13 +742,13 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | tychon.id | TYCHON unique host identifier. | keyword | | tychon.version.agent | | version | | tychon.version.content | | version | - - -### Endpoint Network Adapters Information - -The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. - -**Exported fields** + + +### Endpoint Network Adapters Information + +The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -828,13 +829,13 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Software Inventory Information - -The TYCHON script scans an endpoint's Software Inventory and returns information. - -**Exported fields** + + +### Endpoint Software Inventory Information + +The TYCHON script scans an endpoint's Software Inventory and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -919,13 +920,13 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** + + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -1036,13 +1037,13 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | - - -### Endpoint Volume Information - -The TYCHON script scans an endpoint's Volume Configurations and returns information. - -**Exported fields** + + +### Endpoint Volume Information + +The TYCHON script scans an endpoint's Volume Configurations and returns information. + +**Exported fields** **Exported fields** | Field | Description | Type | @@ -1128,4 +1129,4 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | volume.serial_number | | keyword | | volume.size | | long | | volume.system_volume | | boolean | - + From 17d6d593705912849caf4109ce791ead07fe2e09 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Mon, 25 Sep 2023 18:00:03 -0400 Subject: [PATCH 56/65] Updated pipeline tests. --- packages/tychon/changelog.yml | 2 +- .../_dev/test/pipeline/test-arp.json | 10 +- .../test/pipeline/test-arp.json-expected.json | 118 ++++--- .../elasticsearch/ingest_pipeline/default.yml | 23 +- .../data_stream/tychon_arp/fields/agent.yml | 4 +- .../data_stream/tychon_arp/fields/fields.yml | 22 +- .../data_stream/tychon_arp/manifest.yml | 4 +- .../_dev/test/pipeline/test-cpu.json | 51 ++- .../test/pipeline/test-cpu.json-expected.json | 132 +++++--- .../elasticsearch/ingest_pipeline/default.yml | 46 ++- .../data_stream/tychon_cpu/fields/agent.yml | 4 +- .../data_stream/tychon_cpu/manifest.yml | 4 +- .../_dev/test/pipeline/test-cve.json | 65 ++-- .../test/pipeline/test-cve.json-expected.json | 76 +++-- .../elasticsearch/ingest_pipeline/default.yml | 41 ++- .../data_stream/tychon_cve/fields/ecs.yml | 2 + .../data_stream/tychon_cve/manifest.yml | 4 +- .../_dev/test/pipeline/test-epp.json | 102 +++--- .../test/pipeline/test-epp.json-expected.json | 121 +++++-- .../elasticsearch/ingest_pipeline/default.yml | 20 +- .../data_stream/tychon_epp/fields/agent.yml | 156 +++------ .../data_stream/tychon_epp/fields/ecs.yml | 2 + .../data_stream/tychon_epp/fields/fields.yml | 149 ++++++--- .../data_stream/tychon_epp/manifest.yml | 4 +- .../test/pipeline/test-exposedservice.json | 92 ++--- .../test-exposedservice.json-expected.json | 136 +++++--- .../elasticsearch/ingest_pipeline/default.yml | 33 +- .../tychon_exposedservice/fields/agent.yml | 18 +- .../tychon_exposedservice/fields/fields.yml | 12 +- .../tychon_exposedservice/manifest.yml | 4 +- .../_dev/test/pipeline/test-harddrive.json | 124 +++---- .../test-harddrive.json-expected.json | 163 +++++---- .../elasticsearch/ingest_pipeline/default.yml | 39 ++- .../tychon_harddrive/fields/agent.yml | 18 +- .../tychon_harddrive/fields/fields.yml | 160 ++++----- .../data_stream/tychon_harddrive/manifest.yml | 2 +- .../_dev/test/pipeline/test-hardware.json | 88 ++--- .../pipeline/test-hardware.json-expected.json | 121 ++++--- .../elasticsearch/ingest_pipeline/default.yml | 29 +- .../tychon_hardware/fields/agent.yml | 18 +- .../_dev/test/pipeline/test-host.json | 149 ++++----- .../pipeline/test-host.json-expected.json | 224 +++++++++---- .../elasticsearch/ingest_pipeline/default.yml | 55 ++- .../data_stream/tychon_host/fields/agent.yml | 18 +- .../data_stream/tychon_host/fields/fields.yml | 286 ++++++++-------- .../data_stream/tychon_host/manifest.yml | 4 +- .../test/pipeline/test-networkadapter.json | 139 ++++---- .../test-networkadapter.json-expected.json | 184 ++++++---- .../elasticsearch/ingest_pipeline/default.yml | 62 +++- .../tychon_networkadapter/fields/agent.yml | 20 +- .../tychon_networkadapter/fields/fields.yml | 260 +++++++-------- .../tychon_networkadapter/manifest.yml | 4 +- .../_dev/test/pipeline/test-patch.json | 52 +++ .../test/pipeline/test-patch.json-config.yml | 3 + .../pipeline/test-patch.json-expected.json | 94 ++++++ .../tychon_patch/agent/stream/stream.yml.hbs | 23 ++ .../elasticsearch/ingest_pipeline/default.yml | 107 ++++++ .../data_stream/tychon_patch/fields/agent.yml | 110 ++++++ .../tychon_patch/fields/base-fields.yml | 21 ++ .../data_stream/tychon_patch/fields/ecs.yml | 68 ++++ .../tychon_patch/fields/fields.yml | 31 ++ .../data_stream/tychon_patch/manifest.yml | 32 ++ .../test/pipeline/test-softwareinventory.json | 106 +++--- .../test-softwareinventory.json-expected.json | 139 +++++--- .../elasticsearch/ingest_pipeline/default.yml | 56 +++- .../tychon_softwareinventory/fields/agent.yml | 18 +- .../tychon_softwareinventory/manifest.yml | 4 +- .../_dev/test/pipeline/test-stig.json | 119 +++---- .../pipeline/test-stig.json-expected.json | 87 ++--- .../elasticsearch/ingest_pipeline/default.yml | 37 ++- .../data_stream/tychon_stig/fields/agent.yml | 156 +++------ .../data_stream/tychon_stig/fields/ecs.yml | 2 + .../data_stream/tychon_stig/fields/fields.yml | 39 +-- .../data_stream/tychon_stig/manifest.yml | 4 +- .../_dev/test/pipeline/test-volumes.json | 109 +++--- .../pipeline/test-volumes.json-expected.json | 144 +++++--- .../elasticsearch/ingest_pipeline/default.yml | 55 ++- .../tychon_volume/fields/agent.yml | 18 +- .../tychon_volume/fields/fields.yml | 70 ++-- .../data_stream/tychon_volume/manifest.yml | 4 +- packages/tychon/docs/README.md | 313 +++++++++--------- ...7dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json | 48 +++ ...0359860-1139-11ee-af86-538da1394f27_1.json | 54 +++ ...1481830-426d-11ee-83e4-c92ed141b9e5_1.json | 57 ++++ ...7a4a660-4111-11ee-83e4-c92ed141b9e5_1.json | 53 +++ ...e5a7e20-1137-11ee-af86-538da1394f27_1.json | 61 ++++ ...e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 54 +++ ...8a72d20-426e-11ee-83e4-c92ed141b9e5_1.json | 52 +++ ...a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json | 42 +++ ...5197a50-428d-11ee-83e4-c92ed141b9e5_1.json | 42 +++ ...67e3450-1139-11ee-af86-538da1394f27_1.json | 53 +++ ...34a39a0-1138-11ee-af86-538da1394f27_1.json | 54 +++ ...fdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json | 54 +++ ...85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json | 57 ++++ ...b5715c0-426b-11ee-83e4-c92ed141b9e5_1.json | 50 +++ ...dcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json | 50 +++ .../026431f0-3de5-11ee-9610-15dee918f31a.json | 17 + .../11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 + .../27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 + .../39b55820-10f2-11ee-af86-538da1394f27.json | 17 + .../5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 + .../7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 + .../7f851220-3d41-11ee-9610-15dee918f31a.json | 17 + .../9c222660-1100-11ee-af86-538da1394f27.json | 17 + .../a3922360-3de6-11ee-9610-15dee918f31a.json | 17 + .../bae88930-1133-11ee-af86-538da1394f27.json | 17 + .../c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 + .../e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 + .../f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 + .../ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 ++ packages/tychon/manifest.yml | 2 +- 111 files changed, 4489 insertions(+), 2193 deletions(-) create mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json create mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-config.yml create mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs create mode 100644 packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml create mode 100644 packages/tychon/data_stream/tychon_patch/fields/agent.yml create mode 100644 packages/tychon/data_stream/tychon_patch/fields/base-fields.yml create mode 100644 packages/tychon/data_stream/tychon_patch/fields/ecs.yml create mode 100644 packages/tychon/data_stream/tychon_patch/fields/fields.yml create mode 100644 packages/tychon/data_stream/tychon_patch/manifest.yml create mode 100644 packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json create mode 100644 packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json create mode 100644 packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json create mode 100644 packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 88fabe2c0c2..467dc04617b 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.51 +- version: 0.0.53 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json index e4ec995b69a..4309380a3fd 100644 --- a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json @@ -3,13 +3,15 @@ { "script.type": "powershell", "host.os.build": "22621", - "host.ip": "10.154.5.200", + "host.ip": [ + "10.154.5.200" + ], "host.hostname": "DESKTOP-AF7CIQM", "host.os.name": "Microsoft Windows 11 Pro", "host.hardware.manufacturer": "Dell Inc.", "@timestamp": "2023-08-16T05:22:36Z", "script.start": "2023-08-16T05:22:36Z", - "destination.mac": "00-09-0f-aa-00-02", + "destination.mac": "00-09-0F-AA-00-02", "host.hardware.owner": "james_sudbury@msn.com", "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", "destination.hostname": "Request timed out (700 ms)", @@ -25,7 +27,9 @@ "destination.name": "Request timed out (700 ms)", "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.mac": "60:E3:2B:4B:40:E2", + "host.mac": [ + "60:E3:2B:4B:40:E2" + ], "network.interface": "Ethernet 3", "host.oem.model": "XPS 17 9710", "host.uptime": "594263.4592614", diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json index 3fc6eb5eec8..a82189f595f 100644 --- a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json @@ -1,47 +1,85 @@ { "expected": [ { - "script.type": "powershell", - "host.os.build": "22621", - "host.ip": "10.154.5.200", - "host.hostname": "DESKTOP-AF7CIQM", - "host.os.name": "Microsoft Windows 11 Pro", - "host.hardware.manufacturer": "Dell Inc.", - "@timestamp": "2023-08-16T05:22:36Z", - "script.start": "2023-08-16T05:22:36Z", - "destination.mac": "00-09-0f-aa-00-02", - "host.hardware.owner": "james_sudbury@msn.com", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "destination.hostname": "Request timed out (700 ms)", - "host.os.organization": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200", - "host.os.version": "2009", - "network.direction": "external", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "network.type": "IPv4", - "destination.name": "Request timed out (700 ms)", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.mac": "60:E3:2B:4B:40:E2", - "network.interface": "Ethernet 3", - "host.oem.model": "XPS 17 9710", - "host.uptime": "594263.4592614", + "@timestamp": "2023-09-25T21:55:23.418865635Z", + "destination": { + "hostname": "Request timed out (700 ms)", + "ip": "10.70.4.16", + "mac": "00-09-0F-AA-00-02", + "name": "Request timed out (700 ms)" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "ingested": "2023-09-25T21:55:23.418865635Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "domain": "", + "hardware": { + "bios": { + "name": "Dell Inc.", + "version": "1.20.1" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 141 Stepping 1" + }, + "manufacturer": "Dell Inc.", + "owner": "james_sudbury@msn.com", + "serial_number": "HYLCKG3" + }, + "hostname": "DESKTOP-AF7CIQM", + "id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "ip": [ + "10.154.5.200" + ], + "ipv4": [ + "10.154.5.200" + ], + "ipv6": "fe80::c2c9:f4e0:eb65:2c33", + "mac": [ + "60-E3-2B-4B-40-E2" + ], + "oem": { + "manufacturer": "Dell", + "model": "XPS 17 9710" + }, + "os": { + "build": "22621", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 594263, + "workgroup": "WORKGROUP" + }, "id": "DESKTOP-AF7CIQM#6#10.70.4.15#10.70.4.16", - "script.current_time": "2023-08-16T05:22:37Z", - "script.name": "Get-TychonArpInfo.ps1", - "network.state": "dynamic", - "script.version": "2.3.53.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "script.current_duration": "1809.94", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", - "destination.ip": "10.70.4.16", - "host.hardware.bios.version": "1.20.1", - "host.domain": "", - "host.os.family": "Windows" + "network": { + "direction": "external", + "interface": "Ethernet 3", + "state": "dynamic", + "type": "IPv4" + }, + "script": { + "current_duration": 1809.94, + "current_time": "2023-08-16T05:22:37Z", + "name": "Get-TychonArpInfo.ps1", + "start": "2023-08-16T05:22:36Z", + "type": "powershell", + "version": "2.3.53.0" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index b3256bbccb0..05580cd8939 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -22,9 +22,14 @@ processors: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.category - value: arp + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -38,6 +43,16 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [network] + - set: + field: event.type + value: [info] - convert: field: script.current_duration type: float @@ -48,4 +63,4 @@ on_failure: value: pipeline_error - append: field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file + value: "{{ _ingest.on_failure_message }}" \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/data_stream/tychon_arp/fields/agent.yml index efacb477dd9..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: version + type: keyword - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_arp/fields/fields.yml b/packages/tychon/data_stream/tychon_arp/fields/fields.yml index 19998af0b2d..796b93593cd 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/fields.yml @@ -1,17 +1,17 @@ - name: destination type: group fields: - - name: hostname - type: keyword - description: The Translated Hostname of the IP in the ARP Table - - name: name - type: keyword + - name: hostname + type: keyword + description: The Translated Hostname of the IP in the ARP Table + - name: name + type: keyword - name: network type: group fields: - - name: interface - type: keyword - description: The interface the ARP Table has associated the destination. - - name: state - type: keyword - description: Current state \ No newline at end of file + - name: interface + type: keyword + description: The interface the ARP Table has associated the destination. + - name: state + type: keyword + description: Current state diff --git a/packages/tychon/data_stream/tychon_arp/manifest.yml b/packages/tychon/data_stream/tychon_arp/manifest.yml index 4c387a8bacc..6e2a2a3ce40 100644 --- a/packages/tychon/data_stream/tychon_arp/manifest.yml +++ b/packages/tychon/data_stream/tychon_arp/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json index d30a84f187b..6a6227d519b 100644 --- a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json @@ -1,53 +1,52 @@ { "events": [ { - "host.cpu.number_of_logical_processors": [ - "1", - "1" + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.cpu.number_of_logical_processors": "1", + "host.os.build": "19045", + "host.ip": [ + "10.1.9.51" ], - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "host.uptime": "663163.9355573", - "host.hostname": "DESKTOP-TIUKL1R", + "host.uptime": "348628.5649737", + "host.hostname": "BOTANYBAYEP1", "host.hardware.manufacturer": "VMware, Inc.", - "@timestamp": "2023-08-16T22:23:24Z", - "script.start": "2023-08-16T22:23:24Z", - "host.os.name": "Microsoft Windows 11 Education N", + "script.start": "2023-09-22T17:04:17Z", + "host.os.name": "Microsoft Windows 10 Pro", "host.cpu.number_of_cores": "1", "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", "host.os.organization": "", - "host.hardware.owner": "dcuser", + "host.hardware.owner": "admin", "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.ipv4": "10.1.9.112", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", "host.cpu.manufacturer": "GenuineIntel", "host.hardware.bios.name": "Phoenix Technologies LTD", "host.type": "Workstation", - "host.cpu.virtualization_firmware_enabled": [ - "false", - "false" - ], + "host.cpu.virtualization_firmware_enabled": "true", "host.cpu.name": "Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", "script.type": "powershell", "host.cpu.speed": "2400", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "host.oem.model": "", "host.cpu.family": "Unknown", - "id": "DESKTOP-TIUKL1R#CPU0#0FABFBFF000206D7", - "script.current_time": "2023-08-16T22:26:30Z", + "id": "BOTANYBAYEP1#CPU0#0FABFBFF000206D7", + "script.current_time": "2023-09-22T17:04:25Z", "script.name": "Get-TychonCpuInfo.ps1", - "script.version": "2.3.58.0", + "script.version": "2.3.141.0", "host.cpu.clockspeed": "2400", "host.oem.manufacturer": "", "host.os.description": "", "host.os.version": "2009", - "script.current_duration": "185267.77", - "host.ipv6": "fe80::40d1:5287:42b9:5645", + "script.current_duration": "8011.80", + "host.ipv6": "", "host.hardware.bios.version": "6.00", "host.domain": "", - "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.cloud.hosted": "false", "host.os.family": "Windows" } ] diff --git a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json index 3f4ba317142..0c7ea16482a 100644 --- a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json @@ -1,54 +1,90 @@ { "expected": [ { - "host.cpu.number_of_logical_processors": [ - "1", - "1" - ], - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "host.uptime": "663163.9355573", - "host.hostname": "DESKTOP-TIUKL1R", - "host.hardware.manufacturer": "VMware, Inc.", - "@timestamp": "2023-08-16T22:23:24Z", - "script.start": "2023-08-16T22:23:24Z", - "host.os.name": "Microsoft Windows 11 Education N", - "host.cpu.number_of_cores": "1", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "dcuser", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.ipv4": "10.1.9.112", - "host.cpu.manufacturer": "GenuineIntel", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "host.cpu.virtualization_firmware_enabled": [ - "false", - "false" - ], - "host.cpu.name": "Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz", - "script.type": "powershell", - "host.cpu.speed": "2400", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", - "host.oem.model": "", - "host.cpu.family": "Unknown", - "id": "DESKTOP-TIUKL1R#CPU0#0FABFBFF000206D7", - "script.current_time": "2023-08-16T22:26:30Z", - "script.name": "Get-TychonCpuInfo.ps1", - "script.version": "2.3.58.0", - "host.cpu.clockspeed": "2400", - "host.oem.manufacturer": "", - "host.os.description": "", - "host.os.version": "2009", - "script.current_duration": "185267.77", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.hardware.bios.version": "6.00", - "host.domain": "", - "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:23.632476469Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "configuration" + ], + "ingested": "2023-09-25T21:55:23.632476469Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7", + "clockspeed": 2400, + "family": "Unknown", + "manufacturer": "GenuineIntel", + "name": "Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz", + "number_of_cores": "1", + "number_of_logical_processors": "1", + "speed": 2400, + "virtualization_firmware_enabled": "true" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 348628, + "workgroup": "WORKGROUP" + }, + "id": "BOTANYBAYEP1#CPU0#0FABFBFF000206D7", + "script": { + "current_duration": 8011.8, + "current_time": "2023-09-22T17:04:25Z", + "name": "Get-TychonCpuInfo.ps1", + "start": "2023-09-22T17:04:17Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index 110bf6e21e0..41090539845 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -16,6 +16,31 @@ processors: field: host.ipv4 separator: "," ignore_missing: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true - set: field: event.kind value: state @@ -24,28 +49,31 @@ processors: value: tychon - set: field: event.category - value: cpu + value: [configuration] + - set: + field: event.type + value: [info] - gsub: field: host.cpu.speed pattern: "[^0-9]" replacement: "" + - convert: + field: host.cpu.speed + type: long + ignore_missing: true - gsub: field: host.cpu.clockspeed pattern: "[^0-9]" replacement: "" + - convert: + field: host.cpu.clockspeed + type: long + ignore_missing: true - split: field: host.uptime separator: "\\.+" target_field: tempuptime ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml index efacb477dd9..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: version + type: keyword - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_cpu/manifest.yml b/packages/tychon/data_stream/tychon_cpu/manifest.yml index b4175c56c09..82a7fb19357 100644 --- a/packages/tychon/data_stream/tychon_cpu/manifest.yml +++ b/packages/tychon/data_stream/tychon_cpu/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json index 926b271cd75..c72268428c3 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -1,51 +1,54 @@ { "events": [ { - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.domain": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.cloud.hosted": false, + "host.domain": null, "host.hardware.bios.name": "Phoenix Technologies LTD", "host.hardware.bios.version": "6.00", "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.owner": "dcuser", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.hostname": "DESKTOP-TIUKL1R", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.ip": "10.1.9.112", - "host.ipv4": "10.1.9.112", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.mac": "00:0C:29:EF:9A:EB", + "host.hardware.owner": "admin", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.hostname": "BOTANYBAYEP1", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.ip": "10.1.9.51", + "host.ipv4": "10.1.9.51", + "host.ipv6": "", + "host.mac": "00:0C:29:93:6A:F3", "host.oem.manufacturer": "", "host.oem.model": "", - "host.os.build": "22000", + "host.os.build": "19045", "host.os.description": "", "host.os.family": "Windows", - "host.os.name": "Microsoft Windows 11 Education N", + "host.os.name": "Microsoft Windows 10 Pro", "host.os.organization": "", - "host.os.version": "10.0.22000", + "host.os.version": "2009", "host.type": "Workstation", - "host.uptime": 145287, + "host.uptime": 312557.8520254, "host.workgroup": "WORKGROUP", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", - "script.current_duration": "315381.28", - "script.current_time": "2023-06-15T21:58:02Z", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_CVE-2022-24501", + "script.current_duration": "910425.42", + "script.current_time": "2023-09-22T07:18:16Z", "script.name": "Invoke-CveScan.ps1", - "script.start": "2023-06-15T21:52:47Z", + "script.start": "2023-09-22T07:03:05Z", "script.type": "powershell", - "script.version": "0.1.0", + "script.version": "2.3.141.0", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "vulnerability.classification": "vulnerability", - "vulnerability.iava": "2013-A-0227", - "vulnerability.iava_severity": "CAT II", - "vulnerability.id": "CVE-2013-3900", - "vulnerability.reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "vulnerability.result": "fail", - "vulnerability.scanner.vendor": "TYCHON", - "vulnerability.score.base": "7.60", - "vulnerability.score.version": "2.0", - "vulnerability.severity": "HIGH", - "vulnerability.title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", - "vulnerability.version": 1, - "vulnerability.year": "2013" + "vulnerability.due_date": "", + "vulnerability.due_date_reason": "", + "vulnerability.iava": "", + "vulnerability.iava_severity": "", + "vulnerability.id": "CVE-2022-24501", + "vulnerability.reference": "http://www.scaprepo.com/view.jsp?id=CVE-2022-24501", + "vulnerability.result": "pass", + "vulnerability.scanner.vendor": "Tychon, LLC", + "vulnerability.score.base": "6.80", + "vulnerability.severity": "MEDIUM", + "vulnerability.title": "VP9 Video Extensions Remote Code Execution Vulnerability - CVE-2022-24501", + "vulnerability.version": "1", + "vulnerability.year": "2022" } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index e9bc08095a8..aa333a929a1 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-07-28T18:14:38.394883461Z", + "@timestamp": "2023-09-25T21:55:23.823090043Z", "ecs": { "version": "8.8.0" }, @@ -9,14 +9,20 @@ "category": [ "vulnerability" ], - "ingested": "2023-07-28T18:14:38.394883461Z", + "ingested": "2023-09-25T21:55:23.823090043Z", "kind": "state", "module": "tychon", - "outcome": "failure" + "outcome": "success", + "type": [ + "info" + ] }, "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "domain": "", + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": false + }, + "domain": null, "hardware": { "bios": { "name": "Phoenix Technologies LTD", @@ -26,62 +32,68 @@ "caption": "Intel64 Family 6 Model 45 Stepping 7" }, "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": "10.1.9.51", + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": "00-0C-29-93-6A-F3", "oem": { "manufacturer": "", "model": "" }, "os": { - "build": "22000", + "build": "19045", "description": "", "family": "Windows", - "name": "Microsoft Windows 11 Education N", + "name": "Microsoft Windows 10 Pro", "organization": "", - "version": "10.0.22000" + "version": "2009" }, "type": "Workstation", - "uptime": 145287, + "uptime": 312557, "workgroup": "WORKGROUP" }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_CVE-2022-24501", "script": { - "current_duration": 315381.28, - "current_time": "2023-06-15T21:58:02Z", + "current_duration": 910425.44, + "current_time": "2023-09-22T07:18:16Z", "name": "Invoke-CveScan.ps1", - "start": "2023-06-15T21:52:47Z", + "start": "2023-09-22T07:03:05Z", "type": "powershell", - "version": "0.1.0" + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" }, "vulnerability": { "category": [ "oval" ], "classification": "cvss", + "due_date": "1970-01-01T00:00:01.000Z", + "due_date_reason": "", "enumeration": "CVE", - "iava": "2013-A-0227", - "iava_severity": "CAT II", - "id": "CVE-2013-3900", - "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", - "result": "fail", + "iava": "", + "iava_severity": "", + "id": "CVE-2022-24501", + "reference": "http://www.scaprepo.com/view.jsp?id=CVE-2022-24501", + "result": "pass", "scanner": { "vendor": "tychon" }, "score": { - "base": 7.6, - "version": "2.0" + "base": 6.8 }, - "severity": "HIGH", - "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "severity": "MEDIUM", + "title": "VP9 Video Extensions Remote Code Execution Vulnerability - CVE-2022-24501", "version": "1", - "year": 2013 + "year": 2022 } } ] diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 16286a38e4d..82680cae7cf 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -13,6 +13,15 @@ processors: field: vulnerability.due_date value: "1970-01-01T00:00:01Z" if: ctx.vulnerability.due_date == '' + - date: + field: vulnerability.due_date + target_field: vulnerability.due_date + output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX + formats: + - strict_date_optional_time + - epoch_millis + - date + - "MM/dd/yyyy" - set: field: ecs.version value: 8.8.0 @@ -26,6 +35,14 @@ processors: field: host.ipv4 separator: "," ignore_missing: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -39,9 +56,16 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true - set: field: event.category - value: vulnerability + value: [vulnerability] + - set: + field: event.type + value: [info] - script: source: | if(ctx.vulnerability?.result == 'fail'){ @@ -51,10 +75,6 @@ processors: }else{ ctx.event.outcome = "unknown" } - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - convert: field: script.current_duration type: float @@ -70,22 +90,13 @@ processors: value: tychon - set: field: vulnerability.category - value: oval + value: [oval] - set: field: vulnerability.classification value: cvss - set: field: vulnerability.enumeration value: CVE - - date: - field: vulnerability.due_date - target_field: vulnerability.due_date - output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX - formats: - - strict_date_optional_time - - epoch_millis - - date - - "MM/dd/yyyy" on_failure: - set: field: event.kind diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index 003c9bb8e07..7f4b8fb4143 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -34,6 +34,8 @@ name: host.architecture - external: ecs name: host.name +- external: ecs + name: host.uptime - external: ecs name: host.os.kernel - external: ecs diff --git a/packages/tychon/data_stream/tychon_cve/manifest.yml b/packages/tychon/data_stream/tychon_cve/manifest.yml index 4c1d2258971..b1dc5ee94f8 100644 --- a/packages/tychon/data_stream/tychon_cve/manifest.yml +++ b/packages/tychon/data_stream/tychon_cve/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json index 248a73419c4..76b6054613a 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -1,53 +1,75 @@ { "events": [ { + "trellix.service.ens.signature_version": "", + "trellix.service.dlp.status": "Unknown", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.workgroup": "WORKGROUP", + "elastic.service.agent.status": "", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.type": "Workstation", + "windows_defender.service.behavior_monitor.status": "Disabled", + "trellix.service.dlp.version": "", + "trellix.service.ma.version": "", + "script.current_duration": "9805.07", + "trellix.service.accm.version": "", + "host.oem.manufacturer": "", + "host.uptime": "352927.1521054", + "host.os.name": "Microsoft Windows 10 Pro", + "windows_defender.service.on_access_protection.status": "Disabled", + "windows_defender.service.antimalware.engine_version": "1.1.23080.2005", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "windows_defender.service.antispyware.signature_version": "1.397.1402.0", + "trellix.service.ma.status": "Unknown", + "host.os.version": "2009", + "trellix.service.ens.version": "", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "elastic.service.endpoint.malware": "detect", + "trellix.service.accm.status": "", + "host.cloud.hosted": "false", "windows_defender.service.antimalware.status": "Enabled", - "windows_defender.service.real_time_protection.status": "Enabled", - "windows_defender.service.antispyware.signature_version": "1.391.1546.0", + "host.hardware.owner": "admin", + "elastic.service.endpoint.memory_protection": "detect", + "script.version": "2.3.141.0", + "host.mac": "00:0C:29:93:6A:F3", + "windows_defender.service.antispyware.status": "Enabled", + "host.ipv6": "", + "windows_defender.service.antivirus.full_scan.signature_version": "", "script.type": "powershell", - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "windows_defender.service.antivirus.quick_scan.signature_version": "1.391.1470.0", - "host.hostname": "DESKTOP-TIUKL1R", + "host.ipv4": "10.1.9.51", + "elastic.service.endpoint.behavior_protection": "detect", + "host.domain": "", + "host.os.organization": "", + "script.start": "2023-09-22T18:15:55Z", + "host.os.family": "Windows", + "script.current_time": "2023-09-22T18:16:05Z", "host.hardware.manufacturer": "VMware, Inc.", - "windows_defender.service.antivirus.status": "Enabled", - "script.start": "2023-06-15T20:13:03Z", - "host.os.name": "Microsoft Windows 11 Education N", "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "dcuser", - "windows_defender.service.antispyware.status": "Enabled", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.9.112", - "host.os.version": "10.0.22000", - "windows_defender.service.antivirus.full_scan.signature_version": "", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "windows_defender.service.behavior_monitor.status": "Enabled", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", + "host.hardware.bios.version": "6.00", + "windows_defender.service.antimalware.product_version": "4.18.23080.2006", + "windows_defender.service.antivirus.status": "Enabled", + "host.os.build": "19045", + "windows_defender.service.ioav_protection.status": "Disabled", + "windows_defender.service.nis.engine_version": "1.1.23080.2005", + "elastic.service.endpoint.version": "", "host.oem.model": "", - "host.uptime": "139304", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "windows_defender.service.antimalware.product_version": "4.18.23050.5", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "windows_defender.service.ioav_protection.status": "Enabled", - "windows_defender.service.on_access_protection.status": "Enabled", + "host.hostname": "BOTANYBAYEP1", + "trellix.service.rsd.status": "", + "windows_defender.service.nis.signature_version": "1.397.1402.0", + "trellix.service.pa.version": "", + "windows_defender.service.antivirus.quick_scan.signature_version": "1.397.1180.0", + "trellix.service.rsd.version": "", + "elastic.service.endpoint.status": "", + "windows_defender.service.nis.status": "Disabled", + "host.ip": "10.1.9.51", + "trellix.service.pa.status": "", + "windows_defender.service.real_time_protection.status": "Disabled", "script.name": "Get-TychonEppSetting.ps1", - "windows_defender.service.antimalware.engine_version": "1.1.23050.3", - "windows_defender.service.nis.engine_version": "1.1.23050.3", - "script.version": "0.1.0", - "host.oem.manufacturer": "", + "trellix.service.ens.status": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "elastic.service.agent.version": "", "host.os.description": "", - "script.current_duration": "1129.20", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "script.current_time": "2023-06-15T20:13:04Z", - "windows_defender.service.nis.signature_version": "1.391.1546.0", - "host.hardware.bios.version": "6.00", - "windows_defender.service.nis.status": "Enabled", - "host.domain": "", - "host.os.family": "Windows" + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 00394d42a8a..2000bcf3339 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -1,20 +1,41 @@ { "expected": [ { - "@timestamp": "2023-07-28T18:14:38.878742881Z", + "@timestamp": "2023-09-25T21:55:24.027955596Z", "ecs": { "version": "8.8.0" }, + "elastic": { + "service": { + "agent": { + "status": "", + "version": "" + }, + "endpoint": { + "behavior_protection": "detect", + "malware": "detect", + "memory_protection": "detect", + "status": "", + "version": "" + } + } + }, "event": { "category": [ - "host" + "configuration" ], - "ingested": "2023-07-28T18:14:38.878742881Z", + "ingested": "2023-09-25T21:55:24.027955596Z", "kind": "state", - "module": "tychon" + "module": "tychon", + "type": [ + "info" + ] }, "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, "domain": "", "hardware": { "bios": { @@ -25,49 +46,83 @@ "caption": "Intel64 Family 6 Model 45 Stepping 7" }, "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": "10.1.9.51", + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": "00-0C-29-93-6A-F3", "oem": { "manufacturer": "", "model": "" }, "os": { - "build": "22000", + "build": "19045", "description": "", "family": "Windows", - "name": "Microsoft Windows 11 Education N", + "name": "Microsoft Windows 10 Pro", "organization": "", - "version": "10.0.22000" + "version": "2009" }, "type": "Workstation", - "uptime": 139304, + "uptime": 352927, "workgroup": "WORKGROUP" }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "script": { - "current_duration": 1129.2, - "current_time": "2023-06-15T20:13:04Z", + "current_duration": 9805.07, + "current_time": "2023-09-22T18:16:05Z", "name": "Get-TychonEppSetting.ps1", - "start": "2023-06-15T20:13:03Z", + "start": "2023-09-22T18:15:55Z", "type": "powershell", - "version": "0.1.0" + "version": "2.3.141.0" + }, + "trellix": { + "service": { + "accm": { + "status": "", + "version": "" + }, + "dlp": { + "status": "Unknown", + "version": "" + }, + "ens": { + "signature_version": "", + "status": "", + "version": "" + }, + "ma": { + "status": "Unknown", + "version": "" + }, + "pa": { + "status": "", + "version": "" + }, + "rsd": { + "status": "", + "version": "" + } + } + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" }, "windows_defender": { "service": { "antimalware": { - "engine_version": "1.1.23050.3", - "product_version": "4.18.23050.5", + "engine_version": "1.1.23080.2005", + "product_version": "4.18.23080.2006", "status": "Enabled" }, "antispyware": { - "signature_version": "1.391.1546.0", + "signature_version": "1.397.1402.0", "status": "Enabled" }, "antivirus": { @@ -75,26 +130,26 @@ "signature_version": "" }, "quick_scan": { - "signature_version": "1.391.1470.0" + "signature_version": "1.397.1180.0" }, "status": "Enabled" }, "behavior_monitor": { - "status": "Enabled" + "status": "Disabled" }, "ioav_protection": { - "status": "Enabled" + "status": "Disabled" }, "nis": { - "engine_version": "1.1.23050.3", - "signature_version": "1.391.1546.0", - "status": "Enabled" + "engine_version": "1.1.23080.2005", + "signature_version": "1.397.1402.0", + "status": "Disabled" }, "on_access_protection": { - "status": "Enabled" + "status": "Disabled" }, "real_time_protection": { - "status": "Enabled" + "status": "Disabled" } } } diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 1a31e66f028..0a966f2d258 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -20,15 +20,22 @@ processors: value: tychon - set: field: event.category - value: epp + value: [configuration] + - set: + field: event.type + value: [info] - split: field: host.ipv4 separator: "," ignore_missing: true - - set: + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: field: host.uptime - value: "0" - if: ctx.host.uptime == '' + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -46,11 +53,6 @@ processors: field: host.uptime type: long ignore_missing: true - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index 6dd345cff24..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -1,82 +1,45 @@ -- 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.' +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: tychon 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 + - name: id + description: TYCHON unique host identifier. 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.' +- name: elastic_agent type: group fields: - name: id - level: core + description: Elastic Agent Id. type: keyword - ignore_above: 1024 - description: Unique container id. - - name: image.name - level: extended + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. type: keyword - ignore_above: 1024 - description: Name of the image the container was built on. +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date - name: name - level: extended + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. type: keyword - ignore_above: 1024 - description: Container name. - name: host title: Host group: 2 @@ -85,51 +48,15 @@ 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - name: biossn description: Host BIOS Serial Number. type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. + description: Host IPv4 addresses. + type: ip - name: ipv6 - level: core + description: Host IPv6 addresses. type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - name: workgroup description: Host Workgroup Network Name. type: keyword @@ -150,19 +77,10 @@ type: keyword - name: description description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - name: hardware type: group fields: @@ -174,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index 05e44a34ee0..f2da274bda9 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -46,6 +46,8 @@ name: host.architecture - external: ecs name: host.name +- external: ecs + name: host.uptime - external: ecs name: host.os.kernel - external: ecs diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 4b80ceabc31..e802b7be25c 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -1,27 +1,3 @@ -- name: id - description: TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Current Scanner Script Duration. - type: long - - name: current_time - description: Current Script datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword - name: windows_defender group: 2 type: group @@ -89,21 +65,114 @@ - name: status description: Windows Defender Network Inspection System Status. type: keyword -- name: elastic_agent +- name: elastic + type: group + fields: + - name: service + type: group + fields: + - name: agent + type: group + fields: + - name: status + description: Elastic Service Agent Status. + type: keyword + - name: version + description: Elastic Service Agent Version. + type: version + - name: endpoint + type: group + fields: + - name: behavior_protection + description: Elastic Service Endpoint Behavior Protection. + type: keyword + - name: malware + description: Elastic Service Endpoint Malware. + type: keyword + - name: memory_protection + description: Elastic Service Endpoint Memory Protection. + type: keyword + - name: status + description: Elastic Service Endpoint Status. + type: keyword + - name: version + description: Elastic Service Endpoint Version. + type: version +- name: trellix type: group fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: host.epp.product - description: Epp products installed - type: keyword -- name: host.trellix.product - description: trellix products installed - type: keyword + - name: service + type: group + fields: + - name: accm + type: group + fields: + - name: status + description: Trellix Service Accum Status. + type: keyword + - name: version + description: Trellix Service Accum Version. + type: version + - name: dlp + type: group + fields: + - name: status + description: Trellix Service DLP Status. + type: keyword + - name: version + description: Trellix Service DLP Version. + type: version + - name: ens + type: group + fields: + - name: signature_version + description: Trellix Service ENS Signature Version. + type: keyword + - name: status + description: Trellix Service ENS Signature status. + type: keyword + - name: version + description: Trellix Service ENS Signature Version. + type: version + - name: ma + type: group + fields: + - name: status + description: Trellix Service MA Status. + type: keyword + - name: version + description: Trellix Service MA Version. + type: version + - name: pa + type: group + fields: + - name: status + description: Trellix Service PA Status. + type: keyword + - name: version + description: Trellix Service PA Version. + type: version + - name: rsd + type: group + fields: + - name: status + description: Trellix Service RSD Status. + type: keyword + - name: version + description: Trellix Service RSD Version. + type: version +- name: host + type: group + fields: + - name: epp + type: group + fields: + - name: product + description: Epp products installed + type: keyword + - name: trellix + type: group + fields: + - name: product + description: trellix products installed + type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/data_stream/tychon_epp/manifest.yml index 37d37c1eb63..83539270d37 100644 --- a/packages/tychon/data_stream/tychon_epp/manifest.yml +++ b/packages/tychon/data_stream/tychon_epp/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json index 8c33241ff6e..8e8cb3f31db 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json @@ -1,46 +1,50 @@ { - "events": [ - { - "process.name": "services.exe", - "host.os.build": "19045", - "host.ip": "192.168.0.92", - "host.hostname": "DESKTOP-BS6VECN", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-15T15:07:48Z", - "@timestamp": "2023-08-15T15:07:48Z", - "host.os.name": "Microsoft Windows 10 Home", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "host.os.organization": "", - "host.hardware.owner": "liguitarguide@gmail.com", - "host.workgroup": "WORKGROUP", - "host.ipv4": "192.168.0.92", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "process.user.name": "NT AUTHORITY\\SYSTEM", - "source.ip": "::", - "network.transport": "tcp", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "process.command_line": "", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.mac": "DC:41:A9:A0:1B:A3", - "process.pid": "1116", - "host.oem.model": "XPS 15 9500", - "host.uptime": "1234", - "script.type": "powershell", - "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", - "host.hardware.serial_number": "64H3DB3", - "script.name": "Get-ExposedServiceInfo.ps1", - "script.version": "2.3.48.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "script.current_duration": "3967.45", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "script.current_time": "2023-08-15T15:07:52Z", - "host.hardware.bios.version": "1.22.0", - "source.port": "49671", - "host.domain": "", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "process.name": "services.exe", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": ["10.1.9.51"], + "process.start": "2023-09-18T16:13:52Z", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T19:02:40Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "process.user.name": "NT AUTHORITY\\SYSTEM", + "source.ip": "::", + "network.transport": "tcp", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "process.command_line": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": ["00-0C-29-93-6A-F3"], + "process.pid": 848, + "host.oem.model": "", + "host.uptime": "614921.3194264", + "id": "BOTANYBAYEP1#::#49673#tcp", + "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-ExposedServiceInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "13538.63", + "host.ipv6": "", + "script.current_time": "2023-09-25T19:02:54Z", + "host.hardware.bios.version": "6.00", + "source.port": 49673, + "process.executable": "services.exe", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json index a0a33ce7a58..ac12640cb35 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json @@ -1,46 +1,102 @@ { "expected": [ { - "process.name": "services.exe", - "host.os.build": "19045", - "host.ip": "192.168.0.92", - "host.hostname": "DESKTOP-BS6VECN", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-15T15:07:48Z", - "@timestamp": "2023-08-15T15:07:48Z", - "host.os.name": "Microsoft Windows 10 Home", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "host.os.organization": "", - "host.hardware.owner": "liguitarguide@gmail.com", - "host.workgroup": "WORKGROUP", - "host.ipv4": "192.168.0.92", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "process.user.name": "NT AUTHORITY\\SYSTEM", - "source.ip": "::", - "network.transport": "tcp", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "process.command_line": "", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.mac": "DC:41:A9:A0:1B:A3", - "process.pid": "1116", - "host.oem.model": "XPS 15 9500", - "host.uptime": "1234", - "script.type": "powershell", - "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", - "host.hardware.serial_number": "64H3DB3", - "script.name": "Get-ExposedServiceInfo.ps1", - "script.version": "2.3.48.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "script.current_duration": "3967.45", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "script.current_time": "2023-08-15T15:07:52Z", - "host.hardware.bios.version": "1.22.0", - "source.port": "49671", - "host.domain": "", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:24.225040722Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "network" + ], + "ingested": "2023-09-25T21:55:24.225040722Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 614921, + "workgroup": "WORKGROUP" + }, + "id": "BOTANYBAYEP1#::#49673#tcp", + "network": { + "transport": "tcp" + }, + "process": { + "command_line": "", + "executable": "services.exe", + "hash": { + "sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A" + }, + "name": "services.exe", + "pid": 848, + "start": "2023-09-18T16:13:52Z", + "user": { + "name": "NT AUTHORITY\\SYSTEM" + } + }, + "script": { + "current_duration": 13538.63, + "current_time": "2023-09-25T19:02:54Z", + "name": "Get-ExposedServiceInfo.ps1", + "start": "2023-09-25T19:02:40Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "service": { + "name": "services.exe" + }, + "source": { + "ip": "::", + "port": 49673 + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 0b1d21bc7e8..3436d4ec7dc 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -13,6 +13,7 @@ processors: field: source.ip value: "0.0.0.0" if: ctx.source.ip == '' + ignore_failure: true - set: field: service.name value: "{{process.name}}" @@ -28,12 +29,14 @@ processors: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: exposed service + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -43,14 +46,24 @@ processors: field: host.uptime value: "{{tempuptime.0}}" ignore_failure: true - - set: - field: service.state - value: Running - if: ctx.service.state == '' - remove: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [network] + - set: + field: event.type + value: [info] + - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml index cc0dc08ce10..54b02bbc340 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml @@ -1,9 +1,9 @@ - name: service type: group fields: - - name: description - type: keyword - description: The description text on the serivce. - - name: display_name - type: keyword - description: The human readable name of the service \ No newline at end of file + - name: description + description: The description text on the serivce. + type: keyword + - name: display_name + description: The human readable name of the service + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml index 01937d88bd8..c86415c93f3 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json index 02df63d6e6b..6c58466f97e 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json @@ -1,63 +1,65 @@ { - "events": [ - { - "disk_location_function": "0", - "disk.is_offline": "false", - "disk_location_bus": "0", - "disk_size": "512110190592", - "disk_operational_status": "Online", - "disk.serial_number": "E823_8FA6_BF53_0001_001B_444A_4656_FFFD.", - "host.os.build": "19045", - "host.ip": "192.168.0.60", - "host.hostname": "DESKTOP-BS6VECN", - "disk.firmware_version": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.oem.model": "XPS 15 9500", - "script.start": "2023-08-14T15:50:37Z", - "@timestamp": "2023-08-14T15:50:37Z", - "host.os.name": "Microsoft Windows 10 Home", - "disk_manufacturer": "NVMe", - "host.os.organization": "", - "disk_model": "PC SN730 NVMe WDC 512GB", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "disk_location_adapter": "0", - "disk_guid": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", - "disk.name": "NVMe PC SN730 NVMe WDC 512GB", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "64H3DB3", - "disk.is_highly_available": "false", - "host.os.version": "2009", - "disk.is_clustered": "false", - "host.hardware.bios.name": "Dell Inc.", - "disk_NumberOfPartitions": "6", - "host.type": "Workstation", - "host.hardware.bios.version": "1.22.0", - "script.type": "powershell", - "host.os.description": "", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "disk_bus_type": "RAID", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.hardware.owner": "liguitarguide@gmail.com", - "disk_system": "true", - "disk_number": "0", - "host.uptime": {}, - "disk_adapter_serialnumber": "", - "disk_partition_style": "GPT", - "disk_boot_from": "true", - "script.name": "Get-TychonHardDriveInfo.ps1", - "disk_health_status": "Healthy", - "disk_location_device": "23", - "script.version": "2.3.46.0", - "id": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", - "host.oem.manufacturer": "Dell", - "host.ipv4": "192.168.0.60", - "script.current_duration": "4267.97", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "script.current_time": "2023-08-14T15:50:41Z", - "disk_is_boot": "true", - "host.domain": "", - "host.mac": "DC:41:A9:A0:1B:A3", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.name": "Microsoft Windows 10 Pro", + "disk.location.device": "0", + "disk.partition_style": "MBR", + "host.hardware.manufacturer": "VMware, Inc.", + "disk.serial_number": "", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "disk.boot_from": "true", + "host.hostname": "BOTANYBAYEP1", + "disk.adapter.serial_number": "", + "disk.location.adapter": "0", + "disk.system": "true", + "script.start": "2023-09-25T19:03:48Z", + "disk.size": "42949672960", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "disk.name": "VMware Virtual disk", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.oem.model": "", + "disk.is_boot": "true", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "disk.model": "Virtual disk ", + "disk.health_status": "Healthy", + "disk.number": "0", + "script.current_duration": "13711.00", + "disk.offline": "false", + "disk.location.bus": "3", + "disk.location.pci_slot": "160", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.uptime": "614991.6714276", + "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", + "disk.firmware.version": "2.0 ", + "disk.location.function": "0", + "script.current_time": "2023-09-25T19:04:02Z", + "disk.bus_type": "SAS", + "disk.manufacturer": "VMware ", + "disk.clustered": "false", + "script.name": "Get-TychonHardDriveInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "disk.operational_status": "Online", + "disk.number_of_partitions": "3", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec51bf7&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", + "disk.highly_available": "false", + "script.type": "powershell", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json index 7e7aad8eba5..80e03157b46 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json @@ -1,63 +1,112 @@ { "expected": [ { - "disk_location_function": "0", - "disk.is_offline": "false", - "disk_location_bus": "0", - "disk_size": "512110190592", - "disk_operational_status": "Online", - "disk.serial_number": "E823_8FA6_BF53_0001_001B_444A_4656_FFFD.", - "host.os.build": "19045", - "host.ip": "192.168.0.60", - "host.hostname": "DESKTOP-BS6VECN", - "disk.firmware_version": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.oem.model": "XPS 15 9500", - "script.start": "2023-08-14T15:50:37Z", - "@timestamp": "2023-08-14T15:50:37Z", - "host.os.name": "Microsoft Windows 10 Home", - "disk_manufacturer": "NVMe", - "host.os.organization": "", - "disk_model": "PC SN730 NVMe WDC 512GB", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "disk_location_adapter": "0", - "disk_guid": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", - "disk.name": "NVMe PC SN730 NVMe WDC 512GB", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "64H3DB3", - "disk.is_highly_available": "false", - "host.os.version": "2009", - "disk.is_clustered": "false", - "host.hardware.bios.name": "Dell Inc.", - "disk_NumberOfPartitions": "6", - "host.type": "Workstation", - "host.hardware.bios.version": "1.22.0", - "script.type": "powershell", - "host.os.description": "", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "disk_bus_type": "RAID", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.hardware.owner": "liguitarguide@gmail.com", - "disk_system": "true", - "disk_number": "0", - "host.uptime": {}, - "disk_adapter_serialnumber": "", - "disk_partition_style": "GPT", - "disk_boot_from": "true", - "script.name": "Get-TychonHardDriveInfo.ps1", - "disk_health_status": "Healthy", - "disk_location_device": "23", - "script.version": "2.3.46.0", - "id": "ebcd47e8-49b0-4ec8-bfa7-ab9d5d2846d6", - "host.oem.manufacturer": "Dell", - "host.ipv4": "192.168.0.60", - "script.current_duration": "4267.97", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "script.current_time": "2023-08-14T15:50:41Z", - "disk_is_boot": "true", - "host.domain": "", - "host.mac": "DC:41:A9:A0:1B:A3", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:24.421648324Z", + "disk": { + "adapter": { + "serial_number": "" + }, + "boot_from": "true", + "bus_type": "SAS", + "clustered": "false", + "firmware": { + "version": "2.0 " + }, + "health_status": "Healthy", + "highly_available": "false", + "id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk\u0026ven_vmware\u0026prod_virtual_disk#5\u00261ec51bf7\u00260\u0026000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", + "is_boot": "true", + "location": { + "adapter": "0", + "bus": "3", + "device": "0", + "function": "0", + "pci_slot": "160" + }, + "manufacturer": "VMware ", + "model": "Virtual disk ", + "name": "VMware Virtual disk", + "number": "0", + "number_of_partitions": "3", + "offline": "false", + "operational_status": "Online", + "partition_style": "MBR", + "serial_number": "", + "size": 42949672960, + "system": "true" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "configuration" + ], + "ingested": "2023-09-25T21:55:24.421648324Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 614991, + "workgroup": "WORKGROUP" + }, + "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", + "script": { + "current_duration": 13711.0, + "current_time": "2023-09-25T19:04:02Z", + "name": "Get-TychonHardDriveInfo.ps1", + "start": "2023-09-25T19:03:48Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index a0b8abf6fc5..8db5d7fa333 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -15,16 +15,26 @@ processors: - set: field: event.kind value: state + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: hard drive + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -38,6 +48,23 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: disk.size + type: long + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml index c8de5ee5041..19238f1f9d1 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml @@ -1,84 +1,90 @@ - name: disk type: group fields: - - name: adapter - type: group - fields: - - name: serial_number - type: keyword - description: Disk Adatper Serial Number - - name: boot_from - type: boolean - description: OS booted from this disk - - name: bus_type - type: keyword - description: THe Disk Bus Type - - name: clustered - type: boolean - description: Is the Disk Clustered - - name: firmware - type: group - fields: - - name: version + - name: id + description: Disk ID type: keyword - description: Disk Firmware version - - name: guid - type: keyword - description: Disk UUID - - name: health_status - type: keyword - description: Health status of the disk - - name: highly_available - type: boolean - description: Disk is marked as highly available - - name: is_boot - type: boolean - description: Disk is a boot disk - - name: location - type: group - fields: - name: adapter + type: group + fields: + - name: serial_number + type: keyword + description: Disk Adatper Serial Number + - name: boot_from + type: boolean + description: OS booted from this disk + - name: bus_type + type: keyword + description: THe Disk Bus Type + - name: clustered + type: boolean + description: Is the Disk Clustered + - name: firmware + type: group + fields: + - name: version + type: keyword + description: Disk Firmware version + - name: guid + type: keyword + description: Disk UUID + - name: health_status + type: keyword + description: Health status of the disk + - name: highly_available + type: boolean + description: Disk is marked as highly available + - name: is_boot + type: boolean + description: Disk is a boot disk + - name: location + type: group + fields: + - name: adapter + type: integer + description: Zero index adapter location + - name: pci_slot + type: integer + description: PCI Slot location + - name: bus + type: integer + description: Disk Bus Location + - name: device + type: integer + description: Disk Device Location + - name: function + type: integer + description: Disk Function Location + - name: manufacturer + type: keyword + description: The manufacturer of the Disk + - name: model + type: keyword + description: The model of the disk + - name: name + type: keyword + description: The firendly name of the disk + - name: number type: integer - description: Zero index adapter location - - name: bus - type: integer - description: Disk Bus Location - - name: device - type: integer - descirption: Disk Device Location - - name: function + description: The number assigned to the disk + - name: number_of_partitions type: integer - description: Disk Function Location - - name: manufacturer - type: keyword - description: The manufacturer of the Disk - - name: model - type: keyword - description: The model of the disk - - name: name - type: keyword - description: The firendly name of the disk - - name: number - type: integer - description: The number assigned to the disk - - name: number_of_partitions - type: integer - description: Total number of partitions on the drive - - name: offline - type: boolean - description: Is the disk offline - - name: operational_status - type: keyword - description: Operational Status of the disk - - name: partition_style - type: keyword - description: Partition style - - name: serial_number - type: keyword - description: The unique serial number of the drive - - name: size - type: long - description: Total Size of the disk - - name: system - type: boolean - description: Is this a system drive + description: Total number of partitions on the drive + - name: offline + type: boolean + description: Is the disk offline + - name: operational_status + type: keyword + description: Operational Status of the disk + - name: partition_style + type: keyword + description: Partition style + - name: serial_number + type: keyword + description: The unique serial number of the drive + - name: size + type: long + description: Total Size of the disk + - name: system + type: boolean + description: Is this a system drive diff --git a/packages/tychon/data_stream/tychon_harddrive/manifest.yml b/packages/tychon/data_stream/tychon_harddrive/manifest.yml index c030df86e49..21b27d5034f 100644 --- a/packages/tychon/data_stream/tychon_harddrive/manifest.yml +++ b/packages/tychon/data_stream/tychon_harddrive/manifest.yml @@ -3,7 +3,7 @@ type: logs streams: - input: logfile title: Endpoint Harddrive Info - description: TYCHON reports all the physical Hard Drive's on an endpoint + description: TYCHON reports all the physical Hard Drive(s) on an endpoint template_path: stream.yml.hbs vars: - name: paths diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json index ae6ac19c749..94bfbff109a 100644 --- a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json @@ -1,44 +1,48 @@ { - "events": [ - { - "host.os.build": "19045", - "host.ip": "192.168.0.33", - "host.hostname": "DESKTOP-BS6VECN", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-16T15:28:09Z", - "@timestamp": "2023-08-16T15:28:09Z", - "host.os.name": "Microsoft Windows 10 Home", - "friendly_name": "HID-compliant vendor-defined device", - "device_id": "HID\\DELL097D\u0026COL04\\5\u00262E84B32B\u00260\u00260003", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "host.os.organization": "", - "host.hardware.owner": "liguitarguide@gmail.com", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "64H3DB3", - "host.ipv4": "192.168.0.33", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "status": "OK", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.mac": "DC:41:A9:A0:1B:A3", - "host.oem.model": "XPS 15 9500", - "host.uptime": "554367.8797053", - "script.type": "powershell", - "script.current_time": "2023-08-16T15:28:10Z", - "script.name": "Get-TychonHardwareInfo.ps1", - "script.version": "2.3.55.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "script.current_duration": "970.62", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "manufacturer": "(Standard system devices)", - "host.hardware.bios.version": "1.22.0", - "name": "HID-compliant vendor-defined device", - "host.domain": "", - "host.os.family": "Windows", - "present": "true" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "script.version": "2.3.141.0", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T04:03:37Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "device.name": "Motherboard resources", + "host.hardware.owner": "admin", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "device.present": "true", + "host.type": "Workstation", + "device.id": "ACPI\\PNP0C02\\4", + "device.description": "Motherboard resources", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "device.class": "System", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "device.friendly_name": "Motherboard resources", + "host.oem.model": "", + "host.uptime": "560978.5582333", + "id": "eb657a5e2a6762a1aeebaa530a334081e387d350", + "script.current_time": "2023-09-25T04:03:42Z", + "script.name": "Get-TychonHardwareInfo.ps1", + "device.status": "OK", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "5072.02", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "device.manufacturer": "(Standard system devices)", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json index 34d6291463e..6eeb5394629 100644 --- a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json @@ -1,44 +1,89 @@ { "expected": [ { - "host.os.build": "19045", - "host.ip": "192.168.0.33", - "host.hostname": "DESKTOP-BS6VECN", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-16T15:28:09Z", - "@timestamp": "2023-08-16T15:28:09Z", - "host.os.name": "Microsoft Windows 10 Home", - "friendly_name": "HID-compliant vendor-defined device", - "device_id": "HID\\DELL097D\u0026COL04\\5\u00262E84B32B\u00260\u00260003", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 165 Stepping 2", - "host.os.organization": "", - "host.hardware.owner": "liguitarguide@gmail.com", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "64H3DB3", - "host.ipv4": "192.168.0.33", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "status": "OK", - "host.id": "1e4f897fb22947a392261a869b2299cb_4C4C4544-0034-4810-8033-B6C04F444233_DESKTOP-BS6VECN_WORKGROUP", - "host.biossn": "4C4C4544-0034-4810-8033-B6C04F444233", - "host.mac": "DC:41:A9:A0:1B:A3", - "host.oem.model": "XPS 15 9500", - "host.uptime": "554367.8797053", - "script.type": "powershell", - "script.current_time": "2023-08-16T15:28:10Z", - "script.name": "Get-TychonHardwareInfo.ps1", - "script.version": "2.3.55.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "script.current_duration": "970.62", - "host.ipv6": "fe80::fefc:76f5:552c:886e", - "manufacturer": "(Standard system devices)", - "host.hardware.bios.version": "1.22.0", - "name": "HID-compliant vendor-defined device", - "host.domain": "", - "host.os.family": "Windows", - "present": "true" + "@timestamp": "2023-09-25T21:55:24.604662201Z", + "device": { + "class": "System", + "description": "Motherboard resources", + "friendly_name": "Motherboard resources", + "id": "ACPI\\PNP0C02\\4", + "manufacturer": "(Standard system devices)", + "name": "Motherboard resources", + "present": "true", + "status": "OK" + }, + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "configuration" + ], + "ingested": "2023-09-25T21:55:24.604662201Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 560978, + "workgroup": "WORKGROUP" + }, + "id": "eb657a5e2a6762a1aeebaa530a334081e387d350", + "script": { + "current_duration": 5072.02, + "current_time": "2023-09-25T04:03:42Z", + "name": "Get-TychonHardwareInfo.ps1", + "start": "2023-09-25T04:03:37Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index 8c6aee9e114..07adaabe93f 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -21,13 +21,26 @@ processors: - set: field: event.module value: tychon + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.category - value: hardware + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -41,6 +54,16 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json index 390eb4215c1..5f99988d2e6 100644 --- a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json @@ -1,76 +1,77 @@ { - "events": [ - { - "event.ufi.enabled": "false", - "event.deviceguard.hypervisorenforcedcodeint.running": "false", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.tpm.version": "", - "event.deviceguard.securememoverwrite.available": "false", - "event.deviceguard.virtualizationbasedsecurity.status": "Off", - "host.tpm.compliant": "false", - "host.type": "Workstation", - "host.virtualization_status": "Virtual Machine", - "host.security.antivirus.name": "McAfee Endpoint Security, Windows Defender", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "tychon.version.content": "2.3.70.0", - "script.current_duration": "14549.11", - "host.oem.manufacturer": "", - "host.uptime": "1189443.9672792", - "host.os.name": "Microsoft Windows 10 Pro", - "host.tpm.present": "false", - "event.deviceguard.secureboot.available": "false", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.architecture": "64-bit", - "host.os.version": "2009", - "host.hostname": "BOTANYBAYEP1", - "id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "event.deviceguard.systemguardsecurelaunch.running": "false", - "tychon.version.agent": "1.7.861.86", - "host.hardware.owner": "admin", - "script.version": "2.3.70.0", - "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", - "host.os.edition": "Pro", - "host.workgroup": "WORKGROUP", - "host.ipv6": "", - "event.deviceguard.smmsecuritymigrations.available": "false", - "host.domain": "", - "host.os.organization": "", - "script.start": "2023-08-22T21:01:25Z", - "host.os.family": "Windows", - "script.current_time": "2023-08-22T21:01:39Z", - "event.deviceguard.credentialguard.running": "false", - "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.tpm.digest.id": "TPM Digest Not Found", - "host.hardware.bios.version": "6.00", - "tychon.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.build": "19045", - "host.security.antivirus.status": "OutOfDate, UpToDate", - "event.deviceguard.version": "1.0", - "host.oem.model": "", - "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", - "event.deviceguard.dmaprotection.available": "false", - "tychon.definition.oval": "2023-08-15T20:03:33Z", - "host.ipv4": "10.1.9.51", - "event.deviceguard.ueficodereadonly.available": "false", - "host.security.antivirus.exists": "True, True", - "script.type": "powershell", - "host.os.vendor": "Microsoft Corporation", - "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", - "host.motherboard.serial_number": "None", - "tychon.definition.stig": "2023-08-16T17:18:48Z", - "event.deviceguard.basevirtualizationsupport.available": "false", - "host.cpu.count": "2", - "host.ip": "10.1.9.51", - "event.deviceguard.systemguardsecurelaunch.enabled": "false", - "host.security.antivirus.state": "On, Off", - "script.name": "Get-TychonHostInfo.ps1", - "host.mac": "00:0C:29:93:6A:F3", - "event.deviceguard.credentialguard.enabled": "false", - "host.os.description": "", - "host.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.memory.size": "4294496256" - } - ] + "events": [ + { + "event.ufi.enabled": "false", + "event.deviceguard.hypervisorenforcedcodeint.running": "false", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.tpm.version": "", + "event.deviceguard.securememoverwrite.available": "false", + "event.deviceguard.virtualizationbasedsecurity.status": "Off", + "host.tpm.compliant": "false", + "host.type": "Workstation", + "host.virtualization_status": "Virtual Machine", + "host.security.antivirus.name": "McAfee Endpoint Security", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "tychon.version.content": "2.3.141.0", + "script.current_duration": "7000.24", + "host.oem.manufacturer": "", + "host.uptime": "618683.1458787", + "host.os.name": "Microsoft Windows 10 Pro", + "host.tpm.present": "false", + "event.deviceguard.secureboot.available": "false", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.architecture": "64-bit", + "host.os.version": "2009", + "host.hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "event.deviceguard.systemguardsecurelaunch.running": "false", + "host.cloud.hosted": "false", + "tychon.version.agent": "1.7.861.86", + "host.hardware.owner": "admin", + "script.version": "2.3.141.0", + "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", + "host.os.edition": "Pro", + "host.workgroup": "WORKGROUP", + "host.ipv6": "", + "event.deviceguard.smmsecuritymigrations.available": "false", + "script.type": "powershell", + "host.domain": "", + "host.os.organization": "", + "host.os.family": "Windows", + "script.current_time": "2023-09-25T20:05:29Z", + "event.deviceguard.credentialguard.running": "false", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.tpm.digest.id": "TPM Digest Not Found", + "host.hardware.bios.version": "6.00", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.build": "19045", + "host.security.antivirus.status": "OutOfDate", + "event.deviceguard.version": "1.0", + "host.oem.model": "", + "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", + "event.deviceguard.dmaprotection.available": "false", + "tychon.definition.oval": "2023-08-15T20:03:33Z", + "host.ipv4": "10.1.9.51", + "event.deviceguard.ueficodereadonly.available": "false", + "host.security.antivirus.exists": "true", + "script.start": "2023-09-25T20:05:22Z", + "host.os.vendor": "Microsoft Corporation", + "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", + "host.motherboard.serial_number": "None", + "tychon.definition.stig": "2023-08-16T17:18:48Z", + "event.deviceguard.basevirtualizationsupport.available": "false", + "host.cpu.count": "2", + "host.ip": "10.1.9.51", + "event.deviceguard.systemguardsecurelaunch.enabled": "false", + "host.security.antivirus.state": "On", + "script.name": "Get-TychonHostInfo.ps1", + "host.mac": "00:0C:29:93:6A:F3", + "event.deviceguard.credentialguard.enabled": "false", + "host.os.description": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.memory.size": "4294496256" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json index ff7ac0a0ae2..75aeb57a048 100644 --- a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json @@ -1,76 +1,160 @@ { "expected": [ { - "event.ufi.enabled": "false", - "event.deviceguard.hypervisorenforcedcodeint.running": "false", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.tpm.version": "", - "event.deviceguard.securememoverwrite.available": "false", - "event.deviceguard.virtualizationbasedsecurity.status": "Off", - "host.tpm.compliant": "false", - "host.type": "Workstation", - "host.virtualization_status": "Virtual Machine", - "host.security.antivirus.name": "McAfee Endpoint Security, Windows Defender", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "tychon.version.content": "2.3.70.0", - "script.current_duration": "14549.11", - "host.oem.manufacturer": "", - "host.uptime": "1189443.9672792", - "host.os.name": "Microsoft Windows 10 Pro", - "host.tpm.present": "false", - "event.deviceguard.secureboot.available": "false", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.architecture": "64-bit", - "host.os.version": "2009", - "host.hostname": "BOTANYBAYEP1", - "id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "event.deviceguard.systemguardsecurelaunch.running": "false", - "tychon.version.agent": "1.7.861.86", - "host.hardware.owner": "admin", - "script.version": "2.3.70.0", - "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", - "host.os.edition": "Pro", - "host.workgroup": "WORKGROUP", - "host.ipv6": "", - "event.deviceguard.smmsecuritymigrations.available": "false", - "host.domain": "", - "host.os.organization": "", - "script.start": "2023-08-22T21:01:25Z", - "host.os.family": "Windows", - "script.current_time": "2023-08-22T21:01:39Z", - "event.deviceguard.credentialguard.running": "false", - "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.tpm.digest.id": "TPM Digest Not Found", - "host.hardware.bios.version": "6.00", - "tychon.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.build": "19045", - "host.security.antivirus.status": "OutOfDate, UpToDate", - "event.deviceguard.version": "1.0", - "host.oem.model": "", - "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", - "event.deviceguard.dmaprotection.available": "false", - "tychon.definition.oval": "2023-08-15T20:03:33Z", - "host.ipv4": "10.1.9.51", - "event.deviceguard.ueficodereadonly.available": "false", - "host.security.antivirus.exists": "True, True", - "script.type": "powershell", - "host.os.vendor": "Microsoft Corporation", - "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", - "host.motherboard.serial_number": "None", - "tychon.definition.stig": "2023-08-16T17:18:48Z", - "event.deviceguard.basevirtualizationsupport.available": "false", - "host.cpu.count": "2", - "host.ip": "10.1.9.51", - "event.deviceguard.systemguardsecurelaunch.enabled": "false", - "host.security.antivirus.state": "On, Off", - "script.name": "Get-TychonHostInfo.ps1", - "host.mac": "00:0C:29:93:6A:F3", - "event.deviceguard.credentialguard.enabled": "false", - "host.os.description": "", - "host.id": "e4efc65bcec04f8f860b413e53796ea9_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.memory.size": "4294496256" + "@timestamp": "2023-09-25T21:55:24.781576644Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "host" + ], + "deviceguard": { + "basevirtualizationsupport": { + "available": "false" + }, + "credentialguard": { + "enabled": "false", + "running": "false" + }, + "dmaprotection": { + "available": "false" + }, + "hypervisorenforcedcodeint": { + "enabled": "false", + "running": "false" + }, + "secureboot": { + "available": "false" + }, + "securememoverwrite": { + "available": "false" + }, + "smmsecuritymigrations": { + "available": "false" + }, + "systemguardsecurelaunch": { + "enabled": "false", + "running": "false" + }, + "ueficodereadonly": { + "available": "false" + }, + "usermodecodeintegrity": { + "policyenforcement": "Off" + }, + "version": "1.0", + "virtualizationbasedsecurity": { + "status": "Off" + } + }, + "ingested": "2023-09-25T21:55:24.781576644Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ], + "ufi": { + "enabled": "false" + } + }, + "host": { + "architecture": "64-bit", + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7", + "count": "2" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "memory": { + "size": 4294496256 + }, + "motherboard": { + "chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", + "serial_number": "None" + }, + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "edition": "Pro", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "vendor": "Microsoft Corporation", + "version": "2009" + }, + "security": { + "antivirus": { + "exists": "true", + "name": "McAfee Endpoint Security", + "state": "On", + "status": "OutOfDate" + } + }, + "tpm": { + "compliant": "false", + "digest": { + "id": "TPM Digest Not Found" + }, + "present": "false", + "version": "" + }, + "type": "Workstation", + "uptime": 618683, + "virtualization_status": "Virtual Machine", + "workgroup": "WORKGROUP" + }, + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "script": { + "current_duration": 7000.24, + "current_time": "2023-09-25T20:05:29Z", + "name": "Get-TychonHostInfo.ps1", + "start": "2023-09-25T20:05:22Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "definition": { + "oval": "2023-08-15T20:03:33Z", + "stig": "2023-08-16T17:18:48Z" + }, + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "version": { + "agent": "1.7.861.86", + "content": "2.3.141.0" + } + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index ca901abade7..b26a6b0b418 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -18,13 +18,53 @@ processors: - set: field: event.module value: tychon + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true + - convert: + field: host.memory.size + type: long + ignore_failure: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true - set: field: event.category - value: host os + value: [host] + - set: + field: event.type + value: [info] - remove: field: tychon.definition.oval if: ctx.tychon.definition.oval == '' @@ -50,19 +90,6 @@ processors: value: "{{tempav.0}}" - remove: field: tempav - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true on_failure: - set: field: event.kind diff --git a/packages/tychon/data_stream/tychon_host/fields/agent.yml b/packages/tychon/data_stream/tychon_host/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_host/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_host/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml index a18a43e11b5..cd80dc02781 100644 --- a/packages/tychon/data_stream/tychon_host/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -1,169 +1,169 @@ - name: event type: group fields: - - name: deviceguard - type: group - fields: - - name: basevirtualizationsupport + - name: deviceguard type: group fields: - - name: available - type: boolean - - name: credentialguard + - name: basevirtualizationsupport + type: group + fields: + - name: available + type: boolean + - name: credentialguard + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: dmaprotection + type: group + fields: + - name: available + type: boolean + - name: hypervisorenforcedcodeint + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: secureboot + type: group + fields: + - name: available + type: boolean + - name: securememoverwrite + type: group + fields: + - name: available + type: boolean + - name: smmsecuritymigrations + type: group + fields: + - name: available + type: boolean + - name: systemguardsecurelaunch + type: group + fields: + - name: enabled + type: boolean + - name: running + type: boolean + - name: ueficodereadonly + type: group + fields: + - name: available + type: boolean + - name: usermodecodeintegrity + type: group + fields: + - name: policyenforcement + type: keyword + - name: version + type: keyword + - name: virtualizationbasedsecurity + type: group + fields: + - name: status + type: keyword + - name: ufi type: group fields: - - name: enabled - type: boolean - - name: running - type: boolean - - name: dmaprotection - type: group - fields: - - name: available - type: boolean - - name: hypervisorenforcedcodeint - type: group - fields: - - name: enabled - type: boolean - - name: running - type: boolean - - name: secureboot + - name: enabled + type: boolean +- name: host + type: group + fields: + - name: cpu type: group fields: - - name: available - type: boolean - - name: securememoverwrite + - name: caption + type: keyword + description: Description of the CPU + - name: count + type: integer + description: Total Number of CPUs on the system + - name: memory type: group fields: - - name: available - type: boolean - - name: smmsecuritymigrations + - name: size + type: long + description: Total RAM Size + - name: motherboard type: group fields: - - name: available - type: boolean - - name: systemguardsecurelaunch + - name: chipset + type: keyword + description: Chipset of the Motherboard + - name: serial_number + type: keyword + description: Serial Number of the Motherboard + - name: os type: group fields: - - name: enabled - type: boolean - - name: running - type: boolean - - name: ueficodereadonly + - name: edition + type: keyword + description: The Edition of the Opearting System + - name: vendor + type: keyword + description: The vendor of the Operating System + - name: security type: group fields: - - name: available - type: boolean - - name: usermodecodeintegrity + - name: antivirus + type: group + fields: + - name: exists + type: boolean + description: Does the OS state that an AV program is installed + - name: name + type: keyword + description: Product name the Operating System states is the AV program installed + - name: state + type: keyword + description: The Operating System state of the AV product + - name: status + type: keyword + description: The Operating System current status of the AV product it says is installed. + - name: tpm type: group fields: - - name: policyenforcement - type: keyword - - name: version + - name: compliant + type: boolean + description: Is the endpoint compliant with TPM security settings + - name: digest + type: group + fields: + - name: id + type: keyword + description: What digest is being used by TPM + - name: present + type: boolean + description: Is TPM module present on the operating system + - name: version + type: keyword + description: What version of TPM is being used + - name: virtualization_status type: keyword - - name: virtualizationbasedsecurity - type: group - fields: - - name: status - type: keyword - - name: ufi - type: group - fields: - - name: enabled - type: boolean -- name: host +- name: tychon type: group fields: - - name: cpu - type: group - fields: - - name: caption - type: keyword - description: Description of the CPU - - name: count - type: integer - description: Total Number of CPUs on the system - - name: memory - type: group - fields: - - name: size - type: long - description: Total RAM Size - - name: motherboard - type: group - fields: - - name: chipset - type: keyword - description: Chipset of the Motherboard - - name: serial_number - type: keyword - description: Serial Number of the Motherboard - - name: os - type: group - fields: - - name: edition - type: keyword - description: The Edition of the Opearting System - - name: vendor - type: keyword - description: The vendor of the Operating System - - name: security - type: group - fields: - - name: antivirus + - name: definition type: group fields: - - name: exists - type: boolean - description: Does the OS state that an AV program is installed - - name: name - type: keyword - description: Product name the Operating System states is the AV program installed - - name: state - type: keyword - description: The Operating System state of the AV product - - name: status - type: keyword - description: The Operating System current status of the AV product it says is installed. - - name: tpm - type: group - fields: - - name: compliant - type: boolean - description: Is the endpoint compliant with TPM security settings - - name: digest + - name: oval + type: date + description: What version of the TYCHON oval defitnions are currently on this endpoint + - name: stig + type: date + description: What version of the Benchmark checks are on this endpoint + - name: version type: group fields: - - name: id - type: keyword - description: What digest is being used by TPM - - name: present - type: boolean - description: Is TPM module present on the operating system - - name: version - type: keyword - description: What version of TPM is being used - - name: host.virtualization_status - type: keyword -- name: tychon - type: group - fields: - - name: definition - type: group - fields: - - name: oval - type: date - description: What version of the TYCHON oval defitnions are currently on this endpoint - - name: stig - type: date - description: What version of the Benchmark checks are on this endpoint - - name: version - type: group - fields: - - name: agent - type: version - description: The TYCHON Agent Version installed on the endpoint - - name: content - type: version - description: The TYCHON Agentless Version installed on the endpoint \ No newline at end of file + - name: agent + type: version + description: The TYCHON Agent Version installed on the endpoint + - name: content + type: version + description: The TYCHON Agentless Version installed on the endpoint diff --git a/packages/tychon/data_stream/tychon_host/manifest.yml b/packages/tychon/data_stream/tychon_host/manifest.yml index fcc9e0e7793..338763ad7f9 100644 --- a/packages/tychon/data_stream/tychon_host/manifest.yml +++ b/packages/tychon/data_stream/tychon_host/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json index f9c2e27ad47..5326859a7b3 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json @@ -1,67 +1,76 @@ { - "events": [ - { - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" - } - ] + "events": [ + { + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.adapter.subnet_bit": "24", + "host.workgroup": "WORKGROUP", + "host.adapter.domain": "", + "host.adapter.virtual": "false", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.adapter.wifi.authentication": "", + "host.type": "Workstation", + "host.oem.model": "", + "host.adapter.wifi.signal_percent": "", + "script.current_duration": "14530.74", + "host.adapter.dhcp.lease_obtained": "", + "host.oem.manufacturer": "", + "host.uptime": "618589.769059", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.adapter.ndis.version": "6.50", + "host.adapter.ip": "10.1.9.51", + "host.os.family": "Windows", + "host.adapter.driver.version": "12.17.10.8", + "host.adapter.wifi.cipher": "", + "host.adapter.link_speed": "1 Gbps", + "host.hostname": "BOTANYBAYEP1", + "id": "201f62ea31d32bc635feeda477e602ff4b304bb6", + "host.adapter.wifi.ssid": "", + "host.cloud.hosted": "false", + "host.hardware.owner": "admin", + "script.version": "2.3.141.0", + "host.mac": "00:0C:29:93:6A:F3", + "host.adapter.wifi.channel": "", + "host.adapter.driver.name": "Driver Date 2018-06-12 Version 12.17.10.8 NDIS 6.50", + "host.ipv6": "", + "host.os.version": "2009", + "script.type": "powershell", + "host.domain": "", + "host.os.organization": "", + "host.adapter.driver.file_name": "e1i65x64.sys", + "host.adapter.driver.description": "Intel(R) 82574L Gigabit Network Connection", + "host.adapter.gateway": "10.1.9.1", + "host.adapter.dhcp.enabled": "false", + "host.adapter.wifi.band": "", + "script.current_time": "2023-09-25T20:04:01Z", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.hardware.bios.version": "6.00", + "host.os.build": "19045", + "host.adapter.mtu": "1500", + "host.adapter.vlan.id": "", + "host.adapter.wins_server": "", + "host.adapter.driver.provider": "Microsoft", + "host.ipv4": "10.1.9.51", + "host.adapter.wifi.enabled": "false", + "host.adapter.dhcp.lease_expires": "", + "host.adapter.ip_filter.enabled": "false", + "host.adapter.wifi.radio_type": "", + "host.adapter.description": "Intel(R) 82574L Gigabit Network Connection", + "script.start": "2023-09-25T20:03:46Z", + "host.adapter.driver.date": "2018-06-12", + "host.ip": "10.1.9.51", + "host.adapter.alias": "Ethernet0", + "host.adapter.mac": "00-0C-29-93-6A-F3", + "host.adapter.media.type": "802.3", + "host.adapter.id": "{8CF7047B-04F9-48B6-8928-0593504DBA4D}", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.server": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.adapter.media.connection_state": "Connected", + "host.os.description": "", + "host.adapter.wifi.bssid": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json index c99a8e1d1b4..706baa91834 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json @@ -1,67 +1,129 @@ { "expected": [ { - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:25.005723813Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "configuration" + ], + "ingested": "2023-09-25T21:55:25.005723813Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "adapter": { + "alias": "Ethernet0", + "description": "Intel(R) 82574L Gigabit Network Connection", + "dhcp": { + "enabled": "false" + }, + "domain": "", + "driver": { + "date": "2018-06-12", + "description": "Intel(R) 82574L Gigabit Network Connection", + "file_name": "e1i65x64.sys", + "name": "Driver Date 2018-06-12 Version 12.17.10.8 NDIS 6.50", + "provider": "Microsoft", + "version": "12.17.10.8" + }, + "gateway": "10.1.9.1", + "id": "{8CF7047B-04F9-48B6-8928-0593504DBA4D}", + "ip": "10.1.9.51", + "ip_filter": { + "enabled": "false" + }, + "link_speed": 1, + "mac": "00-0C-29-93-6A-F3", + "media": { + "connection_state": "Connected", + "type": "802.3" + }, + "mtu": "1500", + "ndis": { + "version": "6.50" + }, + "subnet_bit": "24", + "virtual": "false", + "vlan": { + "id": "" + }, + "wifi": { + "authentication": "", + "band": "", + "bssid": "", + "channel": "", + "cipher": "", + "enabled": "false", + "radio_type": "", + "signal_percent": "", + "ssid": "" + }, + "wins_server": "" + }, + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 618589, + "workgroup": "WORKGROUP" + }, + "host.adapter.link_speed": 1073741824, + "id": "201f62ea31d32bc635feeda477e602ff4b304bb6", + "script": { + "current_duration": 14530.74, + "current_time": "2023-09-25T20:04:01Z", + "name": "Get-TychonNetworkAdapterInfo.ps1", + "start": "2023-09-25T20:03:46Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index fef46ef0062..e0f133a56b6 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -15,16 +15,49 @@ processors: - set: field: event.kind value: state + - set: + field: link_speed + value: "{{host.adapter.link_speed}}" + - set: + field: host.adapter.link_speed + value: 1 + - script: + source: | + if(ctx['link_speed'].contains(' ')){ + String[] link_Speed=ctx['link_speed'].splitOnToken(' '); + ctx.remove('link_speed'); + ctx['host.adapter.link_speed']=Long.parseLong(link_Speed[0]); + if(link_Speed[1]=='Kbps'){ + ctx['host.adapter.link_speed']*=1024 + } + if(link_Speed[1]=='Mbps'){ + ctx['host.adapter.link_speed']*=1048576 + } + if(link_Speed[1]=='Gbps'){ + ctx['host.adapter.link_speed']*=1073741824 + } + } + ignore_failure: true + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: network adapter + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -38,6 +71,19 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] - remove: field: host.adapter.ip if: ctx.host.adapter.ip == '' @@ -56,10 +102,6 @@ processors: - remove: field: host.adapter.driver.date if: ctx.host.adapter.driver.date == '' - - gsub: - field: host.adapter.link_speed - pattern: "[^0-9]" - replacement: "" - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml index f2a0c59b335..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: @@ -107,4 +107,4 @@ type: keyword - name: serial_number description: Host BIOS Serial Number. - type: keyword \ No newline at end of file + type: keyword diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml index dcc5cc72bc3..0085d1cd11c 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -1,135 +1,135 @@ - name: host type: group fields: - - name: adapter - type: group - fields: - - name: alias - type: keyword - description: The Alias given to this adapter - - name: description - type: text - description: The network adatper description - - name: dhcp + - name: adapter type: group fields: - - name: enabled - type: boolean - description: Is DHCP Enabled on this adatper - - name: lease_expires - type: date - description: When does this DHCP lease expire - - name: lease_obtained - type: date - description: When was the DHCP lease obtained - - name: server - type: ip - description: What IP Address was the DHCP IP obtained from. - - name: domain - type: keyword - description: What domain was assigned to this adatper - - name: driver - type: group - fields: - - name: date - type: date - description: Date the driver was installed - - name: description - type: text - description: Description of the driver - - name: file_name - type: keyword - description: Driver File name - - name: name - type: keyword - description: Name of the driver - - name: provider - type: keyword - description: Company that provided the driver - - name: version - type: keyword - description: Version of the driver - - name: gateway - type: ip - description: Gateway IP Address - - name: id - type: keyword - description: ID Of the adapter - - name: ip - type: ip - description: IP Addresses assigned to the adatper - - name: ip_filter - type: group - fields: - - name: enabled - type: boolean - description: Is IP Filtering Enabled - - name: wins_server - type: keyword - description: The WINS Server attached to this adatper - - name: link_speed - type: long - description: Link speed of the adatper - - name: mac - type: keyword - description: Hardware MAC Address - - name: media - type: group - fields: - - name: connection_state - type: keyword - description: Current Connection State - - name: type - type: keyword - description: Current Connection Media Type - - name: mtu - type: integer - description: MTU Size - - name: ndis - type: group - fields: - - name: version - type: keyword - description: NDIS Version - - name: subnet_bit - type: integer - description: Subnet BIT - - name: virtual - type: boolean - description: Is adapter virutal - - name: vlan - type: group - fields: - - name: id - type: keyword - description: The VLAN ID - - name: wifi - type: group - fields: - - name: enabled - type: boolean - description: Is WIFI Enabled - - name: signal_percent - type: integer - description: Signal strenth to connected WIFI Router - - name: ssid - type: keyword - description: The Connected WIFI Router SSID - - name: bssid - type: keyword - description: The Connected WIFI Router Hardware Address - - name: radio_type - type: keyword - description: The radio type of the connected WIFI Router - - name: authentication - type: keyword - description: The Authentication method used to connected to the WIFI Router - - name: cipher - type: keyword - description: The CIPHER used to connected to the WIFI Router - - name: band - type: keyword - description: The band used to connected to the WIFI Router - - name: channel - type: keyword - description: The channel used to connected to the WIFI Router \ No newline at end of file + - name: alias + type: keyword + description: The Alias given to this adapter + - name: description + type: text + description: The network adatper description + - name: dhcp + type: group + fields: + - name: enabled + type: boolean + description: Is DHCP Enabled on this adatper + - name: lease_expires + type: date + description: When does this DHCP lease expire + - name: lease_obtained + type: date + description: When was the DHCP lease obtained + - name: server + type: ip + description: What IP Address was the DHCP IP obtained from. + - name: domain + type: keyword + description: What domain was assigned to this adatper + - name: driver + type: group + fields: + - name: date + type: date + description: Date the driver was installed + - name: description + type: text + description: Description of the driver + - name: file_name + type: keyword + description: Driver File name + - name: name + type: keyword + description: Name of the driver + - name: provider + type: keyword + description: Company that provided the driver + - name: version + type: keyword + description: Version of the driver + - name: gateway + type: ip + description: Gateway IP Address + - name: id + type: keyword + description: ID Of the adapter + - name: ip + type: ip + description: IP Addresses assigned to the adatper + - name: ip_filter + type: group + fields: + - name: enabled + type: boolean + description: Is IP Filtering Enabled + - name: wins_server + type: keyword + description: The WINS Server attached to this adatper + - name: link_speed + type: long + description: Link speed of the adatper + - name: mac + type: keyword + description: Hardware MAC Address + - name: media + type: group + fields: + - name: connection_state + type: keyword + description: Current Connection State + - name: type + type: keyword + description: Current Connection Media Type + - name: mtu + type: integer + description: MTU Size + - name: ndis + type: group + fields: + - name: version + type: keyword + description: NDIS Version + - name: subnet_bit + type: integer + description: Subnet BIT + - name: virtual + type: boolean + description: Is adapter virutal + - name: vlan + type: group + fields: + - name: id + type: keyword + description: The VLAN ID + - name: wifi + type: group + fields: + - name: enabled + type: boolean + description: Is WIFI Enabled + - name: signal_percent + type: integer + description: Signal strenth to connected WIFI Router + - name: ssid + type: keyword + description: The Connected WIFI Router SSID + - name: bssid + type: keyword + description: The Connected WIFI Router Hardware Address + - name: radio_type + type: keyword + description: The radio type of the connected WIFI Router + - name: authentication + type: keyword + description: The Authentication method used to connected to the WIFI Router + - name: cipher + type: keyword + description: The CIPHER used to connected to the WIFI Router + - name: band + type: keyword + description: The band used to connected to the WIFI Router + - name: channel + type: keyword + description: The channel used to connected to the WIFI Router diff --git a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml index f4a01ab6495..29608b8b892 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json new file mode 100644 index 00000000000..6c7ca5a56ab --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json @@ -0,0 +1,52 @@ +{ + "events": [ + { + "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "host.domain": "", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.hardware.bios.version": "6.00", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.owner": "dcuser", + "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", + "host.hostname": "DESKTOP-TIUKL1R", + "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "host.ip": "10.1.9.112", + "host.ipv4": "10.1.9.112", + "host.ipv6": "fe80::40d1:5287:42b9:5645", + "host.mac": "00:0C:29:EF:9A:EB", + "host.oem.manufacturer": "", + "host.oem.model": "", + "host.os.build": "22000", + "host.os.description": "", + "host.os.family": "Windows", + "host.os.name": "Microsoft Windows 11 Education N", + "host.os.organization": "", + "host.os.version": "10.0.22000", + "host.type": "Workstation", + "host.uptime": "145287", + "host.workgroup": "WORKGROUP", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script.current_duration": "315381.28", + "script.current_time": "2023-06-15T21:58:02Z", + "script.name": "Invoke-CveScan.ps1", + "script.start": "2023-06-15T21:52:47Z", + "script.type": "powershell", + "script.version": "0.1.0", + "vulnerability.due_date": "", + "vulnerability.classification": "vulnerability", + "vulnerability.iava": "2013-A-0227", + "vulnerability.iava_severity": "CAT II", + "vulnerability.id": "CVE-2013-3900", + "vulnerability.reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "vulnerability.result": "fail", + "vulnerability.scanner.vendor": "TYCHON", + "vulnerability.score.base": "7.60", + "vulnerability.score.version": "2.0", + "vulnerability.severity": "HIGH", + "vulnerability.title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "vulnerability.version": "1", + "vulnerability.year": "2013" + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-config.yml b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-config.yml new file mode 100644 index 00000000000..302199c74f9 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-config.yml @@ -0,0 +1,3 @@ +dynamic_fields: + "@timestamp": ".*" + event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json new file mode 100644 index 00000000000..4e291b54af3 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json @@ -0,0 +1,94 @@ +{ + "expected": [ + { + "@timestamp": "2023-09-25T21:55:25.184645812Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "vulnerability" + ], + "ingested": "2023-09-25T21:55:25.184645812Z", + "kind": "state", + "module": "tychon", + "outcome": "failure", + "type": [ + "info" + ] + }, + "host": { + "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "dcuser", + "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + }, + "hostname": "DESKTOP-TIUKL1R", + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", + "ip": "10.1.9.112", + "ipv4": [ + "10.1.9.112" + ], + "ipv6": "fe80::40d1:5287:42b9:5645", + "mac": "00-0C-29-EF-9A-EB", + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "22000", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 11 Education N", + "organization": "", + "version": "10.0.22000" + }, + "type": "Workstation", + "uptime": 145287, + "workgroup": "WORKGROUP" + }, + "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_CVE-2013-3900", + "script": { + "current_duration": 315381.28, + "current_time": "2023-06-15T21:58:02Z", + "name": "Invoke-CveScan.ps1", + "start": "2023-06-15T21:52:47Z", + "type": "powershell", + "version": "0.1.0" + }, + "vulnerability": { + "category": [ + "oval" + ], + "classification": "cvss", + "due_date": "1970-01-01T00:00:01.000Z", + "enumeration": "CVE", + "iava": "2013-A-0227", + "iava_severity": "CAT II", + "id": "CVE-2013-3900", + "reference": "https://www.scaprepo.com/view.jsp?id=CVE-2013-3900", + "result": "fail", + "scanner": { + "vendor": "tychon" + }, + "score": { + "base": 7.6, + "version": "2.0" + }, + "severity": "HIGH", + "title": "The WinVerifyTrust function in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold and R2, and Windows RT Gold and 8.1 does ", + "version": "1", + "year": 2013 + } + } + ] +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs b/packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..8b177f1461f --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs @@ -0,0 +1,23 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..3d6d422c24b --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,107 @@ +--- +description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: vulnerability.due_date + value: "1970-01-01T00:00:01Z" + if: ctx.vulnerability.due_date == '' + - date: + field: vulnerability.due_date + target_field: vulnerability.due_date + output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX + ignore_failure: true + formats: + - strict_date_optional_time + - epoch_millis + - date + - "MM/dd/yyyy" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [vulnerability] + - set: + field: event.type + value: [info] + - script: + source: | + if(ctx.vulnerability?.result == 'fail'){ + ctx.event.outcome = "failure" + }else if(ctx.vulnerability?.result == 'pass'){ + ctx.event.outcome = "success" + }else{ + ctx.event.outcome = "unknown" + } + - convert: + field: script.current_duration + type: float + ignore_missing: true + - convert: + field: vulnerability.score.base + type: float + - convert: + field: vulnerability.year + type: long + - set: + field: vulnerability.scanner.vendor + value: tychon + - set: + field: vulnerability.category + value: [oval] + - set: + field: vulnerability.classification + value: cvss + - set: + field: vulnerability.enumeration + value: CVE +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/fields/agent.yml b/packages/tychon/data_stream/tychon_patch/fields/agent.yml new file mode 100644 index 00000000000..45dccd05b24 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: text + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: version + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml b/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/data_stream/tychon_patch/fields/ecs.yml b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml new file mode 100644 index 00000000000..7f4b8fb4143 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml @@ -0,0 +1,68 @@ +- external: ecs + name: agent.ephemeral_id +- external: ecs + name: agent.id +- external: ecs + name: agent.name +- external: ecs + name: agent.type +- external: ecs + name: agent.version +- external: ecs + name: ecs.version +- external: ecs + name: event.agent_id_status +- external: ecs + name: event.category +- external: ecs + name: event.created +- external: ecs + name: event.dataset +- external: ecs + name: event.id +- external: ecs + name: event.ingested +- external: ecs + name: event.kind +- external: ecs + name: event.outcome +- external: ecs + name: event.timezone +- external: ecs + name: error.message +- external: ecs + name: host.architecture +- external: ecs + name: host.name +- external: ecs + name: host.uptime +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.platform +- external: ecs + name: host.os.type +- external: ecs + name: log.file.path +- external: ecs + name: tags +- external: ecs + name: vulnerability.category +- external: ecs + name: vulnerability.classification +- external: ecs + name: vulnerability.description +- external: ecs + name: vulnerability.enumeration +- external: ecs + name: vulnerability.id +- external: ecs + name: vulnerability.reference +- external: ecs + name: vulnerability.scanner.vendor +- external: ecs + name: vulnerability.score.base +- external: ecs + name: vulnerability.score.version +- external: ecs + name: vulnerability.severity diff --git a/packages/tychon/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/data_stream/tychon_patch/fields/fields.yml new file mode 100644 index 00000000000..925eab85d41 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/fields/fields.yml @@ -0,0 +1,31 @@ +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_patch/manifest.yml b/packages/tychon/data_stream/tychon_patch/manifest.yml new file mode 100644 index 00000000000..06cb2a56c52 --- /dev/null +++ b/packages/tychon/data_stream/tychon_patch/manifest.yml @@ -0,0 +1,32 @@ +title: Patches +type: logs +streams: + - input: logfile + title: Patches + description: TYCHON checks for thousands of installed patches and reports them back to Elasticsearch for reporting, trend analysis and response actions. + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Patch Results Location + multi: true + required: true + show_user: true + default: + - /var/log/tychoncloud/eventlogs/tychon_patch_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-patch + - 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/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json index 9f27761b525..3b41fee47b8 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json @@ -1,54 +1,56 @@ { - "events": [ - { - "package.description": "", - "script.current_time": "2023-08-10T15:33:47Z", - "package.size": "", - "host.os.build": "19045", - "host.ip": "10.1.5.100", - "host.hostname": "C-EP-WIN10-6", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-08-10T15:33:47Z", - "@timestamp": "2023-08-10T15:33:47Z", - "host.os.name": "Microsoft Windows 10 Pro", - "package.version_release": "4", - "package.architecture": "x86", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "admin", - "package.version": "5.7.4.399", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.5.100", - "host.os.version": "2009", - "package.path": "C:\\Program Files\\McAfee\\Agent\\", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "package.publisher": "McAfee, LLC.", - "host.type": "Workstation", - "package.id": "McAfeeAgent", - "package.version_build": "399", - "pacakage.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", - "package.name": "McAfee Agent", - "host.id": "13ab12ccdbff465c8182dec95e1ffd37_211A4D56-78B2-F579-5B54-DE2DD6A86DBD_C-EP-WIN10-6_WORKGROUP", - "host.biossn": "211A4D56-78B2-F579-5B54-DE2DD6A86DBD", - "host.mac": "00:0C:29:A8:6D:BD", - "package.version_major": "5", - "host.oem.model": "", - "host.uptime": "12345", - "script.type": "", - "host.hardware.serial_number": "VMware-56 4d 1a 21 b2 78 79 f5-5b 54 de 2d d6 a8 6d bd", - "script.name": "", - "script.version": "", - "package.version_minor": "7", - "host.oem.manufacturer": "", - "host.os.description": "", - "package.installed": "", - "script.current_duration": "218.61", - "host.ipv6": "fe80::6e2b:7609:dc72:37cc", - "package.type": "installer", - "host.hardware.bios.version": "6.00", - "package.cpe": "cpe:/a:McAfee Agent:5.7.4.399", - "host.domain": "", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "package.description": "", + "script.current_time": "2023-09-25T04:03:27Z", + "package.size": "", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T04:03:20Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "package.architecture": "x86", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "package.version": "5.7.6.251", + "script.type": "powershell", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "package.path": "C:\\Program Files\\McAfee\\Agent\\", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "package.publisher": "McAfee, LLC.", + "host.type": "Workstation", + "package.id": "McAfeeAgent", + "package.version_build": "251", + "package.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", + "package.name": "McAfee Agent", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "package.version_major": "5", + "host.oem.model": "", + "host.uptime": "560963.1794915", + "id": "eade7a9d914c1e82ec2cd77223cd949593f05ce7", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-TychonSoftwareInventory.ps1", + "package.version_release": "6", + "script.version": "2.3.141.0", + "package.version_minor": "7", + "host.oem.manufacturer": "", + "host.os.description": "", + "package.installed": "", + "script.current_duration": "6844.84", + "host.ipv6": "", + "package.type": "installer", + "host.hardware.bios.version": "6.00", + "package.cpe": "cpe:/a:McAfee Agent:5.7.6.251", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json index 110239b310a..a3ce044132b 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json @@ -1,54 +1,97 @@ { "expected": [ { - "package.description": "", - "script.current_time": "2023-08-10T15:33:47Z", - "package.size": "", - "host.os.build": "19045", - "host.ip": "10.1.5.100", - "host.hostname": "C-EP-WIN10-6", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-08-10T15:33:47Z", - "@timestamp": "2023-08-10T15:33:47Z", - "host.os.name": "Microsoft Windows 10 Pro", - "package.version_release": "4", - "package.architecture": "x86", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "admin", - "package.version": "5.7.4.399", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.5.100", - "host.os.version": "2009", - "package.path": "C:\\Program Files\\McAfee\\Agent\\", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "package.publisher": "McAfee, LLC.", - "host.type": "Workstation", - "package.id": "McAfeeAgent", - "package.version_build": "399", - "pacakage.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", - "package.name": "McAfee Agent", - "host.id": "13ab12ccdbff465c8182dec95e1ffd37_211A4D56-78B2-F579-5B54-DE2DD6A86DBD_C-EP-WIN10-6_WORKGROUP", - "host.biossn": "211A4D56-78B2-F579-5B54-DE2DD6A86DBD", - "host.mac": "00:0C:29:A8:6D:BD", - "package.version_major": "5", - "host.oem.model": "", - "host.uptime": "12345", - "script.type": "", - "host.hardware.serial_number": "VMware-56 4d 1a 21 b2 78 79 f5-5b 54 de 2d d6 a8 6d bd", - "script.name": "", - "script.version": "", - "package.version_minor": "7", - "host.oem.manufacturer": "", - "host.os.description": "", - "package.installed": "", - "script.current_duration": "218.61", - "host.ipv6": "fe80::6e2b:7609:dc72:37cc", - "package.type": "installer", - "host.hardware.bios.version": "6.00", - "package.cpe": "cpe:/a:McAfee Agent:5.7.4.399", - "host.domain": "", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:25.376048106Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "package" + ], + "ingested": "2023-09-25T21:55:25.376048106Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 560963, + "workgroup": "WORKGROUP" + }, + "id": "eade7a9d914c1e82ec2cd77223cd949593f05ce7", + "package": { + "architecture": "x86", + "cpe": "cpe:/a:McAfee Agent:5.7.6.251", + "description": "", + "id": "McAfeeAgent", + "installed": "1970-01-01T00:00:01Z", + "name": "McAfee Agent", + "path": "C:\\Program Files\\McAfee\\Agent\\", + "publisher": "McAfee, LLC.", + "size": 0, + "type": "installer", + "uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", + "version": "5.7.6.251", + "version_build": "251", + "version_major": "5", + "version_minor": "7", + "version_release": "6" + }, + "script": { + "current_duration": 6844.84, + "current_time": "2023-09-25T04:03:27Z", + "name": "Get-TychonSoftwareInventory.ps1", + "start": "2023-09-25T04:03:20Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index 690f552d220..c5d2be26924 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -20,14 +20,52 @@ processors: field: package.installed value: "1970-01-01T00:00:01Z" if: ctx.package.installed == '' + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true - gsub: field: package.size pattern: "[^0-9]" replacement: "" + - set: + field: package.size + value: 0 + ignore_failure: true + if: ctx.package.size == '' - gsub: field: package.version_build pattern: "[^0-9]" @@ -64,24 +102,14 @@ processors: value: tychon - set: field: event.category - value: software inventory + value: [package] + - set: + field: event.type + value: [info] - convert: field: script.current_duration type: float ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true on_failure: - set: field: event.kind diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml index 3d40f20614f..1dda1c00dff 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json index f454580e687..a8cd5579dcf 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json @@ -1,60 +1,63 @@ { - "events": [ - { - "rule.benchmark.profile.id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules", - "benchmark.name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.weight": "10.0", - "rule.title": "", - "rule.id": "", - "rule.oval.refid": "", - "script.type": "powershell", - "host.os.build": "22000", - "host.ip": "10.1.9.112", - "rule.name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", - "script.version": "0.1.0", - "host.hostname": "DESKTOP-TIUKL1R", - "host.hardware.manufacturer": "VMware, Inc.", - "benchmark.guid": "", - "script.start": "2023-06-15T20:14:11Z", - "host.os.name": "Microsoft Windows 11 Education N", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "rule.test_result": "not applicable", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "benchmark.hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "host.hardware.owner": "dcuser", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", - "host.ipv4": "10.1.9.112", - "host.os.version": "10.0.22000", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "script.name": "Invoke-TychonStigBenchmarkScan.ps1", - "oval.id": "oval:mil.disa.stig.windows11:def:253254", - "rule.finding_id": "", - "rule.oval.class": "compliance", - "rule.benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.benchmark.guid": "", - "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "oval.class": "compliance", - "host.biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", - "host.mac": "00:0C:29:EF:9A:EB", - "oval.refid": "", - "rule.severity": "medium", - "host.oem.model": "", - "host.uptime": "139370", - "benchmark.version": "1.2", - "script.current_time": "2023-06-15T20:19:35Z", - "benchmark.title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "rule.oval.id": "oval:mil.disa.stig.windows11:def:253254", - "benchmark.generated_utc": "2023-03-28T17:40:48", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "324194.34", - "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.hardware.bios.version": "6.00", - "host.domain": "", - "host.os.family": "Windows" - } - ] + "events": [ + { + "rule.benchmark.profile.id": "none", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "benchmark.name": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "rule.weight": "10.0", + "rule.title": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", + "rule.id": "xccdf_mil.disa.stig_rule_SV-213168r395811_rule", + "rule.oval.refid": "", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "rule.name": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", + "script.version": "2.3.141.0", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T05:03:17Z", + "host.os.name": "Microsoft Windows 10 Pro", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_xccdf_mil.disa.stig_rule_SV-213168r395811_rule_858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", + "rule.test_result": "not applicable", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "benchmark.hash": "858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", + "host.hardware.owner": "admin", + "host.workgroup": "WORKGROUP", + "benchmark.id": "xccdf_mil.disa.stig_benchmark_Adobe_Acrobat_Reader_DC_Continuous_Track_STIG", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "rule.vulnerability_id": "SV-79409", + "oval.id": "oval:mil.disa.stig.adobe.reader:def:10", + "rule.finding_id": "V-213168", + "rule.stig_id": "ARDC-CN-000005", + "rule.oval.class": "compliance", + "rule.benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "oval.class": "compliance", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "oval.refid": "", + "rule.severity": "medium", + "host.oem.model": "", + "host.uptime": "564559.6950263", + "benchmark.version": "002.002", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "script.name": "Invoke-TychonStigBenchmarkScan.ps1", + "rule.oval.id": "oval:mil.disa.stig.adobe.reader:def:10", + "benchmark.generated_utc": "1664376309000", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "10195.83", + "host.ipv6": "", + "script.current_time": "2023-09-25T05:03:27Z", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index a41fd0f681b..67fd3531118 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,28 +1,35 @@ { "expected": [ { - "@timestamp": "2023-07-28T18:14:39.219921509Z", + "@timestamp": "2023-09-25T21:55:25.564944350Z", "benchmark": { - "generated_utc": "2023-03-28T17:40:48", - "guid": "", - "hash": "B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", - "name": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml", - "version": "1.2" + "generated_utc": "1664376309000", + "hash": "858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", + "id": "xccdf_mil.disa.stig_benchmark_Adobe_Acrobat_Reader_DC_Continuous_Track_STIG", + "name": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "version": "002.002" }, "ecs": { "version": "8.8.0" }, "event": { "category": [ - "host" + "vulnerability", + "configuration" ], - "ingested": "2023-07-28T18:14:39.219921509Z", + "ingested": "2023-09-25T21:55:25.564944350Z", "kind": "state", - "module": "tychon" + "module": "tychon", + "type": [ + "info" + ] }, "host": { - "biossn": "1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB", + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, "domain": "", "hardware": { "bios": { @@ -33,65 +40,71 @@ "caption": "Intel64 Family 6 Model 45 Stepping 7" }, "manufacturer": "VMware, Inc.", - "owner": "dcuser", - "serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb" + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" }, - "hostname": "DESKTOP-TIUKL1R", - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", - "ipv4": "10.1.9.112", - "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": "10.1.9.51", + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": "00-0C-29-93-6A-F3", "oem": { "manufacturer": "", "model": "" }, "os": { - "build": "22000", + "build": "19045", "description": "", "family": "Windows", - "name": "Microsoft Windows 11 Education N", + "name": "Microsoft Windows 10 Pro", "organization": "", - "version": "10.0.22000" + "version": "2009" }, "type": "Workstation", - "uptime": 139370, + "uptime": 564559, "workgroup": "WORKGROUP" }, - "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP_oval:mil.disa.stig.windows11:def:253254_B5876182441699AE4B0B035ED3907DA0898FCA4BDE607D5320342F1862DE0379", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_xccdf_mil.disa.stig_rule_SV-213168r395811_rule_858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", "oval": { "class": "compliance", - "id": "oval:mil.disa.stig.windows11:def:253254", + "id": "oval:mil.disa.stig.adobe.reader:def:10", "refid": "" }, "rule": { "benchmark": { - "guid": "", "profile": { - "id": "xccdf_mil.disa.stig_profile_Disable_Slow_Rules" + "id": "none" }, - "title": "scap_mil.disa.stig_cref_U_MS_Windows_11_V1R2_STIG_SCAP_1-2_Benchmark-xccdf.xml" + "title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark" }, - "finding_id": "", - "id": "", - "name": "xccdf_mil.disa.stig_rule_SV-253254r828846_rule", + "finding_id": "V-213168", + "id": "xccdf_mil.disa.stig_rule_SV-213168r395811_rule", + "name": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", "oval": { "class": "compliance", - "id": "oval:mil.disa.stig.windows11:def:253254", + "id": "oval:mil.disa.stig.adobe.reader:def:10", "refid": "" }, "result": "not applicable", "severity": "medium", - "title": "", + "stig_id": "ARDC-CN-000005", + "title": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", + "vulnerability_id": "SV-79409", "weight": 10.0 }, "script": { - "current_duration": 324194.34, - "current_time": "2023-06-15T20:19:35Z", + "current_duration": 10195.83, + "current_time": "2023-09-25T05:03:27Z", "name": "Invoke-TychonStigBenchmarkScan.ps1", - "start": "2023-06-15T20:14:11Z", + "start": "2023-09-25T05:03:17Z", "type": "powershell", - "version": "0.1.0" + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" } } ] diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 814b9a47c3f..03b88ca4302 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -23,15 +23,14 @@ processors: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: stig + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + - convert: + field: host.uptime + type: string + ignore_missing: true - split: field: host.uptime separator: "\\.+" @@ -45,10 +44,22 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true - - gsub: - field: host.mac - pattern: ":" - replacement: "-" + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [vulnerability, configuration] + - set: + field: event.type + value: [info] - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index 6dd345cff24..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -1,82 +1,45 @@ -- 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.' +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: tychon 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 + - name: id + description: TYCHON unique host identifier. 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.' +- name: elastic_agent type: group fields: - name: id - level: core + description: Elastic Agent Id. type: keyword - ignore_above: 1024 - description: Unique container id. - - name: image.name - level: extended + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. type: keyword - ignore_above: 1024 - description: Name of the image the container was built on. +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date - name: name - level: extended + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. type: keyword - ignore_above: 1024 - description: Container name. - name: host title: Host group: 2 @@ -85,51 +48,15 @@ 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - name: biossn description: Host BIOS Serial Number. type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. + description: Host IPv4 addresses. + type: ip - name: ipv6 - level: core + description: Host IPv6 addresses. type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - name: workgroup description: Host Workgroup Network Name. type: keyword @@ -150,19 +77,10 @@ type: keyword - name: description description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - name: hardware type: group fields: @@ -174,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index 7329d8fd21c..9487a929018 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -48,6 +48,8 @@ name: host.architecture - external: ecs name: host.name +- external: ecs + name: host.uptime - external: ecs name: host.os.kernel - external: ecs diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 864e77b3f8f..903e805d584 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -1,9 +1,9 @@ -- name: id - description: Tychon Unique Stig Id. - type: keyword - name: benchmark type: group fields: + - name: id + description: Benchmark ID. + type: keyword - name: guid description: Benchmark GUID. type: keyword @@ -91,36 +91,3 @@ - name: refid description: Open Vulnerabilities and Assessment Language Reference Identifier. type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/data_stream/tychon_stig/manifest.yml index cf335ff8247..57e4a736836 100644 --- a/packages/tychon/data_stream/tychon_stig/manifest.yml +++ b/packages/tychon/data_stream/tychon_stig/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json index e7baf9ee5d6..8700987137b 100644 --- a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json @@ -1,56 +1,57 @@ { - "events": [ - { - "volume.purpose": "text|Optional description or designation for volume.", - "volume.file_system": "keyword|Type of file system. ex. NTFS", - "volume.serial_number": "keyword| Volumes serial number. ex. 1975801541", - "volume.size": "long|Total volume size. ex. 2027835879424", - "script.type": "powershell", - "host.os.build": "22621", - "host.ip": "10.154.5.200", - "volume.percent_full": "keyword|Representating percent of the volume storage spaced is used.", - "host.hostname": "DESKTOP-AF7CIQM", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-14T07:32:54Z", - "@timestamp": "2023-08-14T07:32:54Z", - "host.os.name": "Microsoft Windows 11 Pro", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.os.organization": "", - "host.hardware.owner": "justin.skidmore@tychon.io", - "volume.block_size": "int|Block size.", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.154.5.200", - "host.os.version": "2009", - "volume.drive.type": "int|Numeric code used to categorize and identify different types of drives in Windows.", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "volume.freespace": "long|Amount of free storage space remaining on drive. ex. 1444925468672", - "volume.drive.letter": "keyword|Drive letter.", - "volume.power_management_supported": "bool|Is power management supported on this volume.", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "volume.dirty_bit_set": "bool|File system repair or consistency check has been set.", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.mac": "60:E3:2B:4B:40:E2", - "volume.id": "keyword|Unique volume identifier. ex. /Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", - "volume.automount": "bool|Is volume auto-mounted", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "/Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", - "host.hardware.serial_number": "HYLCKG3", - "script.name": "Get-TychonVolumeInfo.ps1", - "script.version": "2.3.44.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "volume.dos_device_path": "keyword|DOS device name or file.", - "script.current_duration": "444.85", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", - "script.current_time": "2023-08-14T07:32:54Z", - "host.hardware.bios.version": "1.20.1", - "volume.name": "keyword|Name of the volume if applicable", - "volume.system_volume": "bool|Is a system parition", - "host.domain": "", - "volume.page_file_present": "bool|Has swap or supplemental memory storage.", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "volume.file_system": "NTFS", + "volume.serial_number": "1591285579", + "volume.size": "52424704", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T21:04:42Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "volume.dos_device_path": "\\Device\\HarddiskVolume1", + "host.os.organization": "", + "volume.block_size": "4096", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "volume.drive.type": "3", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "volume.freespace": "18493440", + "volume.drive.letter": "", + "volume.power_management_supported": "false", + "volume.purpose": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "volume.dirty_bit_set": "false", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "volume.id": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "volume.automount": "true", + "host.oem.model": "", + "host.uptime": "622244.0713174", + "id": "10aa4446888ff52f03574182167ec9bd7e8e1454", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-TychonVolumeInfo.ps1", + "script.version": "2.3.141.0", + "volume.page_file_present": "false", + "host.oem.manufacturer": "", + "host.os.description": "", + "volume.percent_full": "64.72", + "script.current_duration": "6931.80", + "host.ipv6": "", + "script.current_time": "2023-09-25T21:04:49Z", + "host.hardware.bios.version": "6.00", + "volume.name": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "volume.system_volume": "true", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json index 64398acae3b..7a0f32749d9 100644 --- a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json @@ -1,56 +1,100 @@ { "expected": [ { - "volume.purpose": "text|Optional description or designation for volume.", - "volume.file_system": "keyword|Type of file system. ex. NTFS", - "volume.serial_number": "keyword| Volumes serial number. ex. 1975801541", - "volume.size": "long|Total volume size. ex. 2027835879424", - "script.type": "powershell", - "host.os.build": "22621", - "host.ip": "10.154.5.200", - "volume.percent_full": "keyword|Representating percent of the volume storage spaced is used.", - "host.hostname": "DESKTOP-AF7CIQM", - "host.hardware.manufacturer": "Dell Inc.", - "script.start": "2023-08-14T07:32:54Z", - "@timestamp": "2023-08-14T07:32:54Z", - "host.os.name": "Microsoft Windows 11 Pro", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.os.organization": "", - "host.hardware.owner": "justin.skidmore@tychon.io", - "volume.block_size": "int|Block size.", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.154.5.200", - "host.os.version": "2009", - "volume.drive.type": "int|Numeric code used to categorize and identify different types of drives in Windows.", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "volume.freespace": "long|Amount of free storage space remaining on drive. ex. 1444925468672", - "volume.drive.letter": "keyword|Drive letter.", - "volume.power_management_supported": "bool|Is power management supported on this volume.", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "volume.dirty_bit_set": "bool|File system repair or consistency check has been set.", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.mac": "60:E3:2B:4B:40:E2", - "volume.id": "keyword|Unique volume identifier. ex. /Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", - "volume.automount": "bool|Is volume auto-mounted", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "/Volume{d61c491d-c29b-476f-ba9d-fa03eb04f5c1}/", - "host.hardware.serial_number": "HYLCKG3", - "script.name": "Get-TychonVolumeInfo.ps1", - "script.version": "2.3.44.0", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "volume.dos_device_path": "keyword|DOS device name or file.", - "script.current_duration": "444.85", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33", - "script.current_time": "2023-08-14T07:32:54Z", - "host.hardware.bios.version": "1.20.1", - "volume.name": "keyword|Name of the volume if applicable", - "volume.system_volume": "bool|Is a system parition", - "host.domain": "", - "volume.page_file_present": "bool|Has swap or supplemental memory storage.", - "host.os.family": "Windows" + "@timestamp": "2023-09-25T21:55:25.744268763Z", + "ecs": { + "version": "8.8.0" + }, + "event": { + "category": [ + "configuration" + ], + "ingested": "2023-09-25T21:55:25.744268763Z", + "kind": "state", + "module": "tychon", + "type": [ + "info" + ] + }, + "host": { + "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "cloud": { + "hosted": "false" + }, + "domain": "", + "hardware": { + "bios": { + "name": "Phoenix Technologies LTD", + "version": "6.00" + }, + "cpu": { + "caption": "Intel64 Family 6 Model 45 Stepping 7" + }, + "manufacturer": "VMware, Inc.", + "owner": "admin", + "serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3" + }, + "hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "ip": [ + "10.1.9.51" + ], + "ipv4": [ + "10.1.9.51" + ], + "ipv6": "", + "mac": [ + "00-0C-29-93-6A-F3" + ], + "oem": { + "manufacturer": "", + "model": "" + }, + "os": { + "build": "19045", + "description": "", + "family": "Windows", + "name": "Microsoft Windows 10 Pro", + "organization": "", + "version": "2009" + }, + "type": "Workstation", + "uptime": 622244, + "workgroup": "WORKGROUP" + }, + "id": "10aa4446888ff52f03574182167ec9bd7e8e1454", + "script": { + "current_duration": 6931.8, + "current_time": "2023-09-25T21:04:49Z", + "name": "Get-TychonVolumeInfo.ps1", + "start": "2023-09-25T21:04:42Z", + "type": "powershell", + "version": "2.3.141.0" + }, + "tychon": { + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + }, + "volume": { + "automount": "true", + "block_size": 4096, + "dirty_bit_set": "false", + "dos_device_path": "\\Device\\HarddiskVolume1", + "drive": { + "letter": "", + "type": "3" + }, + "file_system": "NTFS", + "freespace": 18493440, + "id": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "name": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "page_file_present": "false", + "percent_full": 64.72, + "power_management_supported": "false", + "purpose": "", + "serial_number": "1591285579", + "size": 52424704, + "system_volume": "true" + } } ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index c49230cd122..cf42e4afd48 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -18,24 +18,25 @@ processors: - set: field: event.module value: tychon + - split: + field: host.ip + separator: "," + ignore_missing: true - split: field: host.ipv4 separator: "," ignore_missing: true - - set: - field: event.category - value: volumes - - set: - field: volume.percent_full - value: "0" - if: ctx.volume.percent_full == 'NaN' - gsub: - field: volume.percent_full - pattern: "%" - replacement: "" + field: host.mac + pattern: ":" + replacement: "-" + - split: + field: host.mac + separator: "," + ignore_missing: true - convert: - field: script.current_duration - type: float + field: host.uptime + type: string ignore_missing: true - split: field: host.uptime @@ -50,6 +51,36 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - convert: + field: volume.block_size + type: long + ignore_missing: true + - convert: + field: volume.freespace + type: long + ignore_missing: true + - convert: + field: volume.percent_full + type: float + ignore_missing: true + - convert: + field: volume.size + type: long + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true on_failure: - set: field: event.kind diff --git a/packages/tychon/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/data_stream/tychon_volume/fields/agent.yml index 2f024c089ab..45dccd05b24 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/agent.yml @@ -1,6 +1,12 @@ - name: id description: TYCHON unique document identifier. type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword - name: elastic_agent type: group fields: @@ -18,7 +24,7 @@ fields: - name: current_duration description: Scanner Script Duration. - type: float + type: long - name: current_time description: Current datetime. type: date @@ -34,12 +40,6 @@ - name: version description: Scanner Script Version. type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword - name: host title: Host group: 2 @@ -77,7 +77,7 @@ type: keyword - name: description description: Host OS Description. - type: keyword + type: text - name: organization description: Host OS Organization. type: keyword @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: keyword + type: version - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/data_stream/tychon_volume/fields/fields.yml index 1aa277c286f..47b85ce669b 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/fields.yml @@ -1,40 +1,40 @@ - name: volume type: group fields: - - name: automount - type: boolean - - name: block_size - type: long - - name: dirty_bit_set - type: boolean - - name: dos_device_path - type: text - - name: volume - type: group - fields: - - name: letter + - name: automount + type: boolean + - name: block_size + type: long + - name: dirty_bit_set + type: boolean + - name: dos_device_path + type: text + - name: drive + type: group + fields: + - name: letter + type: keyword + - name: type + type: keyword + - name: file_system type: keyword - - name: type + - name: freespace + type: long + - name: id type: keyword - - name: file_system - type: keyword - - name: freespace - type: long - - name: id - type: keyword - - name: name - type: keyword - - name: page_file_present - type: boolean - - name: percent_full - type: float - - name: power_management_supported - type: boolean - - name: purpose - type: keyword - - name: serial_number - type: keyword - - name: size - type: long - - name: system_volume - type: boolean \ No newline at end of file + - name: name + type: keyword + - name: page_file_present + type: boolean + - name: percent_full + type: float + - name: power_management_supported + type: boolean + - name: purpose + type: keyword + - name: serial_number + type: keyword + - name: size + type: long + - name: system_volume + type: boolean diff --git a/packages/tychon/data_stream/tychon_volume/manifest.yml b/packages/tychon/data_stream/tychon_volume/manifest.yml index 16a2eb0985e..2ec9dafba5d 100644 --- a/packages/tychon/data_stream/tychon_volume/manifest.yml +++ b/packages/tychon/data_stream/tychon_volume/manifest.yml @@ -29,5 +29,5 @@ streams: 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. \ No newline at end of file + 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/tychon/docs/README.md b/packages/tychon/docs/README.md index 1836d5bd952..12be53f9dd3 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -1,6 +1,6 @@ # TYCHON Agentless -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source vulnerability and STIG data from endpoints without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source Master Endpoint Record data from endpoints, including vulnerability and STIG results, without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) ## Compatibility @@ -29,7 +29,7 @@ TYCHON scans Endpoint ARP Tables and returns the results. | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| destination.hostname | | keyword | +| destination.hostname | The Translated Hostname of the IP in the ARP Table | 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.name | | keyword | @@ -49,7 +49,7 @@ TYCHON scans Endpoint ARP Tables and returns the results. | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -81,15 +81,15 @@ TYCHON scans Endpoint ARP Tables and returns the results. | 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 | Source file current offset. | long | | network.direction | Direction of the network traffic. 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.interface | | keyword | -| network.state | | keyword | +| network.interface | The interface the ARP Table has associated the destination. | keyword | +| network.state | Current state | 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 | | script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | long | +| script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | +| script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -137,7 +137,7 @@ TYCHON scans for Endpoint CPU's and returns the results. | host.cpu.virtualization_firmware_enabled | | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -169,11 +169,11 @@ TYCHON scans for Endpoint CPU's and returns the results. | 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 | Source file current offset. | long | | script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | long | +| script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | +| script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -230,13 +230,14 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | host.os.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | | input.type | Source file 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 | Source file current offset. | long | | script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | long | +| script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | @@ -280,22 +281,17 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | 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.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 | +| elastic.service.agent.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | +| elastic.service.agent.endpoint.malware | Elastic Service Endpoint Malware. | keyword | +| elastic.service.agent.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | +| elastic.service.agent.endpoint.status | Elastic Service Endpoint Status. | keyword | +| elastic.service.agent.endpoint.version | Elastic Service Endpoint Version. | version | +| elastic.service.agent.status | Elastic Service Agent Status. | keyword | +| elastic.service.agent.version | Elastic Service Agent Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | @@ -310,37 +306,28 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | 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.biossn | Host BIOS Serial Number. | 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.epp.product | Epp products installed | keyword | | host.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | -| host.ip | Host ip addresses. | ip | -| host.ipv4 | Host ip v4 addresses. | keyword | -| host.ipv6 | Host ip v6 addresses. | keyword | -| host.mac | Host mac addresses. | keyword | +| host.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | | host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.description | Host OS Description. | text | | host.os.kernel | Operating system kernel version as a raw string. | keyword | -| host.os.name | Operating system name, without the version. | keyword | | host.os.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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.trellix.product | trellix products installed | 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 | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. | keyword | +| id | TYCHON unique document identifier. | keyword | | input.type | Source file 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 | Source file current offset. | long | @@ -349,13 +336,27 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | package.name | Package name | keyword | | package.reference | Home page or reference URL of the software in this package, if available. | keyword | | package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| script.current_duration | Current Scanner Script Duration. | long | -| script.current_time | Current Script datetime. | date | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | +| trellix.service.accm.status | Trellix Service Accum Status. | keyword | +| trellix.service.accm.version | Trellix Service Accum Version. | version | +| trellix.service.dlp.status | Trellix Service DLP Status. | keyword | +| trellix.service.dlp.version | Trellix Service DLP Version. | version | +| trellix.service.ens.signature_version | Trellix Service ENS Signature Version. | keyword | +| trellix.service.ens.status | Trellix Service ENS Signature status. | keyword | +| trellix.service.ens.version | Trellix Service ENS Signature Version. | version | +| trellix.service.ma.status | Trellix Service MA Status. | keyword | +| trellix.service.ma.version | Trellix Service MA Version. | version | +| trellix.service.pa.status | Trellix Service PA Status. | keyword | +| trellix.service.pa.version | Trellix Service PA Version. | version | +| trellix.service.rsd.status | Trellix Service RSD Status. | keyword | +| trellix.service.rsd.version | Trellix Service RSD Version. | version | +| tychon.id | TYCHON unique host identifier. | keyword | | windows_defender.service.antimalware.engine_version | Windows Defender Antimalware Engine Version. | keyword | | windows_defender.service.antimalware.product_version | Windows Defender Antimalware Product Version. | keyword | | windows_defender.service.antimalware.signature_version | Windows Defender Antimalware Signature Version. | keyword | @@ -408,7 +409,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -423,7 +424,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -451,14 +452,14 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | 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 | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | -| service.description | | keyword | -| service.display_name | | keyword | +| service.description | The description text on the serivce. | keyword | +| service.display_name | The human readable name of the service | keyword | | service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | | service.state | Current state of the service. | keyword | | source.ip | IP address of the source (IPv4 or IPv6). | ip | @@ -485,31 +486,30 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| disk.adapter.serial_number | | keyword | -| disk.boot_from | | boolean | -| disk.bus_type | | keyword | -| disk.clustered | | boolean | -| disk.firmware.version | | keyword | -| disk.firmware_version | | keyword | -| disk.guid | | keyword | -| disk.health_status | | keyword | -| disk.highly_available | | boolean | -| disk.is_boot | | boolean | -| disk.location.adapter | | integer | -| disk.location.bus | | integer | -| disk.location.device | | integer | -| disk.location.function | | integer | -| disk.manufacturer | | keyword | -| disk.model | | keyword | -| disk.name | | keyword | -| disk.number | | integer | -| disk.number_of_partitions | | integer | -| disk.offline | | boolean | -| disk.operational_status | | keyword | -| disk.partition_style | | keyword | -| disk.serial_number | | keyword | -| disk.size | | long | -| disk.system | | boolean | +| disk.adapter.serial_number | Disk Adatper Serial Number | keyword | +| disk.boot_from | OS booted from this disk | boolean | +| disk.bus_type | THe Disk Bus Type | keyword | +| disk.clustered | Is the Disk Clustered | boolean | +| disk.firmware.version | Disk Firmware version | keyword | +| disk.guid | Disk UUID | keyword | +| disk.health_status | Health status of the disk | keyword | +| disk.highly_available | Disk is marked as highly available | boolean | +| disk.is_boot | Disk is a boot disk | boolean | +| disk.location.adapter | Zero index adapter location | integer | +| disk.location.bus | Disk Bus Location | integer | +| disk.location.device | Disk Device Location | integer | +| disk.location.function | Disk Function Location | integer | +| disk.manufacturer | The manufacturer of the Disk | keyword | +| disk.model | The model of the disk | keyword | +| disk.name | The firendly name of the disk | keyword | +| disk.number | The number assigned to the disk | integer | +| disk.number_of_partitions | Total number of partitions on the drive | integer | +| disk.offline | Is the disk offline | boolean | +| disk.operational_status | Operational Status of the disk | keyword | +| disk.partition_style | Partition style | keyword | +| disk.serial_number | The unique serial number of the drive | keyword | +| disk.size | Total Size of the disk | long | +| disk.system | Is this a system drive | boolean | | 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 | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | @@ -526,7 +526,7 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -541,7 +541,7 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -557,7 +557,7 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | input.type | Source file 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 | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | @@ -609,7 +609,7 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -624,7 +624,7 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -640,7 +640,7 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | input.type | Source file 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 | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | @@ -687,11 +687,11 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | event.ufi.enabled | | boolean | | host.architecture | Operating system architecture. | keyword | | host.biossn | Host BIOS Serial Number. | keyword | -| host.cpu.caption | | keyword | -| host.cpu.count | | integer | +| host.cpu.caption | Description of the CPU | keyword | +| host.cpu.count | Total Number of CPUs on the system | integer | | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -702,28 +702,28 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.ipv4 | Host IPv4 addresses. | ip | | host.ipv6 | Host IPv6 addresses. | keyword | | 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.memory.size | | long | -| host.motherboard.chipset | | keyword | -| host.motherboard.serial_number | | keyword | +| host.memory.size | Total RAM Size | long | +| host.motherboard.chipset | Chipset of the Motherboard | keyword | +| host.motherboard.serial_number | Serial Number of the Motherboard | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | -| host.os.edition | | keyword | +| host.os.description | Host OS Description. | text | +| host.os.edition | The Edition of the Opearting System | keyword | | host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | -| host.os.vendor | | keyword | +| host.os.vendor | The vendor of the Operating System | keyword | | host.os.version | Operating system version as a raw string. | keyword | -| host.security.antivirus.exists | | boolean | -| host.security.antivirus.name | | keyword | -| host.security.antivirus.state | | keyword | -| host.security.antivirus.status | | keyword | -| host.tpm.compliant | | boolean | -| host.tpm.digest.id | | keyword | -| host.tpm.present | | boolean | -| host.tpm.version | | keyword | +| host.security.antivirus.exists | Does the OS state that an AV program is installed | boolean | +| host.security.antivirus.name | Product name the Operating System states is the AV program installed | keyword | +| host.security.antivirus.state | The Operating System state of the AV product | keyword | +| host.security.antivirus.status | The Operating System current status of the AV product it says is installed. | keyword | +| host.tpm.compliant | Is the endpoint compliant with TPM security settings | boolean | +| host.tpm.digest.id | What digest is being used by TPM | keyword | +| host.tpm.present | Is TPM module present on the operating system | boolean | +| host.tpm.version | What version of TPM is being used | 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 | | host.uptime | Seconds the host has been up. | long | | host.virtualization_status | | keyword | @@ -731,17 +731,17 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | id | TYCHON unique document identifier. | keyword | | input.type | Source file type. | keyword | | log.offset | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | -| tychon.definition.oval | | date | -| tychon.definition.stig | | date | +| tychon.definition.oval | What version of the TYCHON oval defitnions are currently on this endpoint | date | +| tychon.definition.stig | What version of the Benchmark checks are on this endpoint | date | | tychon.id | TYCHON unique host identifier. | keyword | -| tychon.version.agent | | version | -| tychon.version.content | | version | +| tychon.version.agent | The TYCHON Agent Version installed on the endpoint | version | +| tychon.version.content | The TYCHON Agentless Version installed on the endpoint | version | ### Endpoint Network Adapters Information @@ -764,39 +764,46 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | error.message | Error message. | match_only_text | | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | -| host.adapter.alias | | keyword | -| host.adapter.description | | text | -| host.adapter.dhcp.enabled | | boolean | -| host.adapter.dhcp.lease_expires | | date | -| host.adapter.dhcp.lease_obtained | | date | -| host.adapter.dhcp.server | | ip | -| host.adapter.domain | | keyword | -| host.adapter.driver.date | | date | -| host.adapter.driver.description | | text | -| host.adapter.driver.file_name | | keyword | -| host.adapter.driver.name | | keyword | -| host.adapter.driver.provider | | keyword | -| host.adapter.driver.version | | keyword | -| host.adapter.gateway | | ip | -| host.adapter.id | | keyword | -| host.adapter.ip | | ip | -| host.adapter.ip_filter.enabled | | boolean | -| host.adapter.link_speed | | long | -| host.adapter.mac | | keyword | -| host.adapter.media.connection_state | | keyword | -| host.adapter.media.type | | keyword | -| host.adapter.mtu | | integer | -| host.adapter.ndis.version | | keyword | -| host.adapter.subnet_bit | | integer | -| host.adapter.virtual | | boolean | -| host.adapter.vlan.id | | keyword | -| host.adapter.wifi.enabled | | boolean | -| host.adapter.wifi.signal_percent | | integer | -| host.adapter.wins_server | | keyword | +| host.adapter.alias | The Alias given to this adapter | keyword | +| host.adapter.description | The network adatper description | text | +| host.adapter.dhcp.enabled | Is DHCP Enabled on this adatper | boolean | +| host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | +| host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | +| host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | +| host.adapter.domain | What domain was assigned to this adatper | keyword | +| host.adapter.driver.date | Date the driver was installed | date | +| host.adapter.driver.description | Description of the driver | text | +| host.adapter.driver.file_name | Driver File name | keyword | +| host.adapter.driver.name | Name of the driver | keyword | +| host.adapter.driver.provider | Company that provided the driver | keyword | +| host.adapter.driver.version | Version of the driver | keyword | +| host.adapter.gateway | Gateway IP Address | ip | +| host.adapter.id | ID Of the adapter | keyword | +| host.adapter.ip | IP Addresses assigned to the adatper | ip | +| host.adapter.ip_filter.enabled | Is IP Filtering Enabled | boolean | +| host.adapter.link_speed | Link speed of the adatper | long | +| host.adapter.mac | Hardware MAC Address | keyword | +| host.adapter.media.connection_state | Current Connection State | keyword | +| host.adapter.media.type | Current Connection Media Type | keyword | +| host.adapter.mtu | MTU Size | integer | +| host.adapter.ndis.version | NDIS Version | keyword | +| host.adapter.subnet_bit | Subnet BIT | integer | +| host.adapter.virtual | Is adapter virutal | boolean | +| host.adapter.vlan.id | The VLAN ID | keyword | +| host.adapter.wifi.authentication | The Authentication method used to connected to the WIFI Router | keyword | +| host.adapter.wifi.band | The band used to connected to the WIFI Router | keyword | +| host.adapter.wifi.bssid | The Connected WIFI Router Hardware Address | keyword | +| host.adapter.wifi.channel | The channel used to connected to the WIFI Router | keyword | +| host.adapter.wifi.cipher | The CIPHER used to connected to the WIFI Router | keyword | +| host.adapter.wifi.enabled | Is WIFI Enabled | boolean | +| host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | +| host.adapter.wifi.signal_percent | Signal strenth to connected WIFI Router | integer | +| host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | +| host.adapter.wins_server | The WINS Server attached to this adatper | keyword | | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -810,7 +817,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | | host.os.name | Operating system name, without the version. | keyword | | host.os.name.text | Multi-field of `host.os.name`. | match_only_text | @@ -822,7 +829,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | id | TYCHON unique document identifier. | keyword | | input.type | Source file type. | keyword | | log.offset | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | @@ -865,7 +872,7 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -880,7 +887,7 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -912,7 +919,7 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | package.version_major | | integer | | package.version_minor | | integer | | package.version_release | | integer | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | @@ -945,18 +952,6 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | benchmark.name | Benchmark Name. | keyword | | benchmark.title | Benchmark Title. | keyword | | benchmark.version | Benchmark Version. | 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.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 | @@ -975,35 +970,26 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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. | keyword | -| host.ip | Host ip addresses. | ip | -| host.ipv4 | Host ip v4 addresses. | keyword | -| host.ipv6 | Host ip v6 addresses. | keyword | -| host.mac | Host mac addresses. | keyword | +| host.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | | host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.description | Host OS Description. | text | | host.os.kernel | Operating system kernel version as a raw string. | keyword | -| host.os.name | Operating system name, without the version. | keyword | | host.os.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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 | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | -| id | Tychon Unique Stig Id. | keyword | +| id | TYCHON unique document identifier. | keyword | | input.type | Source file 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 | Source file current offset. | long | @@ -1037,6 +1023,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | keyword | | tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | ### Endpoint Volume Information @@ -1073,7 +1060,7 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.bios.version | Host BIOS Version. | version | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -1088,7 +1075,7 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | keyword | +| host.os.description | Host OS Description. | text | | 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 | @@ -1104,7 +1091,7 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | input.type | Source file 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 | Source file current offset. | long | -| script.current_duration | Scanner Script Duration. | float | +| script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | @@ -1116,8 +1103,6 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | volume.block_size | | long | | volume.dirty_bit_set | | boolean | | volume.dos_device_path | | text | -| volume.drive.letter | | keyword | -| volume.drive.type | | keyword | | volume.file_system | | keyword | | volume.freespace | | long | | volume.id | | keyword | @@ -1129,4 +1114,6 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | volume.serial_number | | keyword | | volume.size | | long | | volume.system_volume | | boolean | +| volume.volume.letter | | keyword | +| volume.volume.type | | keyword | diff --git a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..521485625af --- /dev/null +++ b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,48 @@ +{ + "id": "07dc1be0-4270-11ee-83e4-c92ed141b9e5_1", + "name": "Weak WIFI Authentication in use", + "tags": [], + "interval": "5m", + "enabled": true, + "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", + "risk_score": 21, + "severity": "low", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.techtarget.com/searchnetworking/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", + "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json new file mode 100644 index 00000000000..13fc38ee5ad --- /dev/null +++ b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json @@ -0,0 +1,54 @@ +{ + "id": "10359860-1139-11ee-af86-538da1394f27_1", + "type": "security-rule", + "attributes": { + "name": "CAT 1 IAVA Vulnerability Detected", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A category one IAVA has been detected as being vulnerable", + "risk_score": 90, + "severity": "high", + "note": "Investigator should work to patch this system for this IAVA as quickly as possible.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "10359860-1139-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..26c1c35adee --- /dev/null +++ b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,57 @@ +{ + "id": "11481830-426d-11ee-83e4-c92ed141b9e5_1", + "name": "Large number of failed Vulnerabilities ", + "tags": [ + "CVE", + "TYCHON" + ], + "interval": "1h", + "enabled": true, + "description": "This endpoint has been determined to have a high number of total vulnerabilities failed, this can indicate an extremely exposed endpoint.", + "risk_score": 73, + "severity": "high", + "note": "Due to the high number of failed CVE checks, it is recommended that the security administrator quarantine this system immediately and bring the machine up to date with all patches. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3900s", + "rule_id": "5be38411-3902-4686-8209-1ab75a6d3847", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 30, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..95c753db703 --- /dev/null +++ b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,53 @@ +{ + "id": "17a4a660-4111-11ee-83e4-c92ed141b9e5_1", + "name": "Past Due Vulnerability Failed", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON tracks when vulnerabilities are past expiration to ensure systems are patched before exploits are released or to reduce the attack surface of the endpoint. Due dates are generated from 3 rules:\n1. CISA - Exact CISA Due Date\n2. IAVA - 18 Days from when TYCHON records an IAVA is released\n3. NVD - If a Vulnerability is marked as critical, the due date is generated as 30 days after its release.", + "risk_score": 99, + "severity": "critical", + "note": "Analysts should quarantine hosts that have out-of-date vulnerabilities, these are normally weaknesses that have active exploits in the wild. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "beeea32f-31ba-4be8-9e2c-14de47280aac", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://www.cisa.gov/known-exploited-vulnerabilities-catalog" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.result : \"fail\" and vulnerability.due_date < now", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json new file mode 100644 index 00000000000..24d5cf80b8f --- /dev/null +++ b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json @@ -0,0 +1,61 @@ +{ + "id": "2e5a7e20-1137-11ee-af86-538da1394f27_1", + "type": "security-rule", + "attributes": { + "name": "Windows Defender Feature Reported as Disabled", + "tags": [ + "TYCHON", + "EPP", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A Feature in Windows Defender has been set to disabled in the latest report from the TYCHON Agentless Module", + "risk_score": 60, + "severity": "medium", + "note": "Analysts should look into the history of this endpoint to figure out when the feature was disabled and work to re-enable the feature.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "2e5a7e20-1137-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [ + { + "id": "T1089", + "reference": "https://attack.mitre.org/techniques/T1089", + "name": "Disabling Security Tools", + "subtechnique": [] + } + ] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", + "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json new file mode 100644 index 00000000000..64926bf7e5a --- /dev/null +++ b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json @@ -0,0 +1,54 @@ +{ + "id": "2e9c9ac0-1138-11ee-af86-538da1394f27_1", + "type": "security-rule", + "attributes": { + "name": "Critical Vulnerability Failed", + "tags": [ + "TYCHON", + "CCRI", + "CVE" + ], + "interval": "5m", + "enabled": true, + "description": "A vulnerability that has been categorized as Critical by NVD has been reported as failed.", + "risk_score": 90, + "severity": "high", + "note": "Investigators should get systems with critical vulnerabilities patched and ensure mitigations are in place while the system is vulenrable.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "2e9c9ac0-1138-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..39c855a4d7b --- /dev/null +++ b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,52 @@ +{ + "id": "38a72d20-426e-11ee-83e4-c92ed141b9e5_1", + "name": "TPM Compliance Failed", + "tags": [ + "TYCHON", + "STIG" + ], + "interval": "5m", + "enabled": true, + "description": "This host has been determined by TYCHON to be non-compliant with the Trusted Platform Module (TPM), this is due to it being not present or at the wrong version.", + "risk_score": 47, + "severity": "medium", + "note": "Enable TPM 2.0 on this machine, if it is unable to be enabled because the host does not support it, determine the risk and take appropriate measures.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0006", + "reference": "https://attack.mitre.org/tactics/TA0006", + "name": "Credential Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [ + "https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.tpm.compliant : false ", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..7d379786d15 --- /dev/null +++ b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,42 @@ +{ + "id": "3a1028a0-4292-11ee-83e4-c92ed141b9e5_1", + "name": "TYCHON Benchmark SCAP Definition File Out of Date", + "tags": [ + "TYCHON", + "SCAP" + ], + "interval": "24h", + "enabled": true, + "description": "TYCHON updates its SCAP definitions daily and should be no more than 120 days old to ensure you are working from the most up-to-date requirements and settings. ", + "risk_score": 47, + "severity": "medium", + "note": "TYCHON Definitions are updated daily, check the local host logs and see if there are issues with TYCHON definitions updating. You can obtain the latest version from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-86460s", + "rule_id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.stig < \"now-120d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..d77553fc873 --- /dev/null +++ b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,42 @@ +{ + "id": "75197a50-428d-11ee-83e4-c92ed141b9e5_1", + "name": "TYCHON Vulnerability Definitions Out of Date", + "tags": [ + "TYCHON", + "CVE" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON updates its definitions daily for vulnerability checks, if systems are too far out of date you are not getting the results for the most recent vulnerabilities further affecting your attack surface.", + "risk_score": 73, + "severity": "high", + "note": "Review the endpoint event logs and determine why TYCHON definitions are not being updated and pushed. Ensure you have downloaded the latest definition installers from the TYCHON support site.\n\nhttps://support.tychon.io", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [], + "to": "now", + "references": [ + "https://support.tychon.io" + ], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "tychon.definition.oval < \"now-30d\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json new file mode 100644 index 00000000000..5e2befb15ae --- /dev/null +++ b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json @@ -0,0 +1,53 @@ +{ + "id": "867e3450-1139-11ee-af86-538da1394f27_1", + "type": "security-rule", + "attributes": { + "name": "High STIG/SCAP Check Failed", + "tags": [ + "TYCHON", + "CCRI", + "SCAP" + ], + "interval": "5m", + "enabled": true, + "description": "A High Severity STIG/SCAP Check failed on an endpoint.", + "risk_score": 60, + "severity": "medium", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "867e3450-1139-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "query": "rule.result : \"fail\" and rule.severity : \"high\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json new file mode 100644 index 00000000000..d9dafd8ca1c --- /dev/null +++ b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json @@ -0,0 +1,54 @@ +{ + "id": "934a39a0-1138-11ee-af86-538da1394f27_1", + "type": "security-rule", + "attributes": { + "name": "High Vulnerability Failed", + "tags": [ + "TYCHON", + "CVE", + "CCRI" + ], + "interval": "5m", + "enabled": true, + "description": "A host with a high-severity CVE was flagged as being vulnerable.", + "risk_score": 60, + "severity": "medium", + "note": "Investigator should work to resolve this patch and keep a close monitor on this endpoint.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "934a39a0-1138-11ee-af86-538da1394f27", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT\u0026CK", + "tactic": { + "id": "TA0001", + "reference": "https://attack.mitre.org/tactics/TA0001", + "name": "Initial Access" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", + "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", + "filters": [], + "throttle": "no_actions", + "actions": [] + } +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..e0f44eec534 --- /dev/null +++ b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,54 @@ +{ + "id": "afdf3de0-4289-11ee-83e4-c92ed141b9e5_1", + "name": "New Device Discovered", + "tags": [ + "TYCHON", + "ARP" + ], + "interval": "8h", + "enabled": false, + "description": "TYCHON pulls the ARP tables from endpoints, when new devices are found they should be investigated and validated.", + "risk_score": 21, + "severity": "low", + "note": "New devices come online and offline constantly, the MAC address should be investigated and resolved.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-32400s", + "rule_id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "new_terms", + "query": "not destination.mac : \"ff-ff-ff-ff-ff-ff\" ", + "new_terms_fields": [ + "destination.mac" + ], + "history_window_start": "now-7d", + "filters": [], + "language": "kuery", + "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..d1f291155f6 --- /dev/null +++ b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,57 @@ +{ + "id": "b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1", + "name": "High number of SCAP Failures", + "tags": [ + "TYCHON", + "CCRI" + ], + "interval": "1h", + "enabled": true, + "description": "TYCHON has reported a high number of SCAP failures for an endpoint. This can indicate a very weak security posture for an endpoint.", + "risk_score": 47, + "severity": "medium", + "note": "The system may need to be isolated. Investigate the SCAP results for this system and perform fixes for all High and Medium checks. ", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-3660s", + "rule_id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0007", + "reference": "https://attack.mitre.org/tactics/TA0007", + "name": "Discovery" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "threshold", + "language": "kuery", + "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", + "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", + "filters": [], + "threshold": { + "field": [ + "tychon.id" + ], + "value": 20, + "cardinality": [] + }, + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..65864f9665a --- /dev/null +++ b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,50 @@ +{ + "id": "cb5715c0-426b-11ee-83e4-c92ed141b9e5_1", + "name": "Endpoint Security Definitions are Out of Date", + "tags": [ + "EPP", + "TYCHON" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the registered endpoint protection platform is out of date and needs to be updated.", + "risk_score": 73, + "severity": "high", + "note": "Depending on the Endpoint Protection Vendor, you will need to push new updated to this endpoint. See the vendor's user guides to determine how to install the most recent AV updates.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0005", + "reference": "https://attack.mitre.org/tactics/TA0005", + "name": "Defense Evasion" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", + "query": "host.security.antivirus.status : *OutOfDate*", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json new file mode 100644 index 00000000000..e2aa75c2a01 --- /dev/null +++ b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json @@ -0,0 +1,50 @@ +{ + "id": "edcdabf0-4275-11ee-83e4-c92ed141b9e5_1", + "name": "System Volume Mounted to Drive", + "tags": [ + "TYCHON", + "Volume" + ], + "interval": "5m", + "enabled": true, + "description": "TYCHON has reported that the system volume has been mounted to a drive letter.", + "risk_score": 47, + "severity": "medium", + "note": "Investigate and determine how the drive was mounted and remove the mount if it was done maliciously.", + "license": "", + "output_index": "", + "author": [ + "TYCHON" + ], + "false_positives": [], + "from": "now-360s", + "rule_id": "d0d735ed-08fe-4393-9aa6-120236995152", + "max_signals": 100, + "risk_score_mapping": [], + "severity_mapping": [], + "threat": [ + { + "framework": "MITRE ATT&CK", + "tactic": { + "id": "TA0004", + "reference": "https://attack.mitre.org/tactics/TA0004", + "name": "Privilege Escalation" + }, + "technique": [] + } + ], + "to": "now", + "references": [], + "version": 1, + "exceptions_list": [], + "related_integrations": [], + "required_fields": [], + "setup": "", + "type": "query", + "language": "kuery", + "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", + "query": "volume.system_volume : true and not volume.drive.letter : \"\"", + "filters": [], + "throttle": "no_actions", + "actions": [] +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..5afd9afcbcc --- /dev/null +++ b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#13814a", + "description": "TYCHON reported TCP and UDP ports that are or were open and listening on endpoints.", + "name": "Open Ports" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:33:49.204Z", + "id": "026431f0-3de5-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:33:49.204Z", + "version": "WzY4MDI0OCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json new file mode 100644 index 00000000000..02f1818c36b --- /dev/null +++ b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#9b2767", + "description": "TYCHON capture of Network adapters attached to endpoints.", + "name": "Network Adapter" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T13:07:53.023Z", + "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-23T13:07:53.023Z", + "version": "WzgwNjc5OSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..1966387148d --- /dev/null +++ b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#c30936", + "description": "TYCHON installed software and apps found on an endpoint.", + "name": "Applications" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T19:26:40.105Z", + "id": "27edf330-3dfd-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T19:26:40.105Z", + "version": "WzY4MzIzMiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..048fdbea840 --- /dev/null +++ b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#2075cf", + "description": "A Command Cyber Readiness Inspection Report", + "name": "CCRI" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T11:45:03.146Z", + "id": "39b55820-10f2-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T11:45:03.146Z", + "version": "WzI3Njg3MSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..f42c93f4b85 --- /dev/null +++ b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#75899c", + "description": "This tag indicates a \"Starting Point\" for dashboards that utulize drill downs.", + "name": "TYCHON Primary View" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T12:04:15.710Z", + "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T12:04:15.710Z", + "version": "WzY3MzY3MCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..0ae58cbedb9 --- /dev/null +++ b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#154a15", + "description": "The hardware detected by TYCHON as attached to an endpoint", + "name": "Hardware" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T20:04:47.768Z", + "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T20:04:47.768Z", + "version": "WzY4NDA2NCwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..96242830e19 --- /dev/null +++ b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#85ed08", + "description": "Hard Drives on Computers", + "name": "Drives" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:03:21.673Z", + "id": "7f851220-3d41-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:03:21.673Z", + "version": "WzY2MTI0MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..73bff95d68b --- /dev/null +++ b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#58b7ff", + "description": "Vulnerability Information", + "name": "CVE" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T13:28:01.234Z", + "id": "9c222660-1100-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T13:28:01.234Z", + "version": "WzI4MTM1OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..b95776ef16b --- /dev/null +++ b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#efe009", + "description": "The TYCHON Endpoint Browser allows a user to see detailed Endpoint Reported data for a single host.", + "name": "Endpoint Browser" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-18T16:45:29.125Z", + "id": "a3922360-3de6-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-18T16:45:29.125Z", + "version": "WzY4MDQ3NSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json new file mode 100644 index 00000000000..73f480ee196 --- /dev/null +++ b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#14d15e", + "description": "Endpoint Protection Statuses", + "name": "EPP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-06-22T19:33:57.192Z", + "id": "bae88930-1133-11ee-af86-538da1394f27", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-06-22T19:33:57.192Z", + "version": "WzI4NTA4OSwxM10=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..dddf54941d5 --- /dev/null +++ b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#AA6556", + "description": "Routing Tables from Systems", + "name": "ARP" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T22:24:09.990Z", + "id": "c957d710-3d4c-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T22:24:09.990Z", + "version": "WzY2MzYyNiwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..2bee4b97775 --- /dev/null +++ b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#afaddf", + "description": "Master Endpoint Record", + "name": "MER" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-16T22:40:20.761Z", + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-16T22:40:20.761Z", + "version": "WzYzNTA3MSwxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json new file mode 100644 index 00000000000..76f5c76268f --- /dev/null +++ b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json @@ -0,0 +1,17 @@ +{ + "attributes": { + "color": "#bcbc9c", + "description": "Virtualization Based Security", + "name": "VBS" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-17T21:49:31.431Z", + "id": "f26ce820-3d47-11ee-9610-15dee918f31a", + "migrationVersion": { + "tag": "8.0.0" + }, + "references": [], + "type": "tag", + "updated_at": "2023-08-17T21:49:31.431Z", + "version": "WzY2MjY4NywxNl0=" +} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json new file mode 100644 index 00000000000..a3878a8d2aa --- /dev/null +++ b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json @@ -0,0 +1,33 @@ +{ + "attributes": { + "description": "TYCHON Browser is a series of dashbaords dirlling into indvidual datasets for a single computer.", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "title": "[TYCHON] Endpoint Browser -Main Navigation", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[TYCHON] Endpoint Browser -Main Navigation\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Network Cards](/app/dashboards#/view/1af57010-41b6-11ee-83e4-c92ed141b9e5) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | [Benchmark Results](/app/dashboards#/view/e1c9c490-41a5-11ee-83e4-c92ed141b9e5) | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | [Protections](/app/dashboards#/view/b85e87c0-41ab-11ee-83e4-c92ed141b9e5)\"}}" + }, + "coreMigrationVersion": "8.6.2", + "created_at": "2023-08-23T21:04:08.909Z", + "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", + "migrationVersion": { + "visualization": "8.5.0" + }, + "references": [ + { + "id": "10af3800-10f3-11ee-af86-538da1394f27", + "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", + "type": "tag" + }, + { + "id": "e18d6100-3c85-11ee-9610-15dee918f31a", + "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", + "type": "tag" + } + ], + "type": "visualization", + "updated_at": "2023-08-23T21:04:08.909Z", + "version": "WzgyMjAyOSwyMl0=" +} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 191a8c4fe7c..d20b54b576a 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.51 +version: 0.0.53 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From e03d5f54bda7f4baee6df924220d74918b91af49 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Tue, 3 Oct 2023 08:41:43 -0400 Subject: [PATCH 57/65] updated yml's to match contract --- packages/tychon/changelog.yml | 2 +- .../data_stream/tychon_arp/fields/agent.yml | 4 +- .../tychon_arp/fields/base-fields.yml | 18 +- .../data_stream/tychon_cpu/fields/agent.yml | 4 +- .../tychon_cpu/fields/base-fields.yml | 18 +- .../data_stream/tychon_cpu/fields/fields.yml | 51 ++- .../data_stream/tychon_cve/fields/agent.yml | 4 +- .../tychon_cve/fields/base-fields.yml | 33 +- .../data_stream/tychon_cve/fields/ecs.yml | 26 ++ .../data_stream/tychon_cve/fields/fields.yml | 198 ++++++++++- .../data_stream/tychon_epp/fields/agent.yml | 4 +- .../tychon_epp/fields/base-fields.yml | 33 +- .../data_stream/tychon_epp/fields/ecs.yml | 8 + .../data_stream/tychon_epp/fields/fields.yml | 15 - .../test/pipeline/test-exposedservice.json | 100 +++--- .../tychon_exposedservice/fields/agent.yml | 4 +- .../fields/base-fields.yml | 18 +- .../_dev/test/pipeline/test-harddrive.json | 126 +++---- .../tychon_harddrive/fields/agent.yml | 4 +- .../tychon_harddrive/fields/base-fields.yml | 18 +- .../tychon_harddrive/fields/fields.yml | 10 +- .../_dev/test/pipeline/test-hardware.json | 92 ++--- .../tychon_hardware/fields/agent.yml | 4 +- .../tychon_hardware/fields/base-fields.yml | 18 +- .../tychon_hardware/fields/fields.yml | 33 +- .../_dev/test/pipeline/test-host.json | 150 ++++---- .../data_stream/tychon_host/fields/agent.yml | 4 +- .../tychon_host/fields/base-fields.yml | 18 +- .../data_stream/tychon_host/fields/fields.yml | 18 +- .../test/pipeline/test-networkadapter.json | 148 ++++---- .../test/pipeline/test-networkadapters.json | 67 ---- .../test-networkadapters.json-config.yml | 3 - .../test-networkadapters.json-expected.json | 67 ---- .../elasticsearch/ingest_pipeline/default.yml | 3 + .../tychon_networkadapter/fields/agent.yml | 4 +- .../fields/base-fields.yml | 18 +- .../tychon_networkadapter/fields/fields.yml | 4 +- .../data_stream/tychon_patch/fields/agent.yml | 4 +- .../tychon_patch/fields/base-fields.yml | 33 +- .../data_stream/tychon_patch/fields/ecs.yml | 8 + .../test/pipeline/test-softwareinventory.json | 108 +++--- .../tychon_softwareinventory/fields/agent.yml | 4 +- .../fields/base-fields.yml | 18 +- .../fields/fields.yml | 43 ++- .../_dev/test/pipeline/test-stig.json | 122 +++---- .../data_stream/tychon_stig/fields/agent.yml | 4 +- .../tychon_stig/fields/base-fields.yml | 33 +- .../data_stream/tychon_stig/fields/ecs.yml | 10 + .../data_stream/tychon_stig/fields/fields.yml | 5 +- .../_dev/test/pipeline/test-volumes.json | 110 +++--- .../tychon_volume/fields/agent.yml | 4 +- .../tychon_volume/fields/base-fields.yml | 18 +- .../tychon_volume/fields/fields.yml | 17 + packages/tychon/docs/README.md | 324 ++++++++++-------- ...7dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json | 48 --- ...0359860-1139-11ee-af86-538da1394f27_1.json | 54 --- ...1481830-426d-11ee-83e4-c92ed141b9e5_1.json | 57 --- ...7a4a660-4111-11ee-83e4-c92ed141b9e5_1.json | 53 --- ...e5a7e20-1137-11ee-af86-538da1394f27_1.json | 61 ---- ...e9c9ac0-1138-11ee-af86-538da1394f27_1.json | 54 --- ...8a72d20-426e-11ee-83e4-c92ed141b9e5_1.json | 52 --- ...a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json | 42 --- ...5197a50-428d-11ee-83e4-c92ed141b9e5_1.json | 42 --- ...67e3450-1139-11ee-af86-538da1394f27_1.json | 53 --- ...34a39a0-1138-11ee-af86-538da1394f27_1.json | 54 --- ...fdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json | 54 --- ...85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json | 57 --- ...b5715c0-426b-11ee-83e4-c92ed141b9e5_1.json | 50 --- ...dcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json | 50 --- .../026431f0-3de5-11ee-9610-15dee918f31a.json | 17 - .../11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 - .../27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 - .../39b55820-10f2-11ee-af86-538da1394f27.json | 17 - .../5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 - .../7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 - .../7f851220-3d41-11ee-9610-15dee918f31a.json | 17 - .../9c222660-1100-11ee-af86-538da1394f27.json | 17 - .../a3922360-3de6-11ee-9610-15dee918f31a.json | 17 - .../bae88930-1133-11ee-af86-538da1394f27.json | 17 - .../c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 - .../e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 - .../f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 - .../ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 -- packages/tychon/manifest.yml | 2 +- 84 files changed, 1209 insertions(+), 2042 deletions(-) delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json delete mode 100644 packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json delete mode 100644 packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json delete mode 100644 packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json delete mode 100644 packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 467dc04617b..f2c6caef04e 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.53 +- version: 0.0.54 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/data_stream/tychon_arp/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml b/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml b/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_cpu/fields/fields.yml b/packages/tychon/data_stream/tychon_cpu/fields/fields.yml index eb728cc9162..d2212239b15 100644 --- a/packages/tychon/data_stream/tychon_cpu/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cpu/fields/fields.yml @@ -1,18 +1,33 @@ -- name: host.cpu.caption - type: text -- name: host.cpu.clockspeed - type: long -- name: host.cpu.family - type: keyword -- name: host.cpu.manufacturer - type: keyword -- name: host.cpu.name - type: keyword -- name: host.cpu.number_of_cores - type: integer -- name: host.cpu.number_of_logical_processors - type: integer -- name: host.cpu.speed - type: long -- name: host.cpu.virtualization_firmware_enabled - type: boolean +- name: host + type: group + fields: + - name: cpu + type: group + fields: + - name: caption + description: Host Cpu Caption. + type: text + - name: clockspeed + description: Host Cpu Clockspeed. + type: long + - name: family + description: Host Cpu Family. + type: keyword + - name: manufacturer + description: Host Cpu Manufacturer. + type: keyword + - name: name + description: Host Cpu Name. + type: keyword + - name: number_of_cores + description: Host Cpu Number Of Cores. + type: integer + - name: number_of_logical_processors + description: Host Cpu Number Of Logical Processors. + type: integer + - name: speed + description: Host Cpu Speed. + type: long + - name: virtualization_firmware_enabled + description: Host Cpu Virtualization Firmware Enabled. + type: boolean diff --git a/packages/tychon/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/data_stream/tychon_cve/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml index 44a26fd137a..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/base-fields.yml @@ -1,21 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml index 7f4b8fb4143..70c1f2ac0ed 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/ecs.yml @@ -1,3 +1,5 @@ +- external: ecs + name: '@timestamp' - external: ecs name: agent.ephemeral_id - external: ecs @@ -10,6 +12,12 @@ name: agent.version - external: ecs name: ecs.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type - external: ecs name: event.agent_id_status - external: ecs @@ -32,14 +40,32 @@ name: error.message - external: ecs name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.hostname +- external: ecs + name: host.mac - external: ecs name: host.name - external: ecs name: host.uptime +- external: ecs + name: host.type +- external: ecs + name: host.os.family - external: ecs name: host.os.kernel - external: ecs name: host.os.platform +- external: ecs + name: host.os.name +- external: ecs + name: host.os.version - external: ecs name: host.os.type - external: ecs diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 925eab85d41..ce1ae96d93c 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -1,31 +1,207 @@ +- name: elastic + type: group + fields: + - name: service + type: group + fields: + - name: agent + type: group + fields: + - name: status + description: Elastic Service Agent Status. + type: keyword + - name: version + description: Elastic Service Agent Version. + type: version + - name: endpoint + type: group + fields: + - name: behavior_protection + description: Elastic Service Endpoint Behavior Protection. + type: keyword + - name: malware + description: Elastic Service Endpoint Malware. + type: keyword + - name: memory_protection + description: Elastic Service Endpoint Memory Protection. + type: keyword + - name: status + description: Elastic Service Endpoint Status. + type: keyword + - name: version + description: Elastic Service Endpoint Version. + type: version +- name: trellix + type: group + fields: + - name: service + type: group + fields: + - name: accm + type: group + fields: + - name: status + description: Trellix Service Accm Status. + type: keyword + - name: version + description: Trellix Service Accm Version. + type: version + - name: dlp + type: group + fields: + - name: status + description: Trellix Service Dlp Status. + type: keyword + - name: version + description: Trellix Service Dlp Version. + type: version + - name: ens + type: group + fields: + - name: signature_version + description: Trellix Service Ens Signature Version. + type: keyword + - name: status + description: Trellix Service Ens Status. + type: keyword + - name: version + description: Trellix Service Ens Version. + type: version + - name: ma + type: group + fields: + - name: status + description: Trellix Service Ma Status. + type: keyword + - name: version + description: Trellix Service Ma Version. + type: version + - name: pa + type: group + fields: + - name: status + description: Trellix Service Pa Status. + type: keyword + - name: version + description: Trellix Service Pa Version. + type: version + - name: rsd + type: group + fields: + - name: status + description: Trellix Service Rsd Status. + type: keyword + - name: version + description: Trellix Service Rsd Version. + type: version - name: vulnerability type: group fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - name: due_date description: Vulnerability Due Date. type: date - format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" - name: due_date_reason - description: Vulnerability Due Date Reason + description: Vulnerability Due Date Reason. type: keyword - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. + description: Vulnerability Iava. type: keyword - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. + description: Vulnerability Iava Severity. type: keyword - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + description: Vulnerability Result. type: keyword - name: title - description: Common Vulnerabilities and Exposures Description and Title. + description: Vulnerability Title. type: keyword - name: version - description: Version Number of the Scan. + description: Vulnerability Version. type: keyword - name: year - description: Common Vulnerabilities and Exposures Year. + description: Vulnerability Year. type: integer +- name: windows_defender + type: group + fields: + - name: service + type: group + fields: + - name: antimalware + type: group + fields: + - name: engine_version + description: Windows Defender Service Antimalware Engine Version. + type: keyword + - name: product_version + description: Windows Defender Service Antimalware Product Version. + type: keyword + - name: signature_version + description: Windows Defender Service Antimalware Signature Version. + type: keyword + - name: status + description: Windows Defender Service Antimalware Status. + type: keyword + - name: antispyware + type: group + fields: + - name: signature_version + description: Windows Defender Service Antispyware Signature Version. + type: keyword + - name: status + description: Windows Defender Service Antispyware Status. + type: keyword + - name: full_scan + type: group + fields: + - name: signature_version + description: Windows Defender Service Antivirus Full Scan Signature Version. + type: keyword + - name: quick_scan + type: group + fields: + - name: signature_version + description: Windows Defender Service Antivirus Quick Scan Signature Version. + type: keyword + - name: antivirus + type: group + fields: + - name: status + description: Windows Defender Service Antivirus Status. + type: keyword + - name: behavior_monitor + type: group + fields: + - name: status + description: Windows Defender Service Behavior Monitor Status. + type: keyword + - name: ioav_protection + type: group + fields: + - name: status + description: Windows Defender Service Ioav Protection Status. + type: keyword + - name: nis + type: group + fields: + - name: engine_version + description: Windows Defender Service Nis Engine Version. + type: keyword + - name: signature_version + description: Windows Defender Service Nis Signature Version. + type: keyword + - name: status + description: Windows Defender Service Nis Status. + type: keyword + - name: on_access_protection + type: group + fields: + - name: status + description: Windows Defender Service On Access Protection Status. + type: keyword + - name: real_time_protection + type: group + fields: + - name: status + description: Windows Defender Service Real Time Protection Status. + type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/data_stream/tychon_epp/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml index 44a26fd137a..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml @@ -1,21 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index f2da274bda9..a843688df01 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -1,3 +1,5 @@ +- external: ecs + name: '@timestamp' - external: ecs name: package.description - external: ecs @@ -8,6 +10,12 @@ name: package.type - external: ecs name: package.build_version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type - external: ecs name: event.kind - external: ecs diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index e802b7be25c..caa85348b86 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -161,18 +161,3 @@ - name: version description: Trellix Service RSD Version. type: version -- name: host - type: group - fields: - - name: epp - type: group - fields: - - name: product - description: Epp products installed - type: keyword - - name: trellix - type: group - fields: - - name: product - description: trellix products installed - type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json index 8e8cb3f31db..dd3a2124637 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json @@ -1,50 +1,54 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "process.name": "services.exe", - "script.type": "powershell", - "host.os.build": "19045", - "host.ip": ["10.1.9.51"], - "process.start": "2023-09-18T16:13:52Z", - "host.hostname": "BOTANYBAYEP1", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-09-25T19:02:40Z", - "host.os.name": "Microsoft Windows 10 Pro", - "host.hardware.owner": "admin", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.9.51", - "host.os.version": "2009", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "process.user.name": "NT AUTHORITY\\SYSTEM", - "source.ip": "::", - "network.transport": "tcp", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "process.command_line": "", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": ["00-0C-29-93-6A-F3"], - "process.pid": 848, - "host.oem.model": "", - "host.uptime": "614921.3194264", - "id": "BOTANYBAYEP1#::#49673#tcp", - "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "script.name": "Get-ExposedServiceInfo.ps1", - "script.version": "2.3.141.0", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "13538.63", - "host.ipv6": "", - "script.current_time": "2023-09-25T19:02:54Z", - "host.hardware.bios.version": "6.00", - "source.port": 49673, - "process.executable": "services.exe", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "process.name": "services.exe", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": [ + "10.1.9.51" + ], + "process.start": "2023-09-18T16:13:52Z", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T19:02:40Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "process.user.name": "NT AUTHORITY\\SYSTEM", + "source.ip": "::", + "network.transport": "tcp", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "process.command_line": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": [ + "00-0C-29-93-6A-F3" + ], + "process.pid": 848, + "host.oem.model": "", + "host.uptime": "614921.3194264", + "id": "BOTANYBAYEP1#::#49673#tcp", + "process.hash.sha1": "2D79A17A7F226B4A3BC25D47D73570F9A33AAC1A", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-ExposedServiceInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "13538.63", + "host.ipv6": "", + "script.current_time": "2023-09-25T19:02:54Z", + "host.hardware.bios.version": "6.00", + "source.port": 49673, + "process.executable": "services.exe", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json index 6c58466f97e..5f452a4b541 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json @@ -1,65 +1,65 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.name": "Microsoft Windows 10 Pro", - "disk.location.device": "0", - "disk.partition_style": "MBR", - "host.hardware.manufacturer": "VMware, Inc.", - "disk.serial_number": "", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "disk.boot_from": "true", - "host.hostname": "BOTANYBAYEP1", - "disk.adapter.serial_number": "", - "disk.location.adapter": "0", - "disk.system": "true", - "script.start": "2023-09-25T19:03:48Z", - "disk.size": "42949672960", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "admin", - "disk.name": "VMware Virtual disk", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.ipv4": "10.1.9.51", - "host.oem.model": "", - "disk.is_boot": "true", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "disk.model": "Virtual disk ", - "disk.health_status": "Healthy", - "disk.number": "0", - "script.current_duration": "13711.00", - "disk.offline": "false", - "disk.location.bus": "3", - "disk.location.pci_slot": "160", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.uptime": "614991.6714276", - "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", - "disk.firmware.version": "2.0 ", - "disk.location.function": "0", - "script.current_time": "2023-09-25T19:04:02Z", - "disk.bus_type": "SAS", - "disk.manufacturer": "VMware ", - "disk.clustered": "false", - "script.name": "Get-TychonHardDriveInfo.ps1", - "script.version": "2.3.141.0", - "host.oem.manufacturer": "", - "host.os.description": "", - "host.os.version": "2009", - "disk.operational_status": "Online", - "disk.number_of_partitions": "3", - "host.ipv6": "", - "host.hardware.bios.version": "6.00", - "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec51bf7&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", - "disk.highly_available": "false", - "script.type": "powershell", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.name": "Microsoft Windows 10 Pro", + "disk.location.device": "0", + "disk.partition_style": "MBR", + "host.hardware.manufacturer": "VMware, Inc.", + "disk.serial_number": "", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "disk.boot_from": "true", + "host.hostname": "BOTANYBAYEP1", + "disk.adapter.serial_number": "", + "disk.location.adapter": "0", + "disk.system": "true", + "script.start": "2023-09-25T19:03:48Z", + "disk.size": "42949672960", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "disk.name": "VMware Virtual disk", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.oem.model": "", + "disk.is_boot": "true", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "disk.model": "Virtual disk ", + "disk.health_status": "Healthy", + "disk.number": "0", + "script.current_duration": "13711.00", + "disk.offline": "false", + "disk.location.bus": "3", + "disk.location.pci_slot": "160", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.uptime": "614991.6714276", + "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", + "disk.firmware.version": "2.0 ", + "disk.location.function": "0", + "script.current_time": "2023-09-25T19:04:02Z", + "disk.bus_type": "SAS", + "disk.manufacturer": "VMware ", + "disk.clustered": "false", + "script.name": "Get-TychonHardDriveInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "disk.operational_status": "Online", + "disk.number_of_partitions": "3", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk\u0026ven_vmware\u0026prod_virtual_disk#5\u00261ec51bf7\u00260\u0026000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", + "disk.highly_available": "false", + "script.type": "powershell", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml index 19238f1f9d1..6d5ccd2556b 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml @@ -19,15 +19,9 @@ - name: clustered type: boolean description: Is the Disk Clustered - - name: firmware - type: group - fields: - - name: version - type: keyword - description: Disk Firmware version - - name: guid + - name: firmware_version type: keyword - description: Disk UUID + description: Disk Firmware version - name: health_status type: keyword description: Health status of the disk diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json index 94bfbff109a..dfffaac7c28 100644 --- a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json @@ -1,48 +1,48 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "script.type": "powershell", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "script.version": "2.3.141.0", - "host.hostname": "BOTANYBAYEP1", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-09-25T04:03:37Z", - "host.os.name": "Microsoft Windows 10 Pro", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "device.name": "Motherboard resources", - "host.hardware.owner": "admin", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.ipv4": "10.1.9.51", - "host.os.version": "2009", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "device.present": "true", - "host.type": "Workstation", - "device.id": "ACPI\\PNP0C02\\4", - "device.description": "Motherboard resources", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "device.class": "System", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "device.friendly_name": "Motherboard resources", - "host.oem.model": "", - "host.uptime": "560978.5582333", - "id": "eb657a5e2a6762a1aeebaa530a334081e387d350", - "script.current_time": "2023-09-25T04:03:42Z", - "script.name": "Get-TychonHardwareInfo.ps1", - "device.status": "OK", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "5072.02", - "host.ipv6": "", - "host.hardware.bios.version": "6.00", - "device.manufacturer": "(Standard system devices)", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "script.version": "2.3.141.0", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T04:03:37Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "device.name": "Motherboard resources", + "host.hardware.owner": "admin", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "device.present": "true", + "host.type": "Workstation", + "device.id": "ACPI\\PNP0C02\\4", + "device.description": "Motherboard resources", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "device.class": "System", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "device.friendly_name": "Motherboard resources", + "host.oem.model": "", + "host.uptime": "560978.5582333", + "id": "eb657a5e2a6762a1aeebaa530a334081e387d350", + "script.current_time": "2023-09-25T04:03:42Z", + "script.name": "Get-TychonHardwareInfo.ps1", + "device.status": "OK", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "5072.02", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "device.manufacturer": "(Standard system devices)", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml b/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_hardware/fields/fields.yml b/packages/tychon/data_stream/tychon_hardware/fields/fields.yml index ff33e64dbab..f8c9a4a7192 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/fields.yml @@ -1,12 +1,21 @@ -- name: device.class - type: keyword -- name: device.description - type: keyword -- name: device.friendly_name - type: keyword -- name: device.name - type: keyword -- name: device.present - type: boolean -- name: device.status - type: keyword +- name: device + type: group + fields: + - name: class + description: Device Class. + type: keyword + - name: description + description: Device Description. + type: text + - name: friendly_name + description: Device Friendly Name. + type: keyword + - name: name + description: Device Name. + type: keyword + - name: present + description: Device Present. + type: boolean + - name: status + description: Device Status. + type: keyword diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json index 5f99988d2e6..14f5c2d6271 100644 --- a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json @@ -1,77 +1,77 @@ { - "events": [ - { - "event.ufi.enabled": "false", - "event.deviceguard.hypervisorenforcedcodeint.running": "false", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.tpm.version": "", - "event.deviceguard.securememoverwrite.available": "false", - "event.deviceguard.virtualizationbasedsecurity.status": "Off", - "host.tpm.compliant": "false", - "host.type": "Workstation", - "host.virtualization_status": "Virtual Machine", - "host.security.antivirus.name": "McAfee Endpoint Security", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "tychon.version.content": "2.3.141.0", - "script.current_duration": "7000.24", - "host.oem.manufacturer": "", - "host.uptime": "618683.1458787", - "host.os.name": "Microsoft Windows 10 Pro", - "host.tpm.present": "false", - "event.deviceguard.secureboot.available": "false", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.architecture": "64-bit", - "host.os.version": "2009", - "host.hostname": "BOTANYBAYEP1", - "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "event.deviceguard.systemguardsecurelaunch.running": "false", - "host.cloud.hosted": "false", - "tychon.version.agent": "1.7.861.86", - "host.hardware.owner": "admin", - "script.version": "2.3.141.0", - "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", - "host.os.edition": "Pro", - "host.workgroup": "WORKGROUP", - "host.ipv6": "", - "event.deviceguard.smmsecuritymigrations.available": "false", - "script.type": "powershell", - "host.domain": "", - "host.os.organization": "", - "host.os.family": "Windows", - "script.current_time": "2023-09-25T20:05:29Z", - "event.deviceguard.credentialguard.running": "false", - "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.tpm.digest.id": "TPM Digest Not Found", - "host.hardware.bios.version": "6.00", - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.build": "19045", - "host.security.antivirus.status": "OutOfDate", - "event.deviceguard.version": "1.0", - "host.oem.model": "", - "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", - "event.deviceguard.dmaprotection.available": "false", - "tychon.definition.oval": "2023-08-15T20:03:33Z", - "host.ipv4": "10.1.9.51", - "event.deviceguard.ueficodereadonly.available": "false", - "host.security.antivirus.exists": "true", - "script.start": "2023-09-25T20:05:22Z", - "host.os.vendor": "Microsoft Corporation", - "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", - "host.motherboard.serial_number": "None", - "tychon.definition.stig": "2023-08-16T17:18:48Z", - "event.deviceguard.basevirtualizationsupport.available": "false", - "host.cpu.count": "2", - "host.ip": "10.1.9.51", - "event.deviceguard.systemguardsecurelaunch.enabled": "false", - "host.security.antivirus.state": "On", - "script.name": "Get-TychonHostInfo.ps1", - "host.mac": "00:0C:29:93:6A:F3", - "event.deviceguard.credentialguard.enabled": "false", - "host.os.description": "", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.memory.size": "4294496256" - } - ] + "events": [ + { + "event.ufi.enabled": "false", + "event.deviceguard.hypervisorenforcedcodeint.running": "false", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.tpm.version": "", + "event.deviceguard.securememoverwrite.available": "false", + "event.deviceguard.virtualizationbasedsecurity.status": "Off", + "host.tpm.compliant": "false", + "host.type": "Workstation", + "host.virtualization_status": "Virtual Machine", + "host.security.antivirus.name": "McAfee Endpoint Security", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "tychon.version.content": "2.3.141.0", + "script.current_duration": "7000.24", + "host.oem.manufacturer": "", + "host.uptime": "618683.1458787", + "host.os.name": "Microsoft Windows 10 Pro", + "host.tpm.present": "false", + "event.deviceguard.secureboot.available": "false", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.architecture": "64-bit", + "host.os.version": "2009", + "host.hostname": "BOTANYBAYEP1", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "event.deviceguard.systemguardsecurelaunch.running": "false", + "host.cloud.hosted": "false", + "tychon.version.agent": "1.7.861.86", + "host.hardware.owner": "admin", + "script.version": "2.3.141.0", + "event.deviceguard.hypervisorenforcedcodeint.enabled": "false", + "host.os.edition": "Pro", + "host.workgroup": "WORKGROUP", + "host.ipv6": "", + "event.deviceguard.smmsecuritymigrations.available": "false", + "script.type": "powershell", + "host.domain": "", + "host.os.organization": "", + "host.os.family": "Windows", + "script.current_time": "2023-09-25T20:05:29Z", + "event.deviceguard.credentialguard.running": "false", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.tpm.digest.id": "TPM Digest Not Found", + "host.hardware.bios.version": "6.00", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.build": "19045", + "host.security.antivirus.status": "OutOfDate", + "event.deviceguard.version": "1.0", + "host.oem.model": "", + "event.deviceguard.usermodecodeintegrity.policyenforcement": "Off", + "event.deviceguard.dmaprotection.available": "false", + "tychon.definition.oval": "2023-08-15T20:03:33Z", + "host.ipv4": "10.1.9.51", + "event.deviceguard.ueficodereadonly.available": "false", + "host.security.antivirus.exists": "true", + "script.start": "2023-09-25T20:05:22Z", + "host.os.vendor": "Microsoft Corporation", + "host.motherboard.chipset": "Intel Corporation Model 440BX Desktop Reference Platform Version None", + "host.motherboard.serial_number": "None", + "tychon.definition.stig": "2023-08-16T17:18:48Z", + "event.deviceguard.basevirtualizationsupport.available": "false", + "host.cpu.count": "2", + "host.ip": "10.1.9.51", + "event.deviceguard.systemguardsecurelaunch.enabled": "false", + "host.security.antivirus.state": "On", + "script.name": "Get-TychonHostInfo.ps1", + "host.mac": "00:0C:29:93:6A:F3", + "event.deviceguard.credentialguard.enabled": "false", + "host.os.description": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.memory.size": "4294496256" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/fields/agent.yml b/packages/tychon/data_stream/tychon_host/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_host/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_host/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_host/fields/base-fields.yml b/packages/tychon/data_stream/tychon_host/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_host/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml index cd80dc02781..3730e78b350 100644 --- a/packages/tychon/data_stream/tychon_host/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -8,69 +8,85 @@ type: group fields: - name: available + description: Event Device Base Virtualization Support Available. type: boolean - name: credentialguard type: group fields: - name: enabled + description: Event Device Credential Guard Enabled. type: boolean - name: running + description: Event Device Credential Guard Running. type: boolean - name: dmaprotection type: group fields: - name: available + description: Event Device type: boolean - name: hypervisorenforcedcodeint type: group fields: - name: enabled + description: Event Device Hypervisor Enforced Code Enabled. type: boolean - name: running + description: Event Device Hypervisor Enforced Code running. type: boolean - name: secureboot type: group fields: - name: available + description: Event Device Secure Boot Available. type: boolean - name: securememoverwrite type: group fields: - name: available + description: Event Device Secure Memory Overwrite Available. type: boolean - name: smmsecuritymigrations type: group fields: - name: available + description: Event Device SMM Security Migrations Available. type: boolean - name: systemguardsecurelaunch type: group fields: - name: enabled + description: Event Device Guard System Guard Secure Launch Enabled. type: boolean - name: running + description: Event Device Guard System Guard Secure Launch Running. type: boolean - name: ueficodereadonly type: group fields: - name: available + description: Event Device Guard UEFI Code Readonly Availability. type: boolean - name: usermodecodeintegrity type: group fields: - name: policyenforcement + description: Event Device Guard User Mode Code Integrity Policy Enforcement. type: keyword - name: version + description: Event Device Guard version. type: keyword - name: virtualizationbasedsecurity type: group fields: - name: status + description: Event Device Guard Virtualization Based Security Status. type: keyword - name: ufi type: group fields: - name: enabled + description: Event UFI Enabled. type: boolean - name: host type: group @@ -79,7 +95,7 @@ type: group fields: - name: caption - type: keyword + type: text description: Description of the CPU - name: count type: integer diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json index 5326859a7b3..0d6f1310a3c 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json @@ -1,76 +1,76 @@ { - "events": [ - { - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.adapter.subnet_bit": "24", - "host.workgroup": "WORKGROUP", - "host.adapter.domain": "", - "host.adapter.virtual": "false", - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.adapter.wifi.authentication": "", - "host.type": "Workstation", - "host.oem.model": "", - "host.adapter.wifi.signal_percent": "", - "script.current_duration": "14530.74", - "host.adapter.dhcp.lease_obtained": "", - "host.oem.manufacturer": "", - "host.uptime": "618589.769059", - "host.os.name": "Microsoft Windows 10 Pro", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.adapter.ndis.version": "6.50", - "host.adapter.ip": "10.1.9.51", - "host.os.family": "Windows", - "host.adapter.driver.version": "12.17.10.8", - "host.adapter.wifi.cipher": "", - "host.adapter.link_speed": "1 Gbps", - "host.hostname": "BOTANYBAYEP1", - "id": "201f62ea31d32bc635feeda477e602ff4b304bb6", - "host.adapter.wifi.ssid": "", - "host.cloud.hosted": "false", - "host.hardware.owner": "admin", - "script.version": "2.3.141.0", - "host.mac": "00:0C:29:93:6A:F3", - "host.adapter.wifi.channel": "", - "host.adapter.driver.name": "Driver Date 2018-06-12 Version 12.17.10.8 NDIS 6.50", - "host.ipv6": "", - "host.os.version": "2009", - "script.type": "powershell", - "host.domain": "", - "host.os.organization": "", - "host.adapter.driver.file_name": "e1i65x64.sys", - "host.adapter.driver.description": "Intel(R) 82574L Gigabit Network Connection", - "host.adapter.gateway": "10.1.9.1", - "host.adapter.dhcp.enabled": "false", - "host.adapter.wifi.band": "", - "script.current_time": "2023-09-25T20:04:01Z", - "host.hardware.manufacturer": "VMware, Inc.", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.hardware.bios.version": "6.00", - "host.os.build": "19045", - "host.adapter.mtu": "1500", - "host.adapter.vlan.id": "", - "host.adapter.wins_server": "", - "host.adapter.driver.provider": "Microsoft", - "host.ipv4": "10.1.9.51", - "host.adapter.wifi.enabled": "false", - "host.adapter.dhcp.lease_expires": "", - "host.adapter.ip_filter.enabled": "false", - "host.adapter.wifi.radio_type": "", - "host.adapter.description": "Intel(R) 82574L Gigabit Network Connection", - "script.start": "2023-09-25T20:03:46Z", - "host.adapter.driver.date": "2018-06-12", - "host.ip": "10.1.9.51", - "host.adapter.alias": "Ethernet0", - "host.adapter.mac": "00-0C-29-93-6A-F3", - "host.adapter.media.type": "802.3", - "host.adapter.id": "{8CF7047B-04F9-48B6-8928-0593504DBA4D}", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.server": "", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.adapter.media.connection_state": "Connected", - "host.os.description": "", - "host.adapter.wifi.bssid": "", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" - } - ] + "events": [ + { + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.adapter.subnet_bit": "24", + "host.workgroup": "WORKGROUP", + "host.adapter.domain": "", + "host.adapter.virtual": "false", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.adapter.wifi.authentication": "", + "host.type": "Workstation", + "host.oem.model": "", + "host.adapter.wifi.signal_percent": "", + "script.current_duration": "14530.74", + "host.adapter.dhcp.lease_obtained": "", + "host.oem.manufacturer": "", + "host.uptime": "618589.769059", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.adapter.ndis.version": "6.50", + "host.adapter.ip": "10.1.9.51", + "host.os.family": "Windows", + "host.adapter.driver.version": "12.17.10.8", + "host.adapter.wifi.cipher": "", + "host.adapter.link_speed": "1 Gbps", + "host.hostname": "BOTANYBAYEP1", + "id": "201f62ea31d32bc635feeda477e602ff4b304bb6", + "host.adapter.wifi.ssid": "", + "host.cloud.hosted": "false", + "host.hardware.owner": "admin", + "script.version": "2.3.141.0", + "host.mac": "00:0C:29:93:6A:F3", + "host.adapter.wifi.channel": "", + "host.adapter.driver.name": "Driver Date 2018-06-12 Version 12.17.10.8 NDIS 6.50", + "host.ipv6": "", + "host.os.version": "2009", + "script.type": "powershell", + "host.domain": "", + "host.os.organization": "", + "host.adapter.driver.file_name": "e1i65x64.sys", + "host.adapter.driver.description": "Intel(R) 82574L Gigabit Network Connection", + "host.adapter.gateway": "10.1.9.1", + "host.adapter.dhcp.enabled": "false", + "host.adapter.wifi.band": "", + "script.current_time": "2023-09-25T20:04:01Z", + "host.hardware.manufacturer": "VMware, Inc.", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.hardware.bios.version": "6.00", + "host.os.build": "19045", + "host.adapter.mtu": "1500", + "host.adapter.vlan.id": "", + "host.adapter.wins_server": "", + "host.adapter.driver.provider": "Microsoft", + "host.ipv4": "10.1.9.51", + "host.adapter.wifi.enabled": "false", + "host.adapter.dhcp.lease_expires": "", + "host.adapter.ip_filter.enabled": "false", + "host.adapter.wifi.radio_type": "", + "host.adapter.description": "Intel(R) 82574L Gigabit Network Connection", + "script.start": "2023-09-25T20:03:46Z", + "host.adapter.driver.date": "2018-06-12", + "host.ip": "10.1.9.51", + "host.adapter.alias": "Ethernet0", + "host.adapter.mac": "00-0C-29-93-6A-F3", + "host.adapter.media.type": "802.3", + "host.adapter.id": "{8CF7047B-04F9-48B6-8928-0593504DBA4D}", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.server": "", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.adapter.media.connection_state": "Connected", + "host.os.description": "", + "host.adapter.wifi.bssid": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json deleted file mode 100644 index f9c2e27ad47..00000000000 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "events": [ - { - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml deleted file mode 100644 index 302199c74f9..00000000000 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-config.yml +++ /dev/null @@ -1,3 +0,0 @@ -dynamic_fields: - "@timestamp": ".*" - event.ingested: ".*" diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json deleted file mode 100644 index c99a8e1d1b4..00000000000 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapters.json-expected.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "expected": [ - { - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" - } - ] -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index e0f133a56b6..88e928c63c3 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -87,6 +87,9 @@ processors: - remove: field: host.adapter.ip if: ctx.host.adapter.ip == '' + - remove: + field: host.adapter.wins_server + if: ctx.host.adapter.wins_server == '' - remove: field: host.adapter.gateway if: ctx.host.adapter.gateway == '' diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml index 0085d1cd11c..d12f09a5243 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -26,7 +26,7 @@ type: ip description: What IP Address was the DHCP IP obtained from. - name: domain - type: keyword + type: text description: What domain was assigned to this adatper - name: driver type: group @@ -65,7 +65,7 @@ type: boolean description: Is IP Filtering Enabled - name: wins_server - type: keyword + type: ip description: The WINS Server attached to this adatper - name: link_speed type: long diff --git a/packages/tychon/data_stream/tychon_patch/fields/agent.yml b/packages/tychon/data_stream/tychon_patch/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml b/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml index 44a26fd137a..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml @@ -1,21 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_patch/fields/ecs.yml b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml index 7f4b8fb4143..aa33a7964a6 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml @@ -1,3 +1,5 @@ +- external: ecs + name: '@timestamp' - external: ecs name: agent.ephemeral_id - external: ecs @@ -12,6 +14,12 @@ name: ecs.version - external: ecs name: event.agent_id_status +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type - external: ecs name: event.category - external: ecs diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json index 3b41fee47b8..b17da9fa4a8 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json @@ -1,56 +1,56 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "package.description": "", - "script.current_time": "2023-09-25T04:03:27Z", - "package.size": "", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "host.hostname": "BOTANYBAYEP1", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-09-25T04:03:20Z", - "host.os.name": "Microsoft Windows 10 Pro", - "host.hardware.owner": "admin", - "package.architecture": "x86", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "package.version": "5.7.6.251", - "script.type": "powershell", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.9.51", - "host.os.version": "2009", - "package.path": "C:\\Program Files\\McAfee\\Agent\\", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "package.publisher": "McAfee, LLC.", - "host.type": "Workstation", - "package.id": "McAfeeAgent", - "package.version_build": "251", - "package.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", - "package.name": "McAfee Agent", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "package.version_major": "5", - "host.oem.model": "", - "host.uptime": "560963.1794915", - "id": "eade7a9d914c1e82ec2cd77223cd949593f05ce7", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "script.name": "Get-TychonSoftwareInventory.ps1", - "package.version_release": "6", - "script.version": "2.3.141.0", - "package.version_minor": "7", - "host.oem.manufacturer": "", - "host.os.description": "", - "package.installed": "", - "script.current_duration": "6844.84", - "host.ipv6": "", - "package.type": "installer", - "host.hardware.bios.version": "6.00", - "package.cpe": "cpe:/a:McAfee Agent:5.7.6.251", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "package.description": "", + "script.current_time": "2023-09-25T04:03:27Z", + "package.size": "", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T04:03:20Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "package.architecture": "x86", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "package.version": "5.7.6.251", + "script.type": "powershell", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "package.path": "C:\\Program Files\\McAfee\\Agent\\", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "package.publisher": "McAfee, LLC.", + "host.type": "Workstation", + "package.id": "McAfeeAgent", + "package.version_build": "251", + "package.uninstall": "\"C:\\Program Files\\McAfee\\Agent\\x86\\FrmInst.exe\" /uninstall", + "package.name": "McAfee Agent", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "package.version_major": "5", + "host.oem.model": "", + "host.uptime": "560963.1794915", + "id": "eade7a9d914c1e82ec2cd77223cd949593f05ce7", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-TychonSoftwareInventory.ps1", + "package.version_release": "6", + "script.version": "2.3.141.0", + "package.version_minor": "7", + "host.oem.manufacturer": "", + "host.os.description": "", + "package.installed": "", + "script.current_duration": "6844.84", + "host.ipv6": "", + "package.type": "installer", + "host.hardware.bios.version": "6.00", + "package.cpe": "cpe:/a:McAfee Agent:5.7.6.251", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml b/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml index fec6c53f2e3..143a9635854 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml @@ -1,16 +1,27 @@ -- name: package.uninstall - type: text -- name: package.cpe - type: keyword -- name: package.id - type: keyword -- name: package.publisher - type: keyword -- name: package.version_build - type: integer -- name: package.version_major - type: integer -- name: package.version_minor - type: integer -- name: package.version_release - type: integer +- name: package + type: group + fields: + - name: cpe + description: Package Cpe. + type: keyword + - name: id + description: Package Id. + type: keyword + - name: publisher + description: Package Publisher. + type: keyword + - name: uninstall + description: Package Uninstall. + type: text + - name: version_build + description: Package Version Build. + type: integer + - name: version_major + description: Package Version Major. + type: integer + - name: version_minor + description: Package Version Minor. + type: integer + - name: version_release + description: Package Version Release. + type: integer diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json index a8cd5579dcf..c9e2d879869 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json @@ -1,63 +1,63 @@ { - "events": [ - { - "rule.benchmark.profile.id": "none", - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "benchmark.name": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", - "rule.weight": "10.0", - "rule.title": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", - "rule.id": "xccdf_mil.disa.stig_rule_SV-213168r395811_rule", - "rule.oval.refid": "", - "script.type": "powershell", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "rule.name": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", - "script.version": "2.3.141.0", - "host.hostname": "BOTANYBAYEP1", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-09-25T05:03:17Z", - "host.os.name": "Microsoft Windows 10 Pro", - "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_xccdf_mil.disa.stig_rule_SV-213168r395811_rule_858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", - "rule.test_result": "not applicable", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "benchmark.hash": "858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", - "host.hardware.owner": "admin", - "host.workgroup": "WORKGROUP", - "benchmark.id": "xccdf_mil.disa.stig_benchmark_Adobe_Acrobat_Reader_DC_Continuous_Track_STIG", - "host.ipv4": "10.1.9.51", - "host.os.version": "2009", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "rule.vulnerability_id": "SV-79409", - "oval.id": "oval:mil.disa.stig.adobe.reader:def:10", - "rule.finding_id": "V-213168", - "rule.stig_id": "ARDC-CN-000005", - "rule.oval.class": "compliance", - "rule.benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "oval.class": "compliance", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "oval.refid": "", - "rule.severity": "medium", - "host.oem.model": "", - "host.uptime": "564559.6950263", - "benchmark.version": "002.002", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", - "script.name": "Invoke-TychonStigBenchmarkScan.ps1", - "rule.oval.id": "oval:mil.disa.stig.adobe.reader:def:10", - "benchmark.generated_utc": "1664376309000", - "host.oem.manufacturer": "", - "host.os.description": "", - "script.current_duration": "10195.83", - "host.ipv6": "", - "script.current_time": "2023-09-25T05:03:27Z", - "host.hardware.bios.version": "6.00", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "rule.benchmark.profile.id": "none", + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "benchmark.name": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "rule.weight": "10.0", + "rule.title": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", + "rule.id": "xccdf_mil.disa.stig_rule_SV-213168r395811_rule", + "rule.oval.refid": "", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "rule.name": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", + "script.version": "2.3.141.0", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T05:03:17Z", + "host.os.name": "Microsoft Windows 10 Pro", + "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP_xccdf_mil.disa.stig_rule_SV-213168r395811_rule_858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", + "rule.test_result": "not applicable", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "benchmark.hash": "858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", + "host.hardware.owner": "admin", + "host.workgroup": "WORKGROUP", + "benchmark.id": "xccdf_mil.disa.stig_benchmark_Adobe_Acrobat_Reader_DC_Continuous_Track_STIG", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "rule.vulnerability_id": "SV-79409", + "oval.id": "oval:mil.disa.stig.adobe.reader:def:10", + "rule.finding_id": "V-213168", + "rule.stig_id": "ARDC-CN-000005", + "rule.oval.class": "compliance", + "rule.benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "oval.class": "compliance", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "oval.refid": "", + "rule.severity": "medium", + "host.oem.model": "", + "host.uptime": "564559.6950263", + "benchmark.version": "002.002", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "benchmark.title": "Adobe Acrobat Reader DC Continuous Track STIG SCAP Benchmark", + "script.name": "Invoke-TychonStigBenchmarkScan.ps1", + "rule.oval.id": "oval:mil.disa.stig.adobe.reader:def:10", + "benchmark.generated_utc": "1664376309000", + "host.oem.manufacturer": "", + "host.os.description": "", + "script.current_duration": "10195.83", + "host.ipv6": "", + "script.current_time": "2023-09-25T05:03:27Z", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/data_stream/tychon_stig/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml index 44a26fd137a..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml @@ -1,21 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index 9487a929018..c89e8e943e1 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -1,3 +1,5 @@ +- external: ecs + name: '@timestamp' - external: ecs name: package.description - external: ecs @@ -8,8 +10,16 @@ name: package.type - external: ecs name: package.build_version +- external: ecs + name: rule.id - external: ecs name: rule.name +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type - external: ecs name: event.kind - external: ecs diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 903e805d584..9b66266c59e 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -9,7 +9,7 @@ type: keyword - name: generated_utc description: Benchmark UTC. - type: keyword + type: date - name: hash description: Benchmark SHA256 Hash type: keyword @@ -43,9 +43,6 @@ - name: rule type: group fields: - - name: id - description: Benchmark Rule Identifier. - type: keyword - name: finding_id description: Benchmark Rule Finding Identifier. type: keyword diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json index 8700987137b..bcd83cbbc9b 100644 --- a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json @@ -1,57 +1,57 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "volume.file_system": "NTFS", - "volume.serial_number": "1591285579", - "volume.size": "52424704", - "script.type": "powershell", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "host.hostname": "BOTANYBAYEP1", - "host.hardware.manufacturer": "VMware, Inc.", - "script.start": "2023-09-25T21:04:42Z", - "host.os.name": "Microsoft Windows 10 Pro", - "host.hardware.owner": "admin", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "volume.dos_device_path": "\\Device\\HarddiskVolume1", - "host.os.organization": "", - "volume.block_size": "4096", - "host.workgroup": "WORKGROUP", - "host.ipv4": "10.1.9.51", - "host.os.version": "2009", - "volume.drive.type": "3", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "volume.freespace": "18493440", - "volume.drive.letter": "", - "volume.power_management_supported": "false", - "volume.purpose": "", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "volume.dirty_bit_set": "false", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "volume.id": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", - "volume.automount": "true", - "host.oem.model": "", - "host.uptime": "622244.0713174", - "id": "10aa4446888ff52f03574182167ec9bd7e8e1454", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "script.name": "Get-TychonVolumeInfo.ps1", - "script.version": "2.3.141.0", - "volume.page_file_present": "false", - "host.oem.manufacturer": "", - "host.os.description": "", - "volume.percent_full": "64.72", - "script.current_duration": "6931.80", - "host.ipv6": "", - "script.current_time": "2023-09-25T21:04:49Z", - "host.hardware.bios.version": "6.00", - "volume.name": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", - "volume.system_volume": "true", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "volume.file_system": "NTFS", + "volume.serial_number": "1591285579", + "volume.size": "52424704", + "script.type": "powershell", + "host.os.build": "19045", + "host.ip": "10.1.9.51", + "host.hostname": "BOTANYBAYEP1", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-09-25T21:04:42Z", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.owner": "admin", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "volume.dos_device_path": "\\Device\\HarddiskVolume1", + "host.os.organization": "", + "volume.block_size": "4096", + "host.workgroup": "WORKGROUP", + "host.ipv4": "10.1.9.51", + "host.os.version": "2009", + "volume.drive.type": "3", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "volume.freespace": "18493440", + "volume.drive.letter": "", + "volume.power_management_supported": "false", + "volume.purpose": "", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "volume.dirty_bit_set": "false", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": "00:0C:29:93:6A:F3", + "volume.id": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "volume.automount": "true", + "host.oem.model": "", + "host.uptime": "622244.0713174", + "id": "10aa4446888ff52f03574182167ec9bd7e8e1454", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "script.name": "Get-TychonVolumeInfo.ps1", + "script.version": "2.3.141.0", + "volume.page_file_present": "false", + "host.oem.manufacturer": "", + "host.os.description": "", + "volume.percent_full": "64.72", + "script.current_duration": "6931.80", + "host.ipv6": "", + "script.current_time": "2023-09-25T21:04:49Z", + "host.hardware.bios.version": "6.00", + "volume.name": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", + "volume.system_volume": "true", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/data_stream/tychon_volume/fields/agent.yml index 45dccd05b24..efacb477dd9 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/agent.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/agent.yml @@ -39,7 +39,7 @@ type: keyword - name: version description: Scanner Script Version. - type: keyword + type: version - name: host title: Host group: 2 @@ -92,7 +92,7 @@ type: keyword - name: version description: Host BIOS Version. - type: version + type: keyword - name: cpu type: group fields: diff --git a/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml b/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml index b1abf837fb0..58d1699586e 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml @@ -1,6 +1,12 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/data_stream/tychon_volume/fields/fields.yml index 47b85ce669b..6fdf076eb63 100644 --- a/packages/tychon/data_stream/tychon_volume/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_volume/fields/fields.yml @@ -2,39 +2,56 @@ type: group fields: - name: automount + description: Volume Automount. type: boolean - name: block_size + description: Volume Block Size. type: long - name: dirty_bit_set + description: Volume Dirty Bit Set. type: boolean - name: dos_device_path + description: Volume Dos Device Path. type: text - name: drive type: group fields: - name: letter + description: Volume Drive Letter. type: keyword - name: type + description: Volume Drive Type. type: keyword - name: file_system + description: Volume File System. type: keyword - name: freespace + description: Volume Freespace. type: long - name: id + description: Volume Id. type: keyword - name: name + description: Volume Name. type: keyword - name: page_file_present + description: Volume Page File Present. type: boolean - name: percent_full + description: Volume Percent Full. type: float - name: power_management_supported + description: Volume Power Management Supported. type: boolean - name: purpose + description: Volume Purpose. type: keyword - name: serial_number + description: Volume Serial Number. type: keyword - name: size + description: Volume Size. type: long - name: system_volume + description: Volume System Volume. type: boolean diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 12be53f9dd3..87e81503ecc 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -49,7 +49,7 @@ TYCHON scans Endpoint ARP Tables and returns the results. | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -77,9 +77,9 @@ TYCHON scans Endpoint ARP Tables and returns the results. | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | network.direction | Direction of the network traffic. 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.interface | The interface the ARP Table has associated the destination. | keyword | | network.state | Current state | keyword | @@ -89,7 +89,7 @@ TYCHON scans Endpoint ARP Tables and returns the results. | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -126,18 +126,18 @@ TYCHON scans for Endpoint CPU's and returns the results. | 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.biossn | Host BIOS Serial Number. | keyword | -| host.cpu.caption | | text | -| host.cpu.clockspeed | | long | -| host.cpu.family | | keyword | -| host.cpu.manufacturer | | keyword | -| host.cpu.name | | keyword | -| host.cpu.number_of_cores | | integer | -| host.cpu.number_of_logical_processors | | integer | -| host.cpu.speed | | long | -| host.cpu.virtualization_firmware_enabled | | boolean | +| host.cpu.caption | Host Cpu Caption. | text | +| host.cpu.clockspeed | Host Cpu Clockspeed. | long | +| host.cpu.family | Host Cpu Family. | keyword | +| host.cpu.manufacturer | Host Cpu Manufacturer. | keyword | +| host.cpu.name | Host Cpu Name. | keyword | +| host.cpu.number_of_cores | Host Cpu Number Of Cores. | integer | +| host.cpu.number_of_logical_processors | Host Cpu Number Of Logical Processors. | integer | +| host.cpu.speed | Host Cpu Speed. | long | +| host.cpu.virtualization_firmware_enabled | Host Cpu Virtualization Firmware Enabled. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -165,15 +165,15 @@ TYCHON scans for Endpoint CPU's and returns the results. | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -187,16 +187,23 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | Field | Description | Type | |---|---|---| -| @timestamp | Event timestamp. | date | +| @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 | | agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | | agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | 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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic.service.agent.status | Elastic Service Agent Status. | keyword | +| elastic.service.agent.version | Elastic Service Agent Version. | version | +| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | +| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | +| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | +| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | +| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | @@ -208,62 +215,99 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | 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. | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | | host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | | host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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 | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | +| trellix.service.accm.status | Trellix Service Accm Status. | keyword | +| trellix.service.accm.version | Trellix Service Accm Version. | version | +| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | +| trellix.service.dlp.version | Trellix Service Dlp Version. | version | +| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | +| trellix.service.ens.status | Trellix Service Ens Status. | keyword | +| trellix.service.ens.version | Trellix Service Ens Version. | version | +| trellix.service.ma.status | Trellix Service Ma Status. | keyword | +| trellix.service.ma.version | Trellix Service Ma Version. | version | +| trellix.service.pa.status | Trellix Service Pa Status. | keyword | +| trellix.service.pa.version | Trellix Service Pa Version. | version | +| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | +| trellix.service.rsd.version | Trellix Service Rsd Version. | version | | tychon.id | TYCHON unique host identifier. | keyword | | vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | | vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | -| vulnerability.definition | National Vulnerability Database Vulnerability Definition. | keyword | | vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | | vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | | vulnerability.due_date | Vulnerability Due Date. | date | -| vulnerability.due_date_reason | Vulnerability Due Date Reason | keyword | +| vulnerability.due_date_reason | Vulnerability Due Date Reason. | keyword | | vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | -| vulnerability.iava | Information Assurance Vulneraiblity Alert Identifier. | keyword | -| vulnerability.iava_severity | Information Assurance Vulnerability Alert Severity. | keyword | +| vulnerability.iava | Vulnerability Iava. | keyword | +| vulnerability.iava_severity | Vulnerability Iava Severity. | keyword | | vulnerability.id | The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] | keyword | | vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | -| vulnerability.result | Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. | keyword | +| vulnerability.result | Vulnerability Result. | keyword | | vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | 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.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | | 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 | -| vulnerability.title | Common Vulnerabilities and Exposures Description and Title. | keyword | -| vulnerability.version | Version Number of the Scan. | keyword | -| vulnerability.year | Common Vulnerabilities and Exposures Year. | integer | +| vulnerability.title | Vulnerability Title. | keyword | +| vulnerability.version | Vulnerability Version. | keyword | +| vulnerability.year | Vulnerability Year. | integer | +| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | +| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | +| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | +| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | +| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | +| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | +| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | +| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | +| windows_defender.service.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | +| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | +| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | +| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | +| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | +| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | +| windows_defender.service.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | ### Endpoint Protection Platform @@ -275,23 +319,23 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | Field | Description | Type | |---|---|---| -| @timestamp | Event timestamp. | date | +| @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 | | agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | | agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | 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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic.service.agent.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | -| elastic.service.agent.endpoint.malware | Elastic Service Endpoint Malware. | keyword | -| elastic.service.agent.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | -| elastic.service.agent.endpoint.status | Elastic Service Endpoint Status. | keyword | -| elastic.service.agent.endpoint.version | Elastic Service Endpoint Version. | version | | elastic.service.agent.status | Elastic Service Agent Status. | keyword | | elastic.service.agent.version | Elastic Service Agent Version. | version | +| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | +| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | +| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | +| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | +| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | @@ -302,13 +346,11 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | 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 | Event module. | 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.biossn | Host BIOS Serial Number. | keyword | -| host.epp.product | Epp products installed | keyword | | host.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -324,13 +366,12 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | host.os.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | -| host.trellix.product | trellix products installed | keyword | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | | package.description | Description of the package. | keyword | | package.name | Package name | keyword | @@ -341,7 +382,7 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | trellix.service.accm.status | Trellix Service Accum Status. | keyword | | trellix.service.accm.version | Trellix Service Accum Version. | version | @@ -409,7 +450,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -437,9 +478,9 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | 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 | @@ -457,7 +498,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | service.description | The description text on the serivce. | keyword | | service.display_name | The human readable name of the service | keyword | | service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | @@ -490,15 +531,16 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | disk.boot_from | OS booted from this disk | boolean | | disk.bus_type | THe Disk Bus Type | keyword | | disk.clustered | Is the Disk Clustered | boolean | -| disk.firmware.version | Disk Firmware version | keyword | -| disk.guid | Disk UUID | keyword | +| disk.firmware_version | Disk Firmware version | keyword | | disk.health_status | Health status of the disk | keyword | | disk.highly_available | Disk is marked as highly available | boolean | +| disk.id | Disk ID | keyword | | disk.is_boot | Disk is a boot disk | boolean | | disk.location.adapter | Zero index adapter location | integer | | disk.location.bus | Disk Bus Location | integer | | disk.location.device | Disk Device Location | integer | | disk.location.function | Disk Function Location | integer | +| disk.location.pci_slot | PCI Slot location | integer | | disk.manufacturer | The manufacturer of the Disk | keyword | | disk.model | The model of the disk | keyword | | disk.name | The firendly name of the disk | keyword | @@ -526,7 +568,7 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -554,15 +596,15 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -585,14 +627,14 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.class | | keyword | -| device.description | | keyword | -| device.friendly_name | | keyword | +| device.class | Device Class. | keyword | +| device.description | Device Description. | text | +| device.friendly_name | Device Friendly Name. | keyword | | device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | | device.manufacturer | The vendor name of the device manufacturer. | keyword | -| device.name | | keyword | -| device.present | | boolean | -| device.status | | keyword | +| device.name | Device Name. | keyword | +| device.present | Device Present. | boolean | +| device.status | Device Status. | 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 | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | @@ -609,7 +651,7 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -637,15 +679,15 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -668,30 +710,30 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | | error.message | Error message. | match_only_text | -| event.deviceguard.basevirtualizationsupport.available | | boolean | -| event.deviceguard.credentialguard.enabled | | boolean | -| event.deviceguard.credentialguard.running | | boolean | -| event.deviceguard.dmaprotection.available | | boolean | -| event.deviceguard.hypervisorenforcedcodeint.enabled | | boolean | -| event.deviceguard.hypervisorenforcedcodeint.running | | boolean | -| event.deviceguard.secureboot.available | | boolean | -| event.deviceguard.securememoverwrite.available | | boolean | -| event.deviceguard.smmsecuritymigrations.available | | boolean | -| event.deviceguard.systemguardsecurelaunch.enabled | | boolean | -| event.deviceguard.systemguardsecurelaunch.running | | boolean | -| event.deviceguard.ueficodereadonly.available | | boolean | -| event.deviceguard.usermodecodeintegrity.policyenforcement | | keyword | -| event.deviceguard.version | | keyword | -| event.deviceguard.virtualizationbasedsecurity.status | | keyword | +| event.deviceguard.basevirtualizationsupport.available | Event Device Base Virtualization Support Available. | boolean | +| event.deviceguard.credentialguard.enabled | Event Device Credential Guard Enabled. | boolean | +| event.deviceguard.credentialguard.running | Event Device Credential Guard Running. | boolean | +| event.deviceguard.dmaprotection.available | Event Device | boolean | +| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Device Hypervisor Enforced Code Enabled. | boolean | +| event.deviceguard.hypervisorenforcedcodeint.running | Event Device Hypervisor Enforced Code running. | boolean | +| event.deviceguard.secureboot.available | Event Device Secure Boot Available. | boolean | +| event.deviceguard.securememoverwrite.available | Event Device Secure Memory Overwrite Available. | boolean | +| event.deviceguard.smmsecuritymigrations.available | Event Device SMM Security Migrations Available. | boolean | +| event.deviceguard.systemguardsecurelaunch.enabled | Event Device Guard System Guard Secure Launch Enabled. | boolean | +| event.deviceguard.systemguardsecurelaunch.running | Event Device Guard System Guard Secure Launch Running. | boolean | +| event.deviceguard.ueficodereadonly.available | Event Device Guard UEFI Code Readonly Availability. | boolean | +| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Device Guard User Mode Code Integrity Policy Enforcement. | keyword | +| event.deviceguard.version | Event Device Guard version. | keyword | +| event.deviceguard.virtualizationbasedsecurity.status | Event Device Guard Virtualization Based Security Status. | 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.ufi.enabled | | boolean | +| event.ufi.enabled | Event UFI Enabled. | boolean | | host.architecture | Operating system architecture. | keyword | | host.biossn | Host BIOS Serial Number. | keyword | -| host.cpu.caption | Description of the CPU | keyword | +| host.cpu.caption | Description of the CPU | text | | host.cpu.count | Total Number of CPUs on the system | integer | | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -729,14 +771,14 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.virtualization_status | | keyword | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | keyword | -| log.offset | Source file current offset. | long | +| input.type | Input Type. | keyword | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tychon.definition.oval | What version of the TYCHON oval defitnions are currently on this endpoint | date | | tychon.definition.stig | What version of the Benchmark checks are on this endpoint | date | | tychon.id | TYCHON unique host identifier. | keyword | @@ -770,7 +812,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | | host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | | host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | -| host.adapter.domain | What domain was assigned to this adatper | keyword | +| host.adapter.domain | What domain was assigned to this adatper | text | | host.adapter.driver.date | Date the driver was installed | date | | host.adapter.driver.description | Description of the driver | text | | host.adapter.driver.file_name | Driver File name | keyword | @@ -799,11 +841,11 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | | host.adapter.wifi.signal_percent | Signal strenth to connected WIFI Router | integer | | host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | -| host.adapter.wins_server | The WINS Server attached to this adatper | keyword | +| host.adapter.wins_server | The WINS Server attached to this adatper | ip | | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -827,14 +869,14 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | keyword | -| log.offset | Source file current offset. | long | +| input.type | Input Type. | keyword | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tychon.id | TYCHON unique host identifier. | keyword | @@ -872,7 +914,7 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -900,31 +942,31 @@ The TYCHON script scans an endpoint's Software Inventory and returns information | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | package.architecture | Package architecture. | keyword | -| package.cpe | | keyword | +| package.cpe | Package Cpe. | keyword | | package.description | Description of the package. | keyword | -| package.id | | keyword | +| package.id | Package Id. | keyword | | package.installed | Time when package was installed. | date | | package.name | Package name | keyword | | package.path | Path where the package is installed. | keyword | -| package.publisher | | keyword | +| package.publisher | Package Publisher. | keyword | | package.size | Package size in bytes. | long | | package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| package.uninstall | | text | +| package.uninstall | Package Uninstall. | text | | package.version | Package version | keyword | -| package.version_build | | integer | -| package.version_major | | integer | -| package.version_minor | | integer | -| package.version_release | | integer | +| package.version_build | Package Version Build. | integer | +| package.version_major | Package Version Major. | integer | +| package.version_minor | Package Version Minor. | integer | +| package.version_release | Package Version Release. | integer | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -938,23 +980,24 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | Field | Description | Type | |---|---|---| -| @timestamp | Event timestamp. | date | +| @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 | | agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | | agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | keyword | | benchmark.count | Benchmark Summary Name List Item Count. | long | -| benchmark.generated_utc | Benchmark UTC. | keyword | +| benchmark.generated_utc | Benchmark UTC. | date | | benchmark.guid | Benchmark GUID. | keyword | | benchmark.hash | Benchmark SHA256 Hash | keyword | +| benchmark.id | Benchmark ID. | keyword | | benchmark.list | Benchmark Summary Name List. | keyword | | benchmark.name | Benchmark Name. | keyword | | benchmark.title | Benchmark Title. | keyword | | benchmark.version | Benchmark Version. | 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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | @@ -966,12 +1009,11 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | 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 | Event module. | 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.biossn | Host BIOS Serial Number. | keyword | | host.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -990,9 +1032,9 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | | oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | | oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | @@ -1005,7 +1047,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | | rule.benchmark.title | Benchmark Rule Title. | keyword | | rule.finding_id | Benchmark Rule Finding Identifier. | keyword | -| rule.id | Benchmark Rule Identifier. | 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 | | rule.oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | | rule.oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | @@ -1021,7 +1063,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | @@ -1060,7 +1102,7 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | version | +| host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | @@ -1088,32 +1130,32 @@ The TYCHON script scans an endpoint's Volume Configurations and returns informat | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | -| input.type | Source file type. | 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 | Source file current offset. | long | +| log.offset | Log Offset. | long | | script.current_duration | Scanner Script Duration. | long | | script.current_time | Current datetime. | date | | script.name | Scanner Script Name. | keyword | | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | keyword | +| script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | | tychon.id | TYCHON unique host identifier. | keyword | -| volume.automount | | boolean | -| volume.block_size | | long | -| volume.dirty_bit_set | | boolean | -| volume.dos_device_path | | text | -| volume.file_system | | keyword | -| volume.freespace | | long | -| volume.id | | keyword | -| volume.name | | keyword | -| volume.page_file_present | | boolean | -| volume.percent_full | | float | -| volume.power_management_supported | | boolean | -| volume.purpose | | keyword | -| volume.serial_number | | keyword | -| volume.size | | long | -| volume.system_volume | | boolean | -| volume.volume.letter | | keyword | -| volume.volume.type | | keyword | +| volume.automount | Volume Automount. | boolean | +| volume.block_size | Volume Block Size. | long | +| volume.dirty_bit_set | Volume Dirty Bit Set. | boolean | +| volume.dos_device_path | Volume Dos Device Path. | text | +| volume.drive.letter | Volume Drive Letter. | keyword | +| volume.drive.type | Volume Drive Type. | keyword | +| volume.file_system | Volume File System. | keyword | +| volume.freespace | Volume Freespace. | long | +| volume.id | Volume Id. | keyword | +| volume.name | Volume Name. | keyword | +| volume.page_file_present | Volume Page File Present. | boolean | +| volume.percent_full | Volume Percent Full. | float | +| volume.power_management_supported | Volume Power Management Supported. | boolean | +| volume.purpose | Volume Purpose. | keyword | +| volume.serial_number | Volume Serial Number. | keyword | +| volume.size | Volume Size. | long | +| volume.system_volume | Volume System Volume. | boolean | diff --git a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 521485625af..00000000000 --- a/packages/tychon/kibana/security_rule/07dc1be0-4270-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id": "07dc1be0-4270-11ee-83e4-c92ed141b9e5_1", - "name": "Weak WIFI Authentication in use", - "tags": [], - "interval": "5m", - "enabled": true, - "description": "An endpoint has reported it is connected to a WIFI SSID using a weak Authentication method.", - "risk_score": 21, - "severity": "low", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "bdf083c5-63cb-41ae-bb7a-563cc4e8719f", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://www.techtarget.com/searchnetworking/feature/Wireless-encryption-basics-Understanding-WEP-WPA-and-WPA2" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "e886429e-9532-4f44-bb36-6465fe760866", - "query": "host.adapter.wifi.authentication : \"WEP\" or host.adapter.wifi.authentication : \"WPA\" or host.adapter.wifi.authentication : \"WPA-Personal\" or host.adapter.wifi.authentication : \"WPA-Enterprise\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 13fc38ee5ad..00000000000 --- a/packages/tychon/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "10359860-1139-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "CAT 1 IAVA Vulnerability Detected", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A category one IAVA has been detected as being vulnerable", - "risk_score": 90, - "severity": "high", - "note": "Investigator should work to patch this system for this IAVA as quickly as possible.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "10359860-1139-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.iava_severity : \"CAT I\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 26c1c35adee..00000000000 --- a/packages/tychon/kibana/security_rule/11481830-426d-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id": "11481830-426d-11ee-83e4-c92ed141b9e5_1", - "name": "Large number of failed Vulnerabilities ", - "tags": [ - "CVE", - "TYCHON" - ], - "interval": "1h", - "enabled": true, - "description": "This endpoint has been determined to have a high number of total vulnerabilities failed, this can indicate an extremely exposed endpoint.", - "risk_score": 73, - "severity": "high", - "note": "Due to the high number of failed CVE checks, it is recommended that the security administrator quarantine this system immediately and bring the machine up to date with all patches. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-3900s", - "rule_id": "5be38411-3902-4686-8209-1ab75a6d3847", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "threshold", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.result : \"fail\" ", - "filters": [], - "threshold": { - "field": [ - "tychon.id" - ], - "value": 30, - "cardinality": [] - }, - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 95c753db703..00000000000 --- a/packages/tychon/kibana/security_rule/17a4a660-4111-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id": "17a4a660-4111-11ee-83e4-c92ed141b9e5_1", - "name": "Past Due Vulnerability Failed", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON tracks when vulnerabilities are past expiration to ensure systems are patched before exploits are released or to reduce the attack surface of the endpoint. Due dates are generated from 3 rules:\n1. CISA - Exact CISA Due Date\n2. IAVA - 18 Days from when TYCHON records an IAVA is released\n3. NVD - If a Vulnerability is marked as critical, the due date is generated as 30 days after its release.", - "risk_score": 99, - "severity": "critical", - "note": "Analysts should quarantine hosts that have out-of-date vulnerabilities, these are normally weaknesses that have active exploits in the wild. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "beeea32f-31ba-4be8-9e2c-14de47280aac", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://www.cisa.gov/known-exploited-vulnerabilities-catalog" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.result : \"fail\" and vulnerability.due_date < now", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 24d5cf80b8f..00000000000 --- a/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "id": "2e5a7e20-1137-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "Windows Defender Feature Reported as Disabled", - "tags": [ - "TYCHON", - "EPP", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A Feature in Windows Defender has been set to disabled in the latest report from the TYCHON Agentless Module", - "risk_score": 60, - "severity": "medium", - "note": "Analysts should look into the history of this endpoint to figure out when the feature was disabled and work to re-enable the feature.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "2e5a7e20-1137-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [ - { - "id": "T1089", - "reference": "https://attack.mitre.org/techniques/T1089", - "name": "Disabling Security Tools", - "subtechnique": [] - } - ] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "6c3bf5e0-0feb-4113-a417-ac5e69cd6e00", - "query": "windows_defender.service.antimalware.status : \"Disabled\" or windows_defender.service.antispyware.status :\"Disabled\" or windows_defender.service.antivirus.status : \"Disabled\" or windows_defender.service.behavior_monitor.status : \"Disabled\" or windows_defender.service.ioav_protection.status : \"Disabled\" or windows_defender.service.nis.status : \"Disabled\" or windows_defender.service.on_access_protection.status : \"Disabled\" or windows_defender.service.real_time_protection.status : \"Disabled\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 64926bf7e5a..00000000000 --- a/packages/tychon/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "2e9c9ac0-1138-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "Critical Vulnerability Failed", - "tags": [ - "TYCHON", - "CCRI", - "CVE" - ], - "interval": "5m", - "enabled": true, - "description": "A vulnerability that has been categorized as Critical by NVD has been reported as failed.", - "risk_score": 90, - "severity": "high", - "note": "Investigators should get systems with critical vulnerabilities patched and ensure mitigations are in place while the system is vulenrable.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "2e9c9ac0-1138-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.severity :\"CRITICAL\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 39c855a4d7b..00000000000 --- a/packages/tychon/kibana/security_rule/38a72d20-426e-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id": "38a72d20-426e-11ee-83e4-c92ed141b9e5_1", - "name": "TPM Compliance Failed", - "tags": [ - "TYCHON", - "STIG" - ], - "interval": "5m", - "enabled": true, - "description": "This host has been determined by TYCHON to be non-compliant with the Trusted Platform Module (TPM), this is due to it being not present or at the wrong version.", - "risk_score": 47, - "severity": "medium", - "note": "Enable TPM 2.0 on this machine, if it is unable to be enabled because the host does not support it, determine the risk and take appropriate measures.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0006", - "reference": "https://attack.mitre.org/tactics/TA0006", - "name": "Credential Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [ - "https://support.microsoft.com/en-us/windows/enable-tpm-2-0-on-your-pc-1fd5a332-360d-4f46-a1e7-ae6b0c90645c" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "host.tpm.compliant : false ", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 7d379786d15..00000000000 --- a/packages/tychon/kibana/security_rule/3a1028a0-4292-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "3a1028a0-4292-11ee-83e4-c92ed141b9e5_1", - "name": "TYCHON Benchmark SCAP Definition File Out of Date", - "tags": [ - "TYCHON", - "SCAP" - ], - "interval": "24h", - "enabled": true, - "description": "TYCHON updates its SCAP definitions daily and should be no more than 120 days old to ensure you are working from the most up-to-date requirements and settings. ", - "risk_score": 47, - "severity": "medium", - "note": "TYCHON Definitions are updated daily, check the local host logs and see if there are issues with TYCHON definitions updating. You can obtain the latest version from the TYCHON support site.\n\nhttps://support.tychon.io", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-86460s", - "rule_id": "6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [], - "to": "now", - "references": [ - "https://support.tychon.io" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "tychon.definition.stig < \"now-120d\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index d77553fc873..00000000000 --- a/packages/tychon/kibana/security_rule/75197a50-428d-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id": "75197a50-428d-11ee-83e4-c92ed141b9e5_1", - "name": "TYCHON Vulnerability Definitions Out of Date", - "tags": [ - "TYCHON", - "CVE" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON updates its definitions daily for vulnerability checks, if systems are too far out of date you are not getting the results for the most recent vulnerabilities further affecting your attack surface.", - "risk_score": 73, - "severity": "high", - "note": "Review the endpoint event logs and determine why TYCHON definitions are not being updated and pushed. Ensure you have downloaded the latest definition installers from the TYCHON support site.\n\nhttps://support.tychon.io", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "c40eaba1-7507-4fe7-aae5-78e59cd7b8f2", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [], - "to": "now", - "references": [ - "https://support.tychon.io" - ], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "tychon.definition.oval < \"now-30d\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json deleted file mode 100644 index 5e2befb15ae..00000000000 --- a/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id": "867e3450-1139-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "High STIG/SCAP Check Failed", - "tags": [ - "TYCHON", - "CCRI", - "SCAP" - ], - "interval": "5m", - "enabled": true, - "description": "A High Severity STIG/SCAP Check failed on an endpoint.", - "risk_score": 60, - "severity": "medium", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "867e3450-1139-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "query": "rule.result : \"fail\" and rule.severity : \"high\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json b/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json deleted file mode 100644 index d9dafd8ca1c..00000000000 --- a/packages/tychon/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "934a39a0-1138-11ee-af86-538da1394f27_1", - "type": "security-rule", - "attributes": { - "name": "High Vulnerability Failed", - "tags": [ - "TYCHON", - "CVE", - "CCRI" - ], - "interval": "5m", - "enabled": true, - "description": "A host with a high-severity CVE was flagged as being vulnerable.", - "risk_score": 60, - "severity": "medium", - "note": "Investigator should work to resolve this patch and keep a close monitor on this endpoint.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "934a39a0-1138-11ee-af86-538da1394f27", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT\u0026CK", - "tactic": { - "id": "TA0001", - "reference": "https://attack.mitre.org/tactics/TA0001", - "name": "Initial Access" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "78931842-dc88-45d7-a6ee-d79fb9f615bd", - "query": "vulnerability.severity :\"HIGH\" and vulnerability.result : \"fail\" ", - "filters": [], - "throttle": "no_actions", - "actions": [] - } -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index e0f44eec534..00000000000 --- a/packages/tychon/kibana/security_rule/afdf3de0-4289-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id": "afdf3de0-4289-11ee-83e4-c92ed141b9e5_1", - "name": "New Device Discovered", - "tags": [ - "TYCHON", - "ARP" - ], - "interval": "8h", - "enabled": false, - "description": "TYCHON pulls the ARP tables from endpoints, when new devices are found they should be investigated and validated.", - "risk_score": 21, - "severity": "low", - "note": "New devices come online and offline constantly, the MAC address should be investigated and resolved.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-32400s", - "rule_id": "55faa99b-ce17-4a41-9f63-4a7439e3543a", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0007", - "reference": "https://attack.mitre.org/tactics/TA0007", - "name": "Discovery" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "new_terms", - "query": "not destination.mac : \"ff-ff-ff-ff-ff-ff\" ", - "new_terms_fields": [ - "destination.mac" - ], - "history_window_start": "now-7d", - "filters": [], - "language": "kuery", - "data_view_id": "8532a0b4-2a02-4dfa-b6aa-aabe01125b61", - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index d1f291155f6..00000000000 --- a/packages/tychon/kibana/security_rule/b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id": "b85c2ad0-427c-11ee-83e4-c92ed141b9e5_1", - "name": "High number of SCAP Failures", - "tags": [ - "TYCHON", - "CCRI" - ], - "interval": "1h", - "enabled": true, - "description": "TYCHON has reported a high number of SCAP failures for an endpoint. This can indicate a very weak security posture for an endpoint.", - "risk_score": 47, - "severity": "medium", - "note": "The system may need to be isolated. Investigate the SCAP results for this system and perform fixes for all High and Medium checks. ", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-3660s", - "rule_id": "2140f083-6e39-4df4-ba41-aa1f41cb81b8", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0007", - "reference": "https://attack.mitre.org/tactics/TA0007", - "name": "Discovery" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "threshold", - "language": "kuery", - "data_view_id": "ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a", - "query": "rule.result : \"fail\" and not rule.severity : \"low\" ", - "filters": [], - "threshold": { - "field": [ - "tychon.id" - ], - "value": 20, - "cardinality": [] - }, - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index 65864f9665a..00000000000 --- a/packages/tychon/kibana/security_rule/cb5715c0-426b-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "id": "cb5715c0-426b-11ee-83e4-c92ed141b9e5_1", - "name": "Endpoint Security Definitions are Out of Date", - "tags": [ - "EPP", - "TYCHON" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON has reported that the registered endpoint protection platform is out of date and needs to be updated.", - "risk_score": 73, - "severity": "high", - "note": "Depending on the Endpoint Protection Vendor, you will need to push new updated to this endpoint. See the vendor's user guides to determine how to install the most recent AV updates.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "6839b82b-22bf-418f-a86b-7e7a4cd074d7", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0005", - "reference": "https://attack.mitre.org/tactics/TA0005", - "name": "Defense Evasion" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "9267bb1b-cf22-4417-8cfb-6606848140a7", - "query": "host.security.antivirus.status : *OutOfDate*", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json b/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json deleted file mode 100644 index e2aa75c2a01..00000000000 --- a/packages/tychon/kibana/security_rule/edcdabf0-4275-11ee-83e4-c92ed141b9e5_1.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "id": "edcdabf0-4275-11ee-83e4-c92ed141b9e5_1", - "name": "System Volume Mounted to Drive", - "tags": [ - "TYCHON", - "Volume" - ], - "interval": "5m", - "enabled": true, - "description": "TYCHON has reported that the system volume has been mounted to a drive letter.", - "risk_score": 47, - "severity": "medium", - "note": "Investigate and determine how the drive was mounted and remove the mount if it was done maliciously.", - "license": "", - "output_index": "", - "author": [ - "TYCHON" - ], - "false_positives": [], - "from": "now-360s", - "rule_id": "d0d735ed-08fe-4393-9aa6-120236995152", - "max_signals": 100, - "risk_score_mapping": [], - "severity_mapping": [], - "threat": [ - { - "framework": "MITRE ATT&CK", - "tactic": { - "id": "TA0004", - "reference": "https://attack.mitre.org/tactics/TA0004", - "name": "Privilege Escalation" - }, - "technique": [] - } - ], - "to": "now", - "references": [], - "version": 1, - "exceptions_list": [], - "related_integrations": [], - "required_fields": [], - "setup": "", - "type": "query", - "language": "kuery", - "data_view_id": "62456a9a-bd4c-4b57-b6b5-5556b6869ce5", - "query": "volume.system_volume : true and not volume.drive.letter : \"\"", - "filters": [], - "throttle": "no_actions", - "actions": [] -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json deleted file mode 100644 index 5afd9afcbcc..00000000000 --- a/packages/tychon/kibana/tag/026431f0-3de5-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#13814a", - "description": "TYCHON reported TCP and UDP ports that are or were open and listening on endpoints.", - "name": "Open Ports" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T16:33:49.204Z", - "id": "026431f0-3de5-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T16:33:49.204Z", - "version": "WzY4MDI0OCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json b/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json deleted file mode 100644 index 02f1818c36b..00000000000 --- a/packages/tychon/kibana/tag/11990b80-41b6-11ee-83e4-c92ed141b9e5.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#9b2767", - "description": "TYCHON capture of Network adapters attached to endpoints.", - "name": "Network Adapter" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T13:07:53.023Z", - "id": "11990b80-41b6-11ee-83e4-c92ed141b9e5", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-23T13:07:53.023Z", - "version": "WzgwNjc5OSwyMl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json deleted file mode 100644 index 1966387148d..00000000000 --- a/packages/tychon/kibana/tag/27edf330-3dfd-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#c30936", - "description": "TYCHON installed software and apps found on an endpoint.", - "name": "Applications" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T19:26:40.105Z", - "id": "27edf330-3dfd-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T19:26:40.105Z", - "version": "WzY4MzIzMiwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json deleted file mode 100644 index 048fdbea840..00000000000 --- a/packages/tychon/kibana/tag/39b55820-10f2-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#2075cf", - "description": "A Command Cyber Readiness Inspection Report", - "name": "CCRI" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T11:45:03.146Z", - "id": "39b55820-10f2-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T11:45:03.146Z", - "version": "WzI3Njg3MSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json deleted file mode 100644 index f42c93f4b85..00000000000 --- a/packages/tychon/kibana/tag/5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#75899c", - "description": "This tag indicates a \"Starting Point\" for dashboards that utulize drill downs.", - "name": "TYCHON Primary View" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T12:04:15.710Z", - "id": "5a3ae0c0-3dbf-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T12:04:15.710Z", - "version": "WzY3MzY3MCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json deleted file mode 100644 index 0ae58cbedb9..00000000000 --- a/packages/tychon/kibana/tag/7b7ab4c0-3e02-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#154a15", - "description": "The hardware detected by TYCHON as attached to an endpoint", - "name": "Hardware" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T20:04:47.768Z", - "id": "7b7ab4c0-3e02-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T20:04:47.768Z", - "version": "WzY4NDA2NCwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json deleted file mode 100644 index 96242830e19..00000000000 --- a/packages/tychon/kibana/tag/7f851220-3d41-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#85ed08", - "description": "Hard Drives on Computers", - "name": "Drives" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T21:03:21.673Z", - "id": "7f851220-3d41-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T21:03:21.673Z", - "version": "WzY2MTI0MSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json deleted file mode 100644 index 73bff95d68b..00000000000 --- a/packages/tychon/kibana/tag/9c222660-1100-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#58b7ff", - "description": "Vulnerability Information", - "name": "CVE" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T13:28:01.234Z", - "id": "9c222660-1100-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T13:28:01.234Z", - "version": "WzI4MTM1OSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json deleted file mode 100644 index b95776ef16b..00000000000 --- a/packages/tychon/kibana/tag/a3922360-3de6-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#efe009", - "description": "The TYCHON Endpoint Browser allows a user to see detailed Endpoint Reported data for a single host.", - "name": "Endpoint Browser" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-18T16:45:29.125Z", - "id": "a3922360-3de6-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-18T16:45:29.125Z", - "version": "WzY4MDQ3NSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json b/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json deleted file mode 100644 index 73f480ee196..00000000000 --- a/packages/tychon/kibana/tag/bae88930-1133-11ee-af86-538da1394f27.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#14d15e", - "description": "Endpoint Protection Statuses", - "name": "EPP" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-06-22T19:33:57.192Z", - "id": "bae88930-1133-11ee-af86-538da1394f27", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-06-22T19:33:57.192Z", - "version": "WzI4NTA4OSwxM10=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json deleted file mode 100644 index dddf54941d5..00000000000 --- a/packages/tychon/kibana/tag/c957d710-3d4c-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#AA6556", - "description": "Routing Tables from Systems", - "name": "ARP" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T22:24:09.990Z", - "id": "c957d710-3d4c-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T22:24:09.990Z", - "version": "WzY2MzYyNiwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json deleted file mode 100644 index 2bee4b97775..00000000000 --- a/packages/tychon/kibana/tag/e18d6100-3c85-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#afaddf", - "description": "Master Endpoint Record", - "name": "MER" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-16T22:40:20.761Z", - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-16T22:40:20.761Z", - "version": "WzYzNTA3MSwxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json b/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json deleted file mode 100644 index 76f5c76268f..00000000000 --- a/packages/tychon/kibana/tag/f26ce820-3d47-11ee-9610-15dee918f31a.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "attributes": { - "color": "#bcbc9c", - "description": "Virtualization Based Security", - "name": "VBS" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-17T21:49:31.431Z", - "id": "f26ce820-3d47-11ee-9610-15dee918f31a", - "migrationVersion": { - "tag": "8.0.0" - }, - "references": [], - "type": "tag", - "updated_at": "2023-08-17T21:49:31.431Z", - "version": "WzY2MjY4NywxNl0=" -} \ No newline at end of file diff --git a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json b/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json deleted file mode 100644 index a3878a8d2aa..00000000000 --- a/packages/tychon/kibana/visualization/ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "attributes": { - "description": "TYCHON Browser is a series of dashbaords dirlling into indvidual datasets for a single computer.", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" - }, - "title": "[TYCHON] Endpoint Browser -Main Navigation", - "uiStateJSON": "{}", - "version": 1, - "visState": "{\"title\":\"[TYCHON] Endpoint Browser -Main Navigation\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"[Host Info](/app/dashboards#/view/6165bf50-3dbf-11ee-9610-15dee918f31a) | [Network Cards](/app/dashboards#/view/1af57010-41b6-11ee-83e4-c92ed141b9e5) | [Drives and Disks](/app/dashboards#/view/380b6c10-3dbd-11ee-9610-15dee918f31a) | [Apps and Software](/app/dashboards#/view/2bd4ca50-3dfd-11ee-9610-15dee918f31a) | [Hardware](/app/dashboards#/view/993e07a0-3e02-11ee-9610-15dee918f31a) | [Vulnerabilities](/app/dashboards#/view/2de7a3c0-3e08-11ee-9610-15dee918f31a) | [Benchmark Results](/app/dashboards#/view/e1c9c490-41a5-11ee-83e4-c92ed141b9e5) | [Services and Ports](/app/dashboards#/view/0c036be0-3de5-11ee-9610-15dee918f31a) | [Protections](/app/dashboards#/view/b85e87c0-41ab-11ee-83e4-c92ed141b9e5)\"}}" - }, - "coreMigrationVersion": "8.6.2", - "created_at": "2023-08-23T21:04:08.909Z", - "id": "ee4b44b0-40e6-11ee-8111-21f5f34f6dfc", - "migrationVersion": { - "visualization": "8.5.0" - }, - "references": [ - { - "id": "10af3800-10f3-11ee-af86-538da1394f27", - "name": "tag-ref-10af3800-10f3-11ee-af86-538da1394f27", - "type": "tag" - }, - { - "id": "e18d6100-3c85-11ee-9610-15dee918f31a", - "name": "tag-ref-e18d6100-3c85-11ee-9610-15dee918f31a", - "type": "tag" - } - ], - "type": "visualization", - "updated_at": "2023-08-23T21:04:08.909Z", - "version": "WzgyMjAyOSwyMl0=" -} \ No newline at end of file diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index d20b54b576a..e6371aadc56 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.53 +version: 0.0.54 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 33fb49e52bc285332ced6c64b0aec552bac37ede Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Thu, 5 Oct 2023 10:10:31 -0400 Subject: [PATCH 58/65] Fixed issues with pipeline test failures --- packages/tychon/changelog.yml | 2 +- .../test/pipeline/test-arp.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../test/pipeline/test-cpu.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../_dev/test/pipeline/test-cve.json | 10 +- .../test/pipeline/test-cve.json-expected.json | 14 +- .../elasticsearch/ingest_pipeline/default.yml | 10 +- .../test/pipeline/test-epp.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../test-exposedservice.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../_dev/test/pipeline/test-harddrive.json | 130 +++++++++--------- .../pipeline/test-harddrive.json-config.yml | 1 + .../test-harddrive.json-expected.json | 12 +- .../elasticsearch/ingest_pipeline/default.yml | 11 +- .../_dev/test/pipeline/test-hardware.json | 8 +- .../pipeline/test-hardware.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 11 +- .../_dev/test/pipeline/test-host.json | 8 +- .../pipeline/test-host.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 11 +- .../test/pipeline/test-networkadapter.json | 8 +- .../test-networkadapter.json-expected.json | 9 +- .../elasticsearch/ingest_pipeline/default.yml | 72 +++++----- .../tychon_networkadapter/fields/fields.yml | 12 +- .../pipeline/test-patch.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../test/pipeline/test-softwareinventory.json | 8 +- .../test-softwareinventory.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 11 +- .../pipeline/test-stig.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 9 +- .../data_stream/tychon_stig/fields/fields.yml | 7 +- .../_dev/test/pipeline/test-volumes.json | 8 +- .../pipeline/test-volumes.json-expected.json | 4 +- .../elasticsearch/ingest_pipeline/default.yml | 11 +- packages/tychon/docs/README.md | 15 +- packages/tychon/elasticIntegration/esLogs.sh | 1 + .../tychon/elasticIntegration/installPkg.sh | 18 +++ .../tychon/elasticIntegration/kibanLogs.sh | 1 + .../tychon/elasticIntegration/startDocker.sh | 14 ++ .../tychon/elasticIntegration/startElastic.sh | 10 ++ .../tychon/elasticIntegration/startFleet.sh | 8 ++ .../elasticIntegration/startRegistry.sh | 6 + .../tychon/elasticIntegration/stopDocker.sh | 6 + packages/tychon/manifest.yml | 2 +- 47 files changed, 304 insertions(+), 245 deletions(-) create mode 100644 packages/tychon/elasticIntegration/esLogs.sh create mode 100644 packages/tychon/elasticIntegration/installPkg.sh create mode 100644 packages/tychon/elasticIntegration/kibanLogs.sh create mode 100644 packages/tychon/elasticIntegration/startDocker.sh create mode 100644 packages/tychon/elasticIntegration/startElastic.sh create mode 100644 packages/tychon/elasticIntegration/startFleet.sh create mode 100644 packages/tychon/elasticIntegration/startRegistry.sh create mode 100644 packages/tychon/elasticIntegration/stopDocker.sh diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index f2c6caef04e..581aabf21dd 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.54 +- version: 0.0.55 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json index a82189f595f..2bbfaf00f64 100644 --- a/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json +++ b/packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:23.418865635Z", + "@timestamp": "2023-10-05T13:48:07.498243391Z", "destination": { "hostname": "Request timed out (700 ms)", "ip": "10.70.4.16", @@ -15,7 +15,7 @@ "category": [ "network" ], - "ingested": "2023-09-25T21:55:23.418865635Z", + "ingested": "2023-10-05T13:48:07.498243391Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index 05580cd8939..a65baf9d532 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -18,14 +18,15 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json index 0c7ea16482a..194fcdb504d 100644 --- a/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json +++ b/packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:23.632476469Z", + "@timestamp": "2023-10-05T13:48:07.751417637Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:23.632476469Z", + "ingested": "2023-10-05T13:48:07.751417637Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index 41090539845..72a2b96542a 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -12,14 +12,15 @@ processors: - set: field: ecs.version value: 8.8.0 - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json index c72268428c3..9a6c1d577d0 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json @@ -3,7 +3,7 @@ { "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", "host.cloud.hosted": false, - "host.domain": null, + "host.domain": "", "host.hardware.bios.name": "Phoenix Technologies LTD", "host.hardware.bios.version": "6.00", "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", @@ -12,10 +12,14 @@ "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", "host.hostname": "BOTANYBAYEP1", "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "host.ipv4": "10.1.9.51", "host.ipv6": "", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "host.oem.manufacturer": "", "host.oem.model": "", "host.os.build": "19045", diff --git a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json index aa333a929a1..e035b567a9c 100644 --- a/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json +++ b/packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:23.823090043Z", + "@timestamp": "2023-10-05T13:48:07.991051920Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "vulnerability" ], - "ingested": "2023-09-25T21:55:23.823090043Z", + "ingested": "2023-10-05T13:48:07.991051920Z", "kind": "state", "module": "tychon", "outcome": "success", @@ -22,7 +22,7 @@ "cloud": { "hosted": false }, - "domain": null, + "domain": "", "hardware": { "bios": { "name": "Phoenix Technologies LTD", @@ -37,12 +37,16 @@ }, "hostname": "BOTANYBAYEP1", "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "ip": "10.1.9.51", + "ip": [ + "10.1.9.51" + ], "ipv4": [ "10.1.9.51" ], "ipv6": "", - "mac": "00-0C-29-93-6A-F3", + "mac": [ + "00-0C-29-93-6A-F3" + ], "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml index 82680cae7cf..c618184d707 100644 --- a/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -31,14 +31,15 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string @@ -82,6 +83,7 @@ processors: - convert: field: vulnerability.score.base type: float + ignore_failure: true - convert: field: vulnerability.year type: long diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 2000bcf3339..774a059e775 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:24.027955596Z", + "@timestamp": "2023-10-05T13:48:08.349377955Z", "ecs": { "version": "8.8.0" }, @@ -24,7 +24,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:24.027955596Z", + "ingested": "2023-10-05T13:48:08.349377955Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 0a966f2d258..8c3bbeacd7a 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -24,14 +24,15 @@ processors: - set: field: event.type value: [info] - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json index ac12640cb35..248cb3c542b 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json +++ b/packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:24.225040722Z", + "@timestamp": "2023-10-05T13:48:08.716336204Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "network" ], - "ingested": "2023-09-25T21:55:24.225040722Z", + "ingested": "2023-10-05T13:48:08.716336204Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 3436d4ec7dc..245b06f1437 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -25,14 +25,15 @@ processors: - set: field: event.kind value: state - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json index 5f452a4b541..6e32362133a 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json @@ -1,65 +1,69 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.name": "Microsoft Windows 10 Pro", - "disk.location.device": "0", - "disk.partition_style": "MBR", - "host.hardware.manufacturer": "VMware, Inc.", - "disk.serial_number": "", - "host.os.build": "19045", - "host.ip": "10.1.9.51", - "disk.boot_from": "true", - "host.hostname": "BOTANYBAYEP1", - "disk.adapter.serial_number": "", - "disk.location.adapter": "0", - "disk.system": "true", - "script.start": "2023-09-25T19:03:48Z", - "disk.size": "42949672960", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "admin", - "disk.name": "VMware Virtual disk", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.ipv4": "10.1.9.51", - "host.oem.model": "", - "disk.is_boot": "true", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "disk.model": "Virtual disk ", - "disk.health_status": "Healthy", - "disk.number": "0", - "script.current_duration": "13711.00", - "disk.offline": "false", - "disk.location.bus": "3", - "disk.location.pci_slot": "160", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.uptime": "614991.6714276", - "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", - "disk.firmware.version": "2.0 ", - "disk.location.function": "0", - "script.current_time": "2023-09-25T19:04:02Z", - "disk.bus_type": "SAS", - "disk.manufacturer": "VMware ", - "disk.clustered": "false", - "script.name": "Get-TychonHardDriveInfo.ps1", - "script.version": "2.3.141.0", - "host.oem.manufacturer": "", - "host.os.description": "", - "host.os.version": "2009", - "disk.operational_status": "Online", - "disk.number_of_partitions": "3", - "host.ipv6": "", - "host.hardware.bios.version": "6.00", - "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk\u0026ven_vmware\u0026prod_virtual_disk#5\u00261ec51bf7\u00260\u0026000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", - "disk.highly_available": "false", - "script.type": "powershell", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.name": "Microsoft Windows 10 Pro", + "disk.location.device": "0", + "disk.partition_style": "MBR", + "host.hardware.manufacturer": "VMware, Inc.", + "disk.serial_number": "", + "host.os.build": "19045", + "host.ip": [ + "10.1.9.51" + ], + "disk.boot_from": "true", + "host.hostname": "BOTANYBAYEP1", + "disk.adapter.serial_number": "", + "disk.location.adapter": "0", + "disk.system": "true", + "script.start": "2023-09-25T19:03:48Z", + "disk.size": "42949672960", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "disk.name": "VMware Virtual disk", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.oem.model": "", + "disk.is_boot": "true", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "disk.model": "Virtual disk", + "disk.health_status": "Healthy", + "disk.number": "0", + "script.current_duration": "13711.00", + "disk.offline": "false", + "disk.location.bus": "3", + "disk.location.pci_slot": "160", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.uptime": "614991.6714276", + "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", + "disk.location.function": "0", + "script.current_time": "2023-09-25T19:04:02Z", + "disk.bus_type": "SAS", + "disk.firmware_version": "2.0", + "disk.manufacturer": "VMware", + "disk.clustered": "false", + "script.name": "Get-TychonHardDriveInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "disk.operational_status": "Online", + "disk.number_of_partitions": "3", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec51bf7&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", + "disk.highly_available": "false", + "script.type": "powershell", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml index 302199c74f9..bec4f152d4a 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml @@ -1,3 +1,4 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json index 80e03157b46..66068c765c4 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:24.421648324Z", + "@timestamp": "2023-10-05T13:48:09.028702894Z", "disk": { "adapter": { "serial_number": "" @@ -9,9 +9,7 @@ "boot_from": "true", "bus_type": "SAS", "clustered": "false", - "firmware": { - "version": "2.0 " - }, + "firmware_version": "2.0", "health_status": "Healthy", "highly_available": "false", "id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk\u0026ven_vmware\u0026prod_virtual_disk#5\u00261ec51bf7\u00260\u0026000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", @@ -23,8 +21,8 @@ "function": "0", "pci_slot": "160" }, - "manufacturer": "VMware ", - "model": "Virtual disk ", + "manufacturer": "VMware", + "model": "Virtual disk", "name": "VMware Virtual disk", "number": "0", "number_of_partitions": "3", @@ -42,7 +40,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:24.421648324Z", + "ingested": "2023-10-05T13:48:09.028702894Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index 8db5d7fa333..3d924cbe5e0 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -15,20 +15,13 @@ processors: - set: field: event.kind value: state - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json index dfffaac7c28..233194ba2e9 100644 --- a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json @@ -4,7 +4,9 @@ "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "script.type": "powershell", "host.os.build": "19045", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "script.version": "2.3.141.0", "host.hostname": "BOTANYBAYEP1", "host.hardware.manufacturer": "VMware, Inc.", @@ -26,7 +28,9 @@ "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "device.class": "System", "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "device.friendly_name": "Motherboard resources", "host.oem.model": "", "host.uptime": "560978.5582333", diff --git a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json index 6eeb5394629..370b07e2e04 100644 --- a/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json +++ b/packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:24.604662201Z", + "@timestamp": "2023-10-05T13:48:09.300032381Z", "device": { "class": "System", "description": "Motherboard resources", @@ -19,7 +19,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:24.604662201Z", + "ingested": "2023-10-05T13:48:09.300032381Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index 07adaabe93f..1bf708d2ab3 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -21,20 +21,13 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json index 14f5c2d6271..ac2c4bebf8a 100644 --- a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json @@ -63,11 +63,15 @@ "tychon.definition.stig": "2023-08-16T17:18:48Z", "event.deviceguard.basevirtualizationsupport.available": "false", "host.cpu.count": "2", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "event.deviceguard.systemguardsecurelaunch.enabled": "false", "host.security.antivirus.state": "On", "script.name": "Get-TychonHostInfo.ps1", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "event.deviceguard.credentialguard.enabled": "false", "host.os.description": "", "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", diff --git a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json index 75aeb57a048..89a8737df6c 100644 --- a/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json +++ b/packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:24.781576644Z", + "@timestamp": "2023-10-05T13:48:09.537119084Z", "ecs": { "version": "8.8.0" }, @@ -48,7 +48,7 @@ "status": "Off" } }, - "ingested": "2023-09-25T21:55:24.781576644Z", + "ingested": "2023-10-05T13:48:09.537119084Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index b26a6b0b418..46f52b94213 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -18,20 +18,13 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json index 0d6f1310a3c..807e43f4aa6 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json @@ -29,7 +29,9 @@ "host.cloud.hosted": "false", "host.hardware.owner": "admin", "script.version": "2.3.141.0", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "host.adapter.wifi.channel": "", "host.adapter.driver.name": "Driver Date 2018-06-12 Version 12.17.10.8 NDIS 6.50", "host.ipv6": "", @@ -59,7 +61,9 @@ "host.adapter.description": "Intel(R) 82574L Gigabit Network Connection", "script.start": "2023-09-25T20:03:46Z", "host.adapter.driver.date": "2018-06-12", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "host.adapter.alias": "Ethernet0", "host.adapter.mac": "00-0C-29-93-6A-F3", "host.adapter.media.type": "802.3", diff --git a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json index 706baa91834..8cc0a71fc85 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json +++ b/packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:25.005723813Z", + "@timestamp": "2023-10-05T13:48:09.779537418Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:25.005723813Z", + "ingested": "2023-10-05T13:48:09.779537418Z", "kind": "state", "module": "tychon", "type": [ @@ -38,7 +38,7 @@ "ip_filter": { "enabled": "false" }, - "link_speed": 1, + "link_speed": 0, "mac": "00-0C-29-93-6A-F3", "media": { "connection_state": "Connected", @@ -63,8 +63,7 @@ "radio_type": "", "signal_percent": "", "ssid": "" - }, - "wins_server": "" + } }, "biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", "cloud": { diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 88e928c63c3..08db5fe566c 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -14,44 +14,61 @@ processors: value: 8.8.0 - set: field: event.kind - value: state + value: state + - remove: + field: host.adapter.ip + if: ctx.host.adapter.ip == '' + - remove: + field: host.adapter.gateway + if: ctx.host.adapter.gateway == '' + - remove: + field: host.adapter.dhcp.server + if: ctx.host.adapter.dhcp.server == '' + - remove: + field: host.adapter.dhcp.lease_obtained + if: ctx.host.adapter.dhcp.lease_obtained == '' + - remove: + field: host.adapter.dhcp.lease_expires + if: ctx.host.adapter.dhcp.lease_expires == '' + - remove: + field: host.adapter.driver.date + if: ctx.host.adapter.driver.date == '' + - remove: + field: host.adapter.wins_server + if: ctx.host.adapter.wins_server == '' - set: field: link_speed value: "{{host.adapter.link_speed}}" - set: field: host.adapter.link_speed - value: 1 + value: 0 - script: - source: | + source: + | if(ctx['link_speed'].contains(' ')){ - String[] link_Speed=ctx['link_speed'].splitOnToken(' '); + String[] linkSpeed=ctx['link_speed'].splitOnToken(' '); ctx.remove('link_speed'); - ctx['host.adapter.link_speed']=Long.parseLong(link_Speed[0]); - if(link_Speed[1]=='Kbps'){ + ctx['host.adapter.link_speed']=Long.parseLong(linkSpeed[0]); + if(linkSpeed[1]=='Kbps'){ ctx['host.adapter.link_speed']*=1024 } - if(link_Speed[1]=='Mbps'){ + if(linkSpeed[1]=='Mbps'){ ctx['host.adapter.link_speed']*=1048576 } - if(link_Speed[1]=='Gbps'){ + if(linkSpeed[1]=='Gbps'){ ctx['host.adapter.link_speed']*=1073741824 } + } else { + ctx.remove('link_speed'); } ignore_failure: true - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: @@ -84,27 +101,6 @@ processors: - set: field: event.type value: [info] - - remove: - field: host.adapter.ip - if: ctx.host.adapter.ip == '' - - remove: - field: host.adapter.wins_server - if: ctx.host.adapter.wins_server == '' - - remove: - field: host.adapter.gateway - if: ctx.host.adapter.gateway == '' - - remove: - field: host.adapter.dhcp.server - if: ctx.host.adapter.dhcp.server == '' - - remove: - field: host.adapter.dhcp.lease_obtained - if: ctx.host.adapter.dhcp.lease_obtained == '' - - remove: - field: host.adapter.dhcp.lease_expires - if: ctx.host.adapter.dhcp.lease_expires == '' - - remove: - field: host.adapter.driver.date - if: ctx.host.adapter.driver.date == '' - convert: field: script.current_duration type: float diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml index d12f09a5243..1d92ebc5600 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -9,13 +9,13 @@ description: The Alias given to this adapter - name: description type: text - description: The network adatper description + description: The network adapter description - name: dhcp type: group fields: - name: enabled type: boolean - description: Is DHCP Enabled on this adatper + description: Is DHCP Enabled on this adapter - name: lease_expires type: date description: When does this DHCP lease expire @@ -27,7 +27,7 @@ description: What IP Address was the DHCP IP obtained from. - name: domain type: text - description: What domain was assigned to this adatper + description: What domain was assigned to this adapter - name: driver type: group fields: @@ -57,7 +57,7 @@ description: ID Of the adapter - name: ip type: ip - description: IP Addresses assigned to the adatper + description: IP Addresses assigned to the adapter - name: ip_filter type: group fields: @@ -66,10 +66,10 @@ description: Is IP Filtering Enabled - name: wins_server type: ip - description: The WINS Server attached to this adatper + description: The WINS Server attached to this adapter - name: link_speed type: long - description: Link speed of the adatper + description: Link speed of the adapter - name: mac type: keyword description: Hardware MAC Address diff --git a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json index 4e291b54af3..7ea90e1af0f 100644 --- a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:25.184645812Z", + "@timestamp": "2023-10-05T13:48:10.040484755Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "vulnerability" ], - "ingested": "2023-09-25T21:55:25.184645812Z", + "ingested": "2023-10-05T13:48:10.040484755Z", "kind": "state", "module": "tychon", "outcome": "failure", diff --git a/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml index 3d6d422c24b..bfc8a8fcc9d 100644 --- a/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml @@ -32,14 +32,15 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json index b17da9fa4a8..9c880f7f052 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json @@ -6,7 +6,9 @@ "script.current_time": "2023-09-25T04:03:27Z", "package.size": "", "host.os.build": "19045", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "host.hostname": "BOTANYBAYEP1", "host.hardware.manufacturer": "VMware, Inc.", "script.start": "2023-09-25T04:03:20Z", @@ -30,7 +32,9 @@ "package.name": "McAfee Agent", "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "package.version_major": "5", "host.oem.model": "", "host.uptime": "560963.1794915", diff --git a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json index a3ce044132b..7bdb937e8d6 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json +++ b/packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:25.376048106Z", + "@timestamp": "2023-10-05T13:48:10.296137904Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "package" ], - "ingested": "2023-09-25T21:55:25.376048106Z", + "ingested": "2023-10-05T13:48:10.296137904Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index c5d2be26924..26cbade110e 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -20,20 +20,13 @@ processors: field: package.installed value: "1970-01-01T00:00:01Z" if: ctx.package.installed == '' - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index 67fd3531118..c2f5503e944 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:25.564944350Z", + "@timestamp": "2023-10-05T13:48:10.602964719Z", "benchmark": { "generated_utc": "1664376309000", "hash": "858A198F20EB96D46BE795A24F17C19D25CEF91AA919E8D19A13A4E6AA65D667", @@ -18,7 +18,7 @@ "vulnerability", "configuration" ], - "ingested": "2023-09-25T21:55:25.564944350Z", + "ingested": "2023-10-05T13:48:10.602964719Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 03b88ca4302..2bf85b3687b 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -19,14 +19,15 @@ processors: - set: field: ecs.version value: '8.8.0' - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true - convert: field: host.uptime type: string diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index 9b66266c59e..a5fed1a0465 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -4,9 +4,6 @@ - name: id description: Benchmark ID. type: keyword - - name: guid - description: Benchmark GUID. - type: keyword - name: generated_utc description: Benchmark UTC. type: date @@ -67,8 +64,8 @@ - name: benchmark type: group fields: - - name: guid - description: Benchmark Rule GUID. + - name: id + description: Benchmark Rule ID. type: keyword - name: profile.id description: Benchmark Rule Profile Identifier. diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json index bcd83cbbc9b..8af415927e9 100644 --- a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json @@ -7,7 +7,9 @@ "volume.size": "52424704", "script.type": "powershell", "host.os.build": "19045", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "host.hostname": "BOTANYBAYEP1", "host.hardware.manufacturer": "VMware, Inc.", "script.start": "2023-09-25T21:04:42Z", @@ -30,7 +32,9 @@ "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "volume.dirty_bit_set": "false", "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "volume.id": "\\\\?\\Volume{2d47d57f-0000-0000-0000-100000000000}\\", "volume.automount": "true", "host.oem.model": "", diff --git a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json index 7a0f32749d9..71ec1f6fdd6 100644 --- a/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json +++ b/packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json @@ -1,7 +1,7 @@ { "expected": [ { - "@timestamp": "2023-09-25T21:55:25.744268763Z", + "@timestamp": "2023-10-05T13:48:10.874308564Z", "ecs": { "version": "8.8.0" }, @@ -9,7 +9,7 @@ "category": [ "configuration" ], - "ingested": "2023-09-25T21:55:25.744268763Z", + "ingested": "2023-10-05T13:48:10.874308564Z", "kind": "state", "module": "tychon", "type": [ diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index cf42e4afd48..2a7a68d5816 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -18,20 +18,13 @@ processors: - set: field: event.module value: tychon - - split: - field: host.ip - separator: "," - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - gsub: field: host.mac pattern: ":" replacement: "-" + ignore_missing: true - split: - field: host.mac + field: host.ipv4 separator: "," ignore_missing: true - convert: diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 87e81503ecc..4c9cd4c1ad1 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -807,12 +807,12 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | | host.adapter.alias | The Alias given to this adapter | keyword | -| host.adapter.description | The network adatper description | text | -| host.adapter.dhcp.enabled | Is DHCP Enabled on this adatper | boolean | +| host.adapter.description | The network adapter description | text | +| host.adapter.dhcp.enabled | Is DHCP Enabled on this adapter | boolean | | host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | | host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | | host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | -| host.adapter.domain | What domain was assigned to this adatper | text | +| host.adapter.domain | What domain was assigned to this adapter | text | | host.adapter.driver.date | Date the driver was installed | date | | host.adapter.driver.description | Description of the driver | text | | host.adapter.driver.file_name | Driver File name | keyword | @@ -821,9 +821,9 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.driver.version | Version of the driver | keyword | | host.adapter.gateway | Gateway IP Address | ip | | host.adapter.id | ID Of the adapter | keyword | -| host.adapter.ip | IP Addresses assigned to the adatper | ip | +| host.adapter.ip | IP Addresses assigned to the adapter | ip | | host.adapter.ip_filter.enabled | Is IP Filtering Enabled | boolean | -| host.adapter.link_speed | Link speed of the adatper | long | +| host.adapter.link_speed | Link speed of the adapter | long | | host.adapter.mac | Hardware MAC Address | keyword | | host.adapter.media.connection_state | Current Connection State | keyword | | host.adapter.media.type | Current Connection Media Type | keyword | @@ -841,7 +841,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | | host.adapter.wifi.signal_percent | Signal strenth to connected WIFI Router | integer | | host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | -| host.adapter.wins_server | The WINS Server attached to this adatper | ip | +| host.adapter.wins_server | The WINS Server attached to this adapter | ip | | host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | @@ -988,7 +988,6 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | agent.version | Version of the agent. | keyword | | benchmark.count | Benchmark Summary Name List Item Count. | long | | benchmark.generated_utc | Benchmark UTC. | date | -| benchmark.guid | Benchmark GUID. | keyword | | benchmark.hash | Benchmark SHA256 Hash | keyword | | benchmark.id | Benchmark ID. | keyword | | benchmark.list | Benchmark Summary Name List. | keyword | @@ -1043,7 +1042,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | package.name | Package name | keyword | | package.reference | Home page or reference URL of the software in this package, if available. | keyword | | package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| rule.benchmark.guid | Benchmark Rule GUID. | keyword | +| rule.benchmark.id | Benchmark Rule ID. | keyword | | rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | | rule.benchmark.title | Benchmark Rule Title. | keyword | | rule.finding_id | Benchmark Rule Finding Identifier. | keyword | diff --git a/packages/tychon/elasticIntegration/esLogs.sh b/packages/tychon/elasticIntegration/esLogs.sh new file mode 100644 index 00000000000..2ded31d0567 --- /dev/null +++ b/packages/tychon/elasticIntegration/esLogs.sh @@ -0,0 +1 @@ +journalctl -u elasticsearch -f diff --git a/packages/tychon/elasticIntegration/installPkg.sh b/packages/tychon/elasticIntegration/installPkg.sh new file mode 100644 index 00000000000..0bc9215632b --- /dev/null +++ b/packages/tychon/elasticIntegration/installPkg.sh @@ -0,0 +1,18 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +elastic-package uninstall +elastic-package clean +if elastic-package check ;then + while read line; do + if [[ $line == "version:"* ]]; then + set -- $line + version=$2 + fi + done < manifest.yml + docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml down + cp /root/elasticIntegration/build/packages/tychon-$version.zip /root/.elastic-package/stack/development/ + docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml build + docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d + elastic-package install +fi diff --git a/packages/tychon/elasticIntegration/kibanLogs.sh b/packages/tychon/elasticIntegration/kibanLogs.sh new file mode 100644 index 00000000000..71fc089df4d --- /dev/null +++ b/packages/tychon/elasticIntegration/kibanLogs.sh @@ -0,0 +1 @@ +journalctl -u kibana -f diff --git a/packages/tychon/elasticIntegration/startDocker.sh b/packages/tychon/elasticIntegration/startDocker.sh new file mode 100644 index 00000000000..3c4b5bae86b --- /dev/null +++ b/packages/tychon/elasticIntegration/startDocker.sh @@ -0,0 +1,14 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_es.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_kb.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_fl.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_ag.yml up -d & +wait $! +docker container ls diff --git a/packages/tychon/elasticIntegration/startElastic.sh b/packages/tychon/elasticIntegration/startElastic.sh new file mode 100644 index 00000000000..e911e8f5ef7 --- /dev/null +++ b/packages/tychon/elasticIntegration/startElastic.sh @@ -0,0 +1,10 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_es.yml up -d & +wait $! +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_kb.yml up -d & +wait $! +docker container ls diff --git a/packages/tychon/elasticIntegration/startFleet.sh b/packages/tychon/elasticIntegration/startFleet.sh new file mode 100644 index 00000000000..4aab2465530 --- /dev/null +++ b/packages/tychon/elasticIntegration/startFleet.sh @@ -0,0 +1,8 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_fl.yml up -d & +sleep 20 +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_ag.yml up -d & +wait $! +docker container ls diff --git a/packages/tychon/elasticIntegration/startRegistry.sh b/packages/tychon/elasticIntegration/startRegistry.sh new file mode 100644 index 00000000000..f84289005e8 --- /dev/null +++ b/packages/tychon/elasticIntegration/startRegistry.sh @@ -0,0 +1,6 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml -p elastic-package-stack up -d & +wait $! +docker container ls diff --git a/packages/tychon/elasticIntegration/stopDocker.sh b/packages/tychon/elasticIntegration/stopDocker.sh new file mode 100644 index 00000000000..67c93bcd9ef --- /dev/null +++ b/packages/tychon/elasticIntegration/stopDocker.sh @@ -0,0 +1,6 @@ +#!/bin/sh +$(elastic-package stack shellinit) +cd ./tychon +docker ps -aq | xargs docker stop | xargs docker rm +wait $! +docker container ls diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index e6371aadc56..9acd3ebbc48 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.54 +version: 0.0.55 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 896e08aa1e0b65666fe39f7967a4e91f14124360 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Fri, 6 Oct 2023 11:29:57 -0400 Subject: [PATCH 59/65] Added Failsafe processors to volume ingest pipeline --- packages/tychon/changelog.yml | 2 +- .../_dev/test/pipeline/test-harddrive.json | 134 +++++++++--------- .../pipeline/test-harddrive.json-config.yml | 1 - .../elasticsearch/ingest_pipeline/default.yml | 16 +++ packages/tychon/elasticIntegration/esLogs.sh | 1 - .../tychon/elasticIntegration/installPkg.sh | 18 --- .../tychon/elasticIntegration/kibanLogs.sh | 1 - .../tychon/elasticIntegration/startDocker.sh | 14 -- .../tychon/elasticIntegration/startElastic.sh | 10 -- .../tychon/elasticIntegration/startFleet.sh | 8 -- .../elasticIntegration/startRegistry.sh | 6 - .../tychon/elasticIntegration/stopDocker.sh | 6 - .../transform/volume/transform.yml | 7 +- ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 2 +- packages/tychon/manifest.yml | 2 +- 15 files changed, 92 insertions(+), 136 deletions(-) delete mode 100644 packages/tychon/elasticIntegration/esLogs.sh delete mode 100644 packages/tychon/elasticIntegration/installPkg.sh delete mode 100644 packages/tychon/elasticIntegration/kibanLogs.sh delete mode 100644 packages/tychon/elasticIntegration/startDocker.sh delete mode 100644 packages/tychon/elasticIntegration/startElastic.sh delete mode 100644 packages/tychon/elasticIntegration/startFleet.sh delete mode 100644 packages/tychon/elasticIntegration/startRegistry.sh delete mode 100644 packages/tychon/elasticIntegration/stopDocker.sh diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 581aabf21dd..9c7d3d826ff 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.55 +- version: 0.0.57 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json index 6e32362133a..c7ad1f82216 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json @@ -1,69 +1,69 @@ { - "events": [ - { - "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.os.name": "Microsoft Windows 10 Pro", - "disk.location.device": "0", - "disk.partition_style": "MBR", - "host.hardware.manufacturer": "VMware, Inc.", - "disk.serial_number": "", - "host.os.build": "19045", - "host.ip": [ - "10.1.9.51" - ], - "disk.boot_from": "true", - "host.hostname": "BOTANYBAYEP1", - "disk.adapter.serial_number": "", - "disk.location.adapter": "0", - "disk.system": "true", - "script.start": "2023-09-25T19:03:48Z", - "disk.size": "42949672960", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", - "host.os.organization": "", - "host.hardware.owner": "admin", - "disk.name": "VMware Virtual disk", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", - "host.ipv4": "10.1.9.51", - "host.oem.model": "", - "disk.is_boot": "true", - "host.hardware.bios.name": "Phoenix Technologies LTD", - "host.type": "Workstation", - "disk.model": "Virtual disk", - "disk.health_status": "Healthy", - "disk.number": "0", - "script.current_duration": "13711.00", - "disk.offline": "false", - "disk.location.bus": "3", - "disk.location.pci_slot": "160", - "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": [ - "00:0C:29:93:6A:F3" - ], - "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "host.uptime": "614991.6714276", - "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", - "disk.location.function": "0", - "script.current_time": "2023-09-25T19:04:02Z", - "disk.bus_type": "SAS", - "disk.firmware_version": "2.0", - "disk.manufacturer": "VMware", - "disk.clustered": "false", - "script.name": "Get-TychonHardDriveInfo.ps1", - "script.version": "2.3.141.0", - "host.oem.manufacturer": "", - "host.os.description": "", - "host.os.version": "2009", - "disk.operational_status": "Online", - "disk.number_of_partitions": "3", - "host.ipv6": "", - "host.hardware.bios.version": "6.00", - "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec51bf7&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", - "disk.highly_available": "false", - "script.type": "powershell", - "host.domain": "", - "host.cloud.hosted": "false", - "host.os.family": "Windows" - } - ] + "events": [ + { + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.name": "Microsoft Windows 10 Pro", + "disk.location.device": "0", + "disk.partition_style": "MBR", + "host.hardware.manufacturer": "VMware, Inc.", + "disk.serial_number": "", + "host.os.build": "19045", + "host.ip": [ + "10.1.9.51" + ], + "disk.boot_from": "true", + "host.hostname": "BOTANYBAYEP1", + "disk.adapter.serial_number": "", + "disk.location.adapter": "0", + "disk.system": "true", + "script.start": "2023-09-25T19:03:48Z", + "disk.size": "42949672960", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "host.os.organization": "", + "host.hardware.owner": "admin", + "disk.name": "VMware Virtual disk", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.oem.model": "", + "disk.is_boot": "true", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "disk.model": "Virtual disk", + "disk.health_status": "Healthy", + "disk.number": "0", + "script.current_duration": "13711.00", + "disk.offline": "false", + "disk.location.bus": "3", + "disk.location.pci_slot": "160", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.uptime": "614991.6714276", + "id": "ec85d3b7de5e9d8717b7799a134bd829beada75c", + "disk.location.function": "0", + "script.current_time": "2023-09-25T19:04:02Z", + "disk.bus_type": "SAS", + "disk.firmware_version": "2.0", + "disk.manufacturer": "VMware", + "disk.clustered": "false", + "script.name": "Get-TychonHardDriveInfo.ps1", + "script.version": "2.3.141.0", + "host.oem.manufacturer": "", + "host.os.description": "", + "host.os.version": "2009", + "disk.operational_status": "Online", + "disk.number_of_partitions": "3", + "host.ipv6": "", + "host.hardware.bios.version": "6.00", + "disk.id": "{1}\\\\BOTANYBAYEP1\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{c3aa4c8f-3a0e-11ed-91c8-806e6f6e6963}:DI:\\\\?\\scsi#disk\u0026ven_vmware\u0026prod_virtual_disk#5\u00261ec51bf7\u00260\u0026000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", + "disk.highly_available": "false", + "script.type": "powershell", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" + } + ] } \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml index bec4f152d4a..302199c74f9 100644 --- a/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml +++ b/packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml @@ -1,4 +1,3 @@ dynamic_fields: "@timestamp": ".*" event.ingested: ".*" - \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index 2a7a68d5816..6a281c93c67 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -44,6 +44,22 @@ processors: field: tempuptime ignore_failure: true ignore_missing: true + - set: + field: volume.block_size + value: 0 + if: ctx.volume.block_size == '' + - set: + field: volume.freespace + value: 0 + if: ctx.volume.freespace == '' + - set: + field: volume.percent_full + value: 100 + if: ctx.volume.percent_full == '' || ctx.volume.percent_full == 'NaN' + - set: + field: volume.size + value: 0 + if: ctx.volume.size == '' - convert: field: volume.block_size type: long diff --git a/packages/tychon/elasticIntegration/esLogs.sh b/packages/tychon/elasticIntegration/esLogs.sh deleted file mode 100644 index 2ded31d0567..00000000000 --- a/packages/tychon/elasticIntegration/esLogs.sh +++ /dev/null @@ -1 +0,0 @@ -journalctl -u elasticsearch -f diff --git a/packages/tychon/elasticIntegration/installPkg.sh b/packages/tychon/elasticIntegration/installPkg.sh deleted file mode 100644 index 0bc9215632b..00000000000 --- a/packages/tychon/elasticIntegration/installPkg.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -elastic-package uninstall -elastic-package clean -if elastic-package check ;then - while read line; do - if [[ $line == "version:"* ]]; then - set -- $line - version=$2 - fi - done < manifest.yml - docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml down - cp /root/elasticIntegration/build/packages/tychon-$version.zip /root/.elastic-package/stack/development/ - docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml build - docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d - elastic-package install -fi diff --git a/packages/tychon/elasticIntegration/kibanLogs.sh b/packages/tychon/elasticIntegration/kibanLogs.sh deleted file mode 100644 index 71fc089df4d..00000000000 --- a/packages/tychon/elasticIntegration/kibanLogs.sh +++ /dev/null @@ -1 +0,0 @@ -journalctl -u kibana -f diff --git a/packages/tychon/elasticIntegration/startDocker.sh b/packages/tychon/elasticIntegration/startDocker.sh deleted file mode 100644 index 3c4b5bae86b..00000000000 --- a/packages/tychon/elasticIntegration/startDocker.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_es.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_kb.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_fl.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_ag.yml up -d & -wait $! -docker container ls diff --git a/packages/tychon/elasticIntegration/startElastic.sh b/packages/tychon/elasticIntegration/startElastic.sh deleted file mode 100644 index e911e8f5ef7..00000000000 --- a/packages/tychon/elasticIntegration/startElastic.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_es.yml up -d & -wait $! -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_kb.yml up -d & -wait $! -docker container ls diff --git a/packages/tychon/elasticIntegration/startFleet.sh b/packages/tychon/elasticIntegration/startFleet.sh deleted file mode 100644 index 4aab2465530..00000000000 --- a/packages/tychon/elasticIntegration/startFleet.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_fl.yml up -d & -sleep 20 -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_ag.yml up -d & -wait $! -docker container ls diff --git a/packages/tychon/elasticIntegration/startRegistry.sh b/packages/tychon/elasticIntegration/startRegistry.sh deleted file mode 100644 index f84289005e8..00000000000 --- a/packages/tychon/elasticIntegration/startRegistry.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -docker-compose -f /root/.elastic-package/profiles/default/stack/snapshot_reg.yml -p elastic-package-stack up -d & -wait $! -docker container ls diff --git a/packages/tychon/elasticIntegration/stopDocker.sh b/packages/tychon/elasticIntegration/stopDocker.sh deleted file mode 100644 index 67c93bcd9ef..00000000000 --- a/packages/tychon/elasticIntegration/stopDocker.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -$(elastic-package stack shellinit) -cd ./tychon -docker ps -aq | xargs docker stop | xargs docker rm -wait $! -docker container ls diff --git a/packages/tychon/elasticsearch/transform/volume/transform.yml b/packages/tychon/elasticsearch/transform/volume/transform.yml index 4b91e6a6fb8..bb49ae41b36 100644 --- a/packages/tychon/elasticsearch/transform/volume/transform.yml +++ b/packages/tychon/elasticsearch/transform/volume/transform.yml @@ -1,6 +1,11 @@ source: index: - logs-tychon.tychon_volume-* + query: + bool: + must: + - match_phrase: + event.kind: "state" dest: index: tychon_volume frequency: 30m @@ -13,7 +18,7 @@ latest: - id sort: '@timestamp' _meta: - fleet_transform_version: 1.0.3 + fleet_transform_version: 1.0.4 run_as_kibana_system: false managed: true description: This transformation ensures there is a running configuration of what volumes are currently on a device from TYCHON. diff --git a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json index 7c65218eeef..ac948619cd8 100644 --- a/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json +++ b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json @@ -4,7 +4,7 @@ "chainingSystem": "HIERARCHICAL", "controlStyle": "oneLine", "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", - "panelsJSON": "{\"a9a1905e-d884-49b1-9f30-bae69dd0f668\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"id\":\"a9a1905e-d884-49b1-9f30-bae69dd0f668\",\"selectedOptions\":[\"BotanyBayEP1\"],\"existsSelected\":false,\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"enhancements\":{}}}}" + "panelsJSON": "{\"a9a1905e-d884-49b1-9f30-bae69dd0f668\":{\"order\":0,\"width\":\"large\",\"grow\":true,\"type\":\"optionsListControl\",\"explicitInput\":{\"fieldName\":\"host.hostname\",\"title\":\"Hostname\",\"id\":\"a9a1905e-d884-49b1-9f30-bae69dd0f668\",\"existsSelected\":false,\"hideExists\":true,\"hideExclude\":true,\"singleSelect\":true,\"enhancements\":{}}}}" }, "description": "The \"TYCHON Endpoint Browser\" dashboard provides host visualization data for a single endpoint at a time. The dashboard is a set of several individual views broken down by tabs near the top of the screen. The TYCHON Endpoint Browser – Endpoint Protection view displays the status of your AV vendors and virtualization protection mechanisms, whether they are enabled, and if they are up to date.", "kibanaSavedObjectMeta": { diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 9acd3ebbc48..447be463b4c 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.55 +version: 0.0.57 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 1e6d00e92629103123f4867a759b86f53234806d Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Tue, 10 Oct 2023 23:09:53 -0400 Subject: [PATCH 60/65] Added missing fields --- .../data_stream/tychon_cve/fields/fields.yml | 231 ++----------- .../_dev/test/pipeline/test-epp.json | 8 +- .../test/pipeline/test-epp.json-expected.json | 8 +- .../data_stream/tychon_epp/fields/ecs.yml | 64 ++-- .../data_stream/tychon_epp/fields/fields.yml | 279 +++++++-------- .../tychon_exposedservice/fields/ecs.yml | 12 +- .../tychon_exposedservice/fields/fields.yml | 19 +- .../tychon_hardware/fields/ecs.yml | 10 +- .../data_stream/tychon_host/fields/fields.yml | 322 ++++++++---------- .../_dev/test/pipeline/test-patch.json | 8 +- .../pipeline/test-patch.json-expected.json | 8 +- .../data_stream/tychon_patch/fields/ecs.yml | 32 +- .../tychon_patch/fields/fields.yml | 55 ++- .../_dev/test/pipeline/test-stig.json | 8 +- .../pipeline/test-stig.json-expected.json | 8 +- .../data_stream/tychon_stig/fields/ecs.yml | 72 ++-- .../data_stream/tychon_stig/fields/fields.yml | 152 ++++----- 17 files changed, 536 insertions(+), 760 deletions(-) diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index ce1ae96d93c..163677e660e 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -1,207 +1,24 @@ -- name: elastic - type: group - fields: - - name: service - type: group - fields: - - name: agent - type: group - fields: - - name: status - description: Elastic Service Agent Status. - type: keyword - - name: version - description: Elastic Service Agent Version. - type: version - - name: endpoint - type: group - fields: - - name: behavior_protection - description: Elastic Service Endpoint Behavior Protection. - type: keyword - - name: malware - description: Elastic Service Endpoint Malware. - type: keyword - - name: memory_protection - description: Elastic Service Endpoint Memory Protection. - type: keyword - - name: status - description: Elastic Service Endpoint Status. - type: keyword - - name: version - description: Elastic Service Endpoint Version. - type: version -- name: trellix - type: group - fields: - - name: service - type: group - fields: - - name: accm - type: group - fields: - - name: status - description: Trellix Service Accm Status. - type: keyword - - name: version - description: Trellix Service Accm Version. - type: version - - name: dlp - type: group - fields: - - name: status - description: Trellix Service Dlp Status. - type: keyword - - name: version - description: Trellix Service Dlp Version. - type: version - - name: ens - type: group - fields: - - name: signature_version - description: Trellix Service Ens Signature Version. - type: keyword - - name: status - description: Trellix Service Ens Status. - type: keyword - - name: version - description: Trellix Service Ens Version. - type: version - - name: ma - type: group - fields: - - name: status - description: Trellix Service Ma Status. - type: keyword - - name: version - description: Trellix Service Ma Version. - type: version - - name: pa - type: group - fields: - - name: status - description: Trellix Service Pa Status. - type: keyword - - name: version - description: Trellix Service Pa Version. - type: version - - name: rsd - type: group - fields: - - name: status - description: Trellix Service Rsd Status. - type: keyword - - name: version - description: Trellix Service Rsd Version. - type: version -- name: vulnerability - type: group - fields: - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason. - type: keyword - - name: iava - description: Vulnerability Iava. - type: keyword - - name: iava_severity - description: Vulnerability Iava Severity. - type: keyword - - name: result - description: Vulnerability Result. - type: keyword - - name: title - description: Vulnerability Title. - type: keyword - - name: version - description: Vulnerability Version. - type: keyword - - name: year - description: Vulnerability Year. - type: integer -- name: windows_defender - type: group - fields: - - name: service - type: group - fields: - - name: antimalware - type: group - fields: - - name: engine_version - description: Windows Defender Service Antimalware Engine Version. - type: keyword - - name: product_version - description: Windows Defender Service Antimalware Product Version. - type: keyword - - name: signature_version - description: Windows Defender Service Antimalware Signature Version. - type: keyword - - name: status - description: Windows Defender Service Antimalware Status. - type: keyword - - name: antispyware - type: group - fields: - - name: signature_version - description: Windows Defender Service Antispyware Signature Version. - type: keyword - - name: status - description: Windows Defender Service Antispyware Status. - type: keyword - - name: full_scan - type: group - fields: - - name: signature_version - description: Windows Defender Service Antivirus Full Scan Signature Version. - type: keyword - - name: quick_scan - type: group - fields: - - name: signature_version - description: Windows Defender Service Antivirus Quick Scan Signature Version. - type: keyword - - name: antivirus - type: group - fields: - - name: status - description: Windows Defender Service Antivirus Status. - type: keyword - - name: behavior_monitor - type: group - fields: - - name: status - description: Windows Defender Service Behavior Monitor Status. - type: keyword - - name: ioav_protection - type: group - fields: - - name: status - description: Windows Defender Service Ioav Protection Status. - type: keyword - - name: nis - type: group - fields: - - name: engine_version - description: Windows Defender Service Nis Engine Version. - type: keyword - - name: signature_version - description: Windows Defender Service Nis Signature Version. - type: keyword - - name: status - description: Windows Defender Service Nis Status. - type: keyword - - name: on_access_protection - type: group - fields: - - name: status - description: Windows Defender Service On Access Protection Status. - type: keyword - - name: real_time_protection - type: group - fields: - - name: status - description: Windows Defender Service Real Time Protection Status. - type: keyword +- name: vulnerability.due_date + description: Vulnerability Due Date. + type: date +- name: vulnerability.due_date_reason + description: Vulnerability Due Date Reason. + type: keyword +- name: vulnerability.iava + description: Vulnerability Iava. + type: keyword +- name: vulnerability.iava_severity + description: Vulnerability Iava Severity. + type: keyword +- name: vulnerability.result + description: Vulnerability Result. + type: keyword +- name: vulnerability.title + description: Vulnerability Title. + type: keyword +- name: vulnerability.version + description: Vulnerability Version. + type: keyword +- name: vulnerability.year + description: Vulnerability Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json index 76b6054613a..805336ce309 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json @@ -31,7 +31,9 @@ "host.hardware.owner": "admin", "elastic.service.endpoint.memory_protection": "detect", "script.version": "2.3.141.0", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "windows_defender.service.antispyware.status": "Enabled", "host.ipv6": "", "windows_defender.service.antivirus.full_scan.signature_version": "", @@ -61,7 +63,9 @@ "trellix.service.rsd.version": "", "elastic.service.endpoint.status": "", "windows_defender.service.nis.status": "Disabled", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "trellix.service.pa.status": "", "windows_defender.service.real_time_protection.status": "Disabled", "script.name": "Get-TychonEppSetting.ps1", diff --git a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json index 774a059e775..99408e92aab 100644 --- a/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json +++ b/packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json @@ -51,12 +51,16 @@ }, "hostname": "BOTANYBAYEP1", "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "ip": "10.1.9.51", + "ip": [ + "10.1.9.51" + ], "ipv4": [ "10.1.9.51" ], "ipv6": "", - "mac": "00-0C-29-93-6A-F3", + "mac": [ + "00-0C-29-93-6A-F3" + ], "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml index a843688df01..03c803d3515 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/ecs.yml @@ -1,62 +1,80 @@ - external: ecs name: '@timestamp' - external: ecs - name: package.description + name: agent.ephemeral_id - external: ecs - name: package.name + name: agent.id - external: ecs - name: package.reference + name: agent.name - external: ecs - name: package.type + name: agent.type - external: ecs - name: package.build_version + name: agent.version - external: ecs name: data_stream.dataset - external: ecs name: data_stream.namespace - external: ecs name: data_stream.type -- external: ecs - name: event.kind - external: ecs name: ecs.version +- external: ecs + name: error.message +- external: ecs + name: event.agent_id_status - external: ecs name: event.category - external: ecs name: event.created - external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id + name: event.dataset - external: ecs name: event.ingested - external: ecs - name: agent.name + name: event.kind - external: ecs - name: agent.type + name: event.timezone - external: ecs - name: agent.version + name: host.architecture - external: ecs - name: event.agent_id_status + name: host.domain - external: ecs - name: event.dataset + name: host.hostname - external: ecs - name: event.timezone + name: host.id - external: ecs - name: error.message + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform - external: ecs name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime - external: ecs name: log.file.path - external: ecs - name: tags + name: package.build_version - external: ecs - name: host.architecture + name: package.description - external: ecs - name: host.name + name: package.name - external: ecs - name: host.uptime + name: package.reference - external: ecs - name: host.os.kernel + name: package.type - external: ecs - name: host.os.platform + name: tags diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index caa85348b86..21e448a9db3 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -1,163 +1,116 @@ -- name: windows_defender - group: 2 - type: group - fields: - - name: service - type: group - fields: - - name: behavior_monitor.status - description: Windows Defender Behavior Monitor Status. - type: keyword - - name: ioav_protection.status - description: Windows Defender iOffice Antivirus Protection Status. - type: keyword - - name: on_access_protection.status - description: Windows Defender On Access Protection Status. - type: keyword - - name: real_time_protection.status - description: Windows Defender Real-time Procection Status. - type: keyword - - name: antimalware - type: group - fields: - - name: engine_version - description: Windows Defender Antimalware Engine Version. - type: keyword - - name: product_version - description: Windows Defender Antimalware Product Version. - type: keyword - - name: signature_version - description: Windows Defender Antimalware Signature Version. - type: keyword - - name: status - description: Windows Defender Antimalware Status. - type: keyword - - name: antispyware - type: group - fields: - - name: signature_version - description: Windows Defender Antispyware Signature Version. - type: keyword - - name: status - description: Windows Defender Antispyware Status. - type: keyword - - name: antivirus - type: group - fields: - - name: full_scan.signature_version - description: Windows Defender Antivirus Full Scan Version. - type: keyword - - name: quick_scan.signature_version - description: Windows Defender Antivirus Signature Version. - type: keyword - - name: status - description: Windows Defender Antivirus Status. - type: keyword - - name: nis - type: group - fields: - - name: engine_version - description: Windows Defender Network Inspection System Engine Version. - type: keyword - - name: signature_version - description: Windows Defender Network Inspection System Signature Version. - type: keyword - - name: status - description: Windows Defender Network Inspection System Status. - type: keyword -- name: elastic - type: group - fields: - - name: service - type: group - fields: - - name: agent - type: group - fields: - - name: status - description: Elastic Service Agent Status. - type: keyword - - name: version - description: Elastic Service Agent Version. - type: version - - name: endpoint - type: group - fields: - - name: behavior_protection - description: Elastic Service Endpoint Behavior Protection. - type: keyword - - name: malware - description: Elastic Service Endpoint Malware. - type: keyword - - name: memory_protection - description: Elastic Service Endpoint Memory Protection. - type: keyword - - name: status - description: Elastic Service Endpoint Status. - type: keyword - - name: version - description: Elastic Service Endpoint Version. - type: version -- name: trellix - type: group - fields: - - name: service - type: group - fields: - - name: accm - type: group - fields: - - name: status - description: Trellix Service Accum Status. - type: keyword - - name: version - description: Trellix Service Accum Version. - type: version - - name: dlp - type: group - fields: - - name: status - description: Trellix Service DLP Status. - type: keyword - - name: version - description: Trellix Service DLP Version. - type: version - - name: ens - type: group - fields: - - name: signature_version - description: Trellix Service ENS Signature Version. - type: keyword - - name: status - description: Trellix Service ENS Signature status. - type: keyword - - name: version - description: Trellix Service ENS Signature Version. - type: version - - name: ma - type: group - fields: - - name: status - description: Trellix Service MA Status. - type: keyword - - name: version - description: Trellix Service MA Version. - type: version - - name: pa - type: group - fields: - - name: status - description: Trellix Service PA Status. - type: keyword - - name: version - description: Trellix Service PA Version. - type: version - - name: rsd - type: group - fields: - - name: status - description: Trellix Service RSD Status. - type: keyword - - name: version - description: Trellix Service RSD Version. - type: version +- name: windows_defender.service.behavior_monitor.status + description: Windows Defender Behavior Monitor Status. + type: keyword +- name: windows_defender.service.ioav_protection.status + description: Windows Defender iOffice Antivirus Protection Status. + type: keyword +- name: windows_defender.service.on_access_protection.status + description: Windows Defender On Access Protection Status. + type: keyword +- name: windows_defender.service.real_time_protection.status + description: Windows Defender Real-time Procection Status. + type: keyword +- name: windows_defender.service.antimalware.engine_version + description: Windows Defender Antimalware Engine Version. + type: keyword +- name: windows_defender.service.antimalware.product_version + description: Windows Defender Antimalware Product Version. + type: keyword +- name: windows_defender.service.antimalware.signature_version + description: Windows Defender Antimalware Signature Version. + type: keyword +- name: windows_defender.service.antimalware.status + description: Windows Defender Antimalware Status. + type: keyword +- name: windows_defender.service.antispyware.signature_version + description: Windows Defender Antispyware Signature Version. + type: keyword +- name: windows_defender.service.antispyware.status + description: Windows Defender Antispyware Status. + type: keyword +- name: windows_defender.service.antivirus.full_scan.signature_version + description: Windows Defender Antivirus Full Scan Version. + type: keyword +- name: windows_defender.service.antivirus.quick_scan.signature_version + description: Windows Defender Antivirus Signature Version. + type: keyword +- name: windows_defender.service.antivirus.status + description: Windows Defender Antivirus Status. + type: keyword +- name: windows_defender.service.nis.engine_version + description: Windows Defender Network Inspection System Engine Version. + type: keyword +- name: windows_defender.service.nis.signature_version + description: Windows Defender Network Inspection System Signature Version. + type: keyword +- name: windows_defender.service.nis.status + description: Windows Defender Network Inspection System Status. + type: keyword +- name: elastic.service.agent.status + description: Elastic Service Agent Status. + type: keyword +- name: elastic.service.agent.version + description: Elastic Service Agent Version. + type: version +- name: elastic.service.endpoint.behavior_protection + description: Elastic Service Endpoint Behavior Protection. + type: keyword +- name: elastic.service.endpoint.malware + description: Elastic Service Endpoint Malware. + type: keyword +- name: elastic.service.endpoint.memory_protection + description: Elastic Service Endpoint Memory Protection. + type: keyword +- name: elastic.service.endpoint.status + description: Elastic Service Endpoint Status. + type: keyword +- name: elastic.service.endpoint.version + description: Elastic Service Endpoint Version. + type: version +- name: trellix.service.accm.status + description: Trellix Service Accum Status. + type: keyword +- name: trellix.service.accm.version + description: Trellix Service Accum Version. + type: version +- name: trellix.service.dlp.status + description: Trellix Service DLP Status. + type: keyword +- name: trellix.service.dlp.version + description: Trellix Service DLP Version. + type: version +- name: trellix.service.ens.signature_version + description: Trellix Service ENS Signature Version. + type: keyword +- name: trellix.service.ens.status + description: Trellix Service ENS Signature status. + type: keyword +- name: trellix.service.ens.version + description: Trellix Service ENS Signature Version. + type: version +- name: trellix.service.ma.status + description: Trellix Service MA Status. + type: keyword +- name: trellix.service.ma.version + description: Trellix Service MA Version. + type: version +- name: trellix.service.pa.status + description: Trellix Service PA Status. + type: keyword +- name: trellix.service.pa.version + description: Trellix Service PA Version. + type: version +- name: trellix.service.rsd.status + description: Trellix Service RSD Status. + type: keyword +- name: trellix.service.rsd.version + description: Trellix Service RSD Version. + type: version +- name: elastic.service.endpoint.ransomware + type: keyword +- name: crowdstrike.service.falcon.status + type: keyword +- name: crowdstrike.service.falcon.version + type: version +- name: crowdstrike.service.falcon.signature_version + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml index 17654c9e49c..decf292cc6f 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml @@ -18,12 +18,16 @@ name: data_stream.type - external: ecs name: ecs.version +- external: ecs + name: error.message - external: ecs name: event.agent_id_status - external: ecs name: event.category - external: ecs name: event.dataset +- external: ecs + name: event.ingested - external: ecs name: event.kind - external: ecs @@ -74,6 +78,8 @@ name: process.name - external: ecs name: process.pid +- external: ecs + name: process.start - external: ecs name: process.user.name - external: ecs @@ -87,8 +93,4 @@ - external: ecs name: tags - external: ecs - name: error.message -- external: ecs - name: event.ingested -- external: ecs - name: process.start + name: user.name diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml index 54b02bbc340..48ac1919886 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml @@ -1,9 +1,10 @@ -- name: service - type: group - fields: - - name: description - description: The description text on the serivce. - type: keyword - - name: display_name - description: The human readable name of the service - type: keyword +- name: service.description + description: The description text on the serivce. + type: keyword +- name: service.display_name + description: The human readable name of the service + type: keyword +- name: device.name + type: keyword +- name: service.status + type: keyword diff --git a/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml index de5665adfa8..c39c1090cf4 100644 --- a/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_hardware/fields/ecs.yml @@ -20,14 +20,20 @@ name: device.id - external: ecs name: device.manufacturer +- external: ecs + name: device.model.name - external: ecs name: ecs.version +- external: ecs + name: error.message - external: ecs name: event.agent_id_status - external: ecs name: event.category - external: ecs name: event.dataset +- external: ecs + name: event.ingested - external: ecs name: event.kind - external: ecs @@ -68,7 +74,3 @@ name: log.file.path - external: ecs name: tags -- external: ecs - name: error.message -- external: ecs - name: event.ingested diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml index 3730e78b350..8060e737632 100644 --- a/packages/tychon/data_stream/tychon_host/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -1,185 +1,137 @@ -- name: event - type: group - fields: - - name: deviceguard - type: group - fields: - - name: basevirtualizationsupport - type: group - fields: - - name: available - description: Event Device Base Virtualization Support Available. - type: boolean - - name: credentialguard - type: group - fields: - - name: enabled - description: Event Device Credential Guard Enabled. - type: boolean - - name: running - description: Event Device Credential Guard Running. - type: boolean - - name: dmaprotection - type: group - fields: - - name: available - description: Event Device - type: boolean - - name: hypervisorenforcedcodeint - type: group - fields: - - name: enabled - description: Event Device Hypervisor Enforced Code Enabled. - type: boolean - - name: running - description: Event Device Hypervisor Enforced Code running. - type: boolean - - name: secureboot - type: group - fields: - - name: available - description: Event Device Secure Boot Available. - type: boolean - - name: securememoverwrite - type: group - fields: - - name: available - description: Event Device Secure Memory Overwrite Available. - type: boolean - - name: smmsecuritymigrations - type: group - fields: - - name: available - description: Event Device SMM Security Migrations Available. - type: boolean - - name: systemguardsecurelaunch - type: group - fields: - - name: enabled - description: Event Device Guard System Guard Secure Launch Enabled. - type: boolean - - name: running - description: Event Device Guard System Guard Secure Launch Running. - type: boolean - - name: ueficodereadonly - type: group - fields: - - name: available - description: Event Device Guard UEFI Code Readonly Availability. - type: boolean - - name: usermodecodeintegrity - type: group - fields: - - name: policyenforcement - description: Event Device Guard User Mode Code Integrity Policy Enforcement. - type: keyword - - name: version - description: Event Device Guard version. - type: keyword - - name: virtualizationbasedsecurity - type: group - fields: - - name: status - description: Event Device Guard Virtualization Based Security Status. - type: keyword - - name: ufi - type: group - fields: - - name: enabled - description: Event UFI Enabled. - type: boolean -- name: host - type: group - fields: - - name: cpu - type: group - fields: - - name: caption - type: text - description: Description of the CPU - - name: count - type: integer - description: Total Number of CPUs on the system - - name: memory - type: group - fields: - - name: size - type: long - description: Total RAM Size - - name: motherboard - type: group - fields: - - name: chipset - type: keyword - description: Chipset of the Motherboard - - name: serial_number - type: keyword - description: Serial Number of the Motherboard - - name: os - type: group - fields: - - name: edition - type: keyword - description: The Edition of the Opearting System - - name: vendor - type: keyword - description: The vendor of the Operating System - - name: security - type: group - fields: - - name: antivirus - type: group - fields: - - name: exists - type: boolean - description: Does the OS state that an AV program is installed - - name: name - type: keyword - description: Product name the Operating System states is the AV program installed - - name: state - type: keyword - description: The Operating System state of the AV product - - name: status - type: keyword - description: The Operating System current status of the AV product it says is installed. - - name: tpm - type: group - fields: - - name: compliant - type: boolean - description: Is the endpoint compliant with TPM security settings - - name: digest - type: group - fields: - - name: id - type: keyword - description: What digest is being used by TPM - - name: present - type: boolean - description: Is TPM module present on the operating system - - name: version - type: keyword - description: What version of TPM is being used - - name: virtualization_status - type: keyword -- name: tychon - type: group - fields: - - name: definition - type: group - fields: - - name: oval - type: date - description: What version of the TYCHON oval defitnions are currently on this endpoint - - name: stig - type: date - description: What version of the Benchmark checks are on this endpoint - - name: version - type: group - fields: - - name: agent - type: version - description: The TYCHON Agent Version installed on the endpoint - - name: content - type: version - description: The TYCHON Agentless Version installed on the endpoint +- name: event.deviceguard.basevirtualizationsupport.available + description: Event Device Base Virtualization Support Available. + type: boolean +- name: event.deviceguard.credentialguard.enabled + description: Event Device Credential Guard Enabled. + type: boolean +- name: event.deviceguard.credentialguard.running + description: Event Device Credential Guard Running. + type: boolean +- name: event.deviceguard.dmaprotection.available + description: Event Device + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.enabled + description: Event Device Hypervisor Enforced Code Enabled. + type: boolean +- name: event.deviceguard.hypervisorenforcedcodeint.running + description: Event Device Hypervisor Enforced Code running. + type: boolean +- name: event.deviceguard.secureboot.available + description: Event Device Secure Boot Available. + type: boolean +- name: event.deviceguard.securememoverwrite.available + description: Event Device Secure Memory Overwrite Available. + type: boolean +- name: event.deviceguard.smmsecuritymigrations.available + description: Event Device SMM Security Migrations Available. + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.enabled + description: Event Device Guard System Guard Secure Launch Enabled. + type: boolean +- name: event.deviceguard.systemguardsecurelaunch.running + description: Event Device Guard System Guard Secure Launch Running. + type: boolean +- name: event.deviceguard.ueficodereadonly.available + description: Event Device Guard UEFI Code Readonly Availability. + type: boolean +- name: event.deviceguard.usermodecodeintegrity.policyenforcement + description: Event Device Guard User Mode Code Integrity Policy Enforcement. + type: keyword +- name: event.deviceguard.version + description: Event Device Guard version. + type: keyword +- name: event.deviceguard.virtualizationbasedsecurity.status + description: Event Device Guard Virtualization Based Security Status. + type: keyword +- name: event.ufi.enabled + description: Event UFI Enabled. + type: boolean +- name: host.cpu.caption + description: Description of the CPU + type: text +- name: host.cpu.count + description: Total Number of CPUs on the system + type: integer +- name: host.memory.size + description: Total RAM Size + type: long +- name: host.motherboard.chipset + description: Chipset of the Motherboard + type: keyword +- name: host.motherboard.serial_number + description: Serial Number of the Motherboard + type: keyword +- name: host.os.edition + description: The Edition of the Opearting System + type: keyword +- name: host.os.vendor + description: The vendor of the Operating System + type: keyword +- name: host.security.antivirus.exists + description: Does the OS state that an AV program is installed + type: boolean +- name: host.security.antivirus.name + description: Product name the Operating System states is the AV program installed + type: keyword +- name: host.security.antivirus.state + description: The Operating System state of the AV product + type: keyword +- name: host.security.antivirus.status + description: The Operating System current status of the AV product it says is installed. + type: keyword +- name: host.tpm.compliant + description: Is the endpoint compliant with TPM security settings + type: boolean +- name: host.tpm.digest.id + description: What digest is being used by TPM + type: keyword +- name: host.tpm.present + description: Is TPM module present on the operating system + type: boolean +- name: host.tpm.version + description: What version of TPM is being used + type: keyword +- name: host.virtualization_status + type: keyword +- name: tychon.definition.oval + description: What version of the TYCHON oval defitnions are currently on this endpoint + type: date +- name: tychon.definition.stig + description: What version of the Benchmark checks are on this endpoint + type: date +- name: tychon.version.agent + description: The TYCHON Agent Version installed on the endpoint + type: version +- name: tychon.version.content + description: The TYCHON Agentless Version installed on the endpoint + type: version +- name: host.os.suportted_plan + type: keyword +- name: host.os.extended_support_license + type: keyword +- name: host.os.extended_support_license_expiration + type: date +- name: host.virtulization_status + type: keyword +- name: host.compute.location + type: keyword +- name: host.cloud.compute.name + type: keyword +- name: host.cloud.compute.resource_group_name + type: keyword +- name: host.cloud.compute.resource_id + type: keyword +- name: host.cloud.compute.subscription_id + type: keyword +- name: host.cloud.compute.tags + type: keyword +- name: host.cloud.compute.vm_id + type: keyword +- name: host.cloud.network.public_ipv6 + type: ip +- name: host.cloud.network.public_ipv4 + type: ip +- name: host.cloud.network.mac_address + type: keyword +- name: host.cloud.hosted + type: boolean diff --git a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json index 6c7ca5a56ab..c76c3a50095 100644 --- a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json @@ -11,10 +11,14 @@ "host.hardware.serial_number": "VMware-56 4d da 1c 0a cf 55 aa-ff 70 b5 c7 ba ef 9a eb", "host.hostname": "DESKTOP-TIUKL1R", "host.id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "host.ip": "10.1.9.112", + "host.ip": [ + "10.1.9.112" + ], "host.ipv4": "10.1.9.112", "host.ipv6": "fe80::40d1:5287:42b9:5645", - "host.mac": "00:0C:29:EF:9A:EB", + "host.mac": [ + "00:0C:29:EF:9A:EB" + ], "host.oem.manufacturer": "", "host.oem.model": "", "host.os.build": "22000", diff --git a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json index 7ea90e1af0f..934541f2391 100644 --- a/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json +++ b/packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json @@ -34,12 +34,16 @@ }, "hostname": "DESKTOP-TIUKL1R", "id": "bd72307d1093421f95713515c770b79a_1CDA4D56-CF0A-AA55-FF70-B5C7BAEF9AEB_DESKTOP-TIUKL1R_WORKGROUP", - "ip": "10.1.9.112", + "ip": [ + "10.1.9.112" + ], "ipv4": [ "10.1.9.112" ], "ipv6": "fe80::40d1:5287:42b9:5645", - "mac": "00-0C-29-EF-9A-EB", + "mac": [ + "00-0C-29-EF-9A-EB" + ], "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_patch/fields/ecs.yml b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml index aa33a7964a6..1b24786125d 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/ecs.yml @@ -10,16 +10,18 @@ name: agent.type - external: ecs name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status - external: ecs name: data_stream.dataset - external: ecs name: data_stream.namespace - external: ecs name: data_stream.type +- external: ecs + name: ecs.version +- external: ecs + name: error.message +- external: ecs + name: event.agent_id_status - external: ecs name: event.category - external: ecs @@ -36,20 +38,36 @@ name: event.outcome - external: ecs name: event.timezone -- external: ecs - name: error.message - external: ecs name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac - external: ecs name: host.name - external: ecs - name: host.uptime + name: host.os.family - external: ecs name: host.os.kernel +- external: ecs + name: host.os.name - external: ecs name: host.os.platform - external: ecs name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime - external: ecs name: log.file.path - external: ecs diff --git a/packages/tychon/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/data_stream/tychon_patch/fields/fields.yml index 925eab85d41..b9f93023033 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/fields.yml @@ -1,31 +1,24 @@ -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: integer +- name: vulnerability.due_date + description: Vulnerability Due Date. + type: date +- name: vulnerability.due_date_reason + description: Vulnerability Due Date Reason + type: keyword +- name: vulnerability.iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword +- name: vulnerability.iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword +- name: vulnerability.result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword +- name: vulnerability.title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword +- name: vulnerability.version + description: Version Number of the Scan. + type: keyword +- name: vulnerability.year + description: Common Vulnerabilities and Exposures Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json index c9e2d879869..ee54532bbad 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json @@ -10,7 +10,9 @@ "rule.oval.refid": "", "script.type": "powershell", "host.os.build": "19045", - "host.ip": "10.1.9.51", + "host.ip": [ + "10.1.9.51" + ], "rule.name": "Adobe Reader DC must enable Enhanced Security in a Standalone Application.", "script.version": "2.3.141.0", "host.hostname": "BOTANYBAYEP1", @@ -38,7 +40,9 @@ "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", "oval.class": "compliance", "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", - "host.mac": "00:0C:29:93:6A:F3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], "oval.refid": "", "rule.severity": "medium", "host.oem.model": "", diff --git a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json index c2f5503e944..7016db7214e 100644 --- a/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json +++ b/packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json @@ -45,12 +45,16 @@ }, "hostname": "BOTANYBAYEP1", "id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", - "ip": "10.1.9.51", + "ip": [ + "10.1.9.51" + ], "ipv4": [ "10.1.9.51" ], "ipv6": "", - "mac": "00-0C-29-93-6A-F3", + "mac": [ + "00-0C-29-93-6A-F3" + ], "oem": { "manufacturer": "", "model": "" diff --git a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml index c89e8e943e1..df5124f8039 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/ecs.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/ecs.yml @@ -1,66 +1,84 @@ - external: ecs name: '@timestamp' - external: ecs - name: package.description -- external: ecs - name: package.name -- external: ecs - name: package.reference + name: agent.ephemeral_id - external: ecs - name: package.type + name: agent.id - external: ecs - name: package.build_version + name: agent.name - external: ecs - name: rule.id + name: agent.type - external: ecs - name: rule.name + name: agent.version - external: ecs name: data_stream.dataset - external: ecs name: data_stream.namespace - external: ecs name: data_stream.type -- external: ecs - name: event.kind - external: ecs name: ecs.version +- external: ecs + name: error.message +- external: ecs + name: event.agent_id_status - external: ecs name: event.category - external: ecs name: event.created - external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id + name: event.dataset - external: ecs name: event.ingested - external: ecs - name: agent.name + name: event.kind - external: ecs - name: agent.type + name: event.timezone - external: ecs - name: agent.version + name: host.architecture - external: ecs - name: event.agent_id_status + name: host.domain - external: ecs - name: event.dataset + name: host.hostname - external: ecs - name: event.timezone + name: host.id - external: ecs - name: error.message + name: host.ip +- external: ecs + name: host.mac +- external: ecs + name: host.name +- external: ecs + name: host.os.family +- external: ecs + name: host.os.kernel +- external: ecs + name: host.os.name +- external: ecs + name: host.os.platform - external: ecs name: host.os.type +- external: ecs + name: host.os.version +- external: ecs + name: host.type +- external: ecs + name: host.uptime - external: ecs name: log.file.path - external: ecs - name: tags + name: package.build_version - external: ecs - name: host.architecture + name: package.description - external: ecs - name: host.name + name: package.name - external: ecs - name: host.uptime + name: package.reference - external: ecs - name: host.os.kernel + name: package.type - external: ecs - name: host.os.platform + name: rule.id +- external: ecs + name: rule.name +- external: ecs + name: tags diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index a5fed1a0465..db0d8edab1b 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -1,87 +1,65 @@ -- name: benchmark - type: group - fields: - - name: id - description: Benchmark ID. - type: keyword - - name: generated_utc - description: Benchmark UTC. - type: date - - name: hash - description: Benchmark SHA256 Hash - type: keyword - - name: name - description: Benchmark Name. - type: keyword - - name: title - description: Benchmark Title. - type: keyword - - name: version - description: Benchmark Version. - type: keyword - - name: list - description: Benchmark Summary Name List. - type: keyword - - name: count - description: Benchmark Summary Name List Item Count. - type: long -- name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. - type: keyword -- name: rule - type: group - fields: - - name: finding_id - description: Benchmark Rule Finding Identifier. - type: keyword - - name: result - description: Benchmark Rule Results. - type: keyword - - name: severity - description: Benchmark Severity Status. - type: keyword - - name: stig_id - description: Stig rule id - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: vulnerability_id - description: Rule vulnerability id. - type: keyword - - name: weight - description: Benchmark Rule Weight. - type: float - - name: benchmark - type: group - fields: - - name: id - description: Benchmark Rule ID. - type: keyword - - name: profile.id - description: Benchmark Rule Profile Identifier. - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Reference Identifier. - type: keyword +- name: benchmark.id + description: Benchmark ID. + type: keyword +- name: benchmark.generated_utc + description: Benchmark UTC. + type: date +- name: benchmark.hash + description: Benchmark SHA256 Hash + type: keyword +- name: benchmark.name + description: Benchmark Name. + type: keyword +- name: benchmark.title + description: Benchmark Title. + type: keyword +- name: benchmark.version + description: Benchmark Version. + type: keyword +- name: oval.id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword +- name: oval.class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword +- name: oval.refid + description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. + type: keyword +- name: rule.finding_id + description: Benchmark Rule Finding Identifier. + type: keyword +- name: rule.result + description: Benchmark Rule Results. + type: keyword +- name: rule.severity + description: Benchmark Severity Status. + type: keyword +- name: rule.stig_id + description: Stig rule id + type: keyword +- name: rule.title + description: Benchmark Rule Title. + type: keyword +- name: rule.vulnerability_id + description: Rule vulnerability id. + type: keyword +- name: rule.weight + description: Benchmark Rule Weight. + type: float +- name: rule.benchmark.profile.id + description: Benchmark Rule Profile Identifier. + type: keyword +- name: rule.benchmark.title + description: Benchmark Rule Title. + type: keyword +- name: rule.oval.id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword +- name: rule.oval.class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword +- name: rule.oval.refid + description: Open Vulnerabilities and Assessment Language Reference Identifier. + type: keyword +- name: rule.test_result + type: keyword From 568276ff0f6a09693a62e13a1a4c317773f39054 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Wed, 11 Oct 2023 15:23:46 -0400 Subject: [PATCH 61/65] Nested yml files and fixed typos. --- packages/tychon/_dev/build/docs/README.md | 2 +- packages/tychon/changelog.yml | 2 +- .../data_stream/tychon_cve/fields/fields.yml | 51 +-- .../data_stream/tychon_epp/fields/fields.yml | 317 +++++++++------ .../tychon_exposedservice/fields/fields.yml | 28 +- .../tychon_harddrive/fields/fields.yml | 6 +- .../data_stream/tychon_host/fields/fields.yml | 380 +++++++++++------- .../tychon_networkadapter/fields/fields.yml | 4 +- .../tychon_patch/fields/fields.yml | 51 +-- .../data_stream/tychon_stig/fields/fields.yml | 149 ++++--- packages/tychon/docs/README.md | 99 ++--- packages/tychon/manifest.yml | 2 +- 12 files changed, 660 insertions(+), 431 deletions(-) diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index b730419d870..9b319086e30 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -27,7 +27,7 @@ TYCHON scans for Endpoint CPU's and returns the results. ### Vulnerablities -TYCHON scans for Endpoint vulenrabilites and returns the results. +TYCHON scans for Endpoint vulnerablities and returns the results. **Exported fields** {{fields "tychon_cve"}} diff --git a/packages/tychon/changelog.yml b/packages/tychon/changelog.yml index 9c7d3d826ff..c3c87258df3 100644 --- a/packages/tychon/changelog.yml +++ b/packages/tychon/changelog.yml @@ -1,4 +1,4 @@ -- version: 0.0.57 +- version: 0.0.58 changes: - description: Fixed incorrect types in field.yml and cleaned up formatting type: enhancement diff --git a/packages/tychon/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/data_stream/tychon_cve/fields/fields.yml index 163677e660e..b73c0500bbc 100644 --- a/packages/tychon/data_stream/tychon_cve/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_cve/fields/fields.yml @@ -1,24 +1,27 @@ -- name: vulnerability.due_date - description: Vulnerability Due Date. - type: date -- name: vulnerability.due_date_reason - description: Vulnerability Due Date Reason. - type: keyword -- name: vulnerability.iava - description: Vulnerability Iava. - type: keyword -- name: vulnerability.iava_severity - description: Vulnerability Iava Severity. - type: keyword -- name: vulnerability.result - description: Vulnerability Result. - type: keyword -- name: vulnerability.title - description: Vulnerability Title. - type: keyword -- name: vulnerability.version - description: Vulnerability Version. - type: keyword -- name: vulnerability.year - description: Vulnerability Year. - type: integer +- name: vulnerability + type: group + fields: + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason. + type: keyword + - name: iava + description: Vulnerability Iava. + type: keyword + - name: iava_severity + description: Vulnerability Iava Severity. + type: keyword + - name: result + description: Vulnerability Result. + type: keyword + - name: title + description: Vulnerability Title. + type: keyword + - name: version + description: Vulnerability Version. + type: keyword + - name: year + description: Vulnerability Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/data_stream/tychon_epp/fields/fields.yml index 21e448a9db3..03e45729afd 100644 --- a/packages/tychon/data_stream/tychon_epp/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_epp/fields/fields.yml @@ -1,116 +1,201 @@ -- name: windows_defender.service.behavior_monitor.status - description: Windows Defender Behavior Monitor Status. - type: keyword -- name: windows_defender.service.ioav_protection.status - description: Windows Defender iOffice Antivirus Protection Status. - type: keyword -- name: windows_defender.service.on_access_protection.status - description: Windows Defender On Access Protection Status. - type: keyword -- name: windows_defender.service.real_time_protection.status - description: Windows Defender Real-time Procection Status. - type: keyword -- name: windows_defender.service.antimalware.engine_version - description: Windows Defender Antimalware Engine Version. - type: keyword -- name: windows_defender.service.antimalware.product_version - description: Windows Defender Antimalware Product Version. - type: keyword -- name: windows_defender.service.antimalware.signature_version - description: Windows Defender Antimalware Signature Version. - type: keyword -- name: windows_defender.service.antimalware.status - description: Windows Defender Antimalware Status. - type: keyword -- name: windows_defender.service.antispyware.signature_version - description: Windows Defender Antispyware Signature Version. - type: keyword -- name: windows_defender.service.antispyware.status - description: Windows Defender Antispyware Status. - type: keyword -- name: windows_defender.service.antivirus.full_scan.signature_version - description: Windows Defender Antivirus Full Scan Version. - type: keyword -- name: windows_defender.service.antivirus.quick_scan.signature_version - description: Windows Defender Antivirus Signature Version. - type: keyword -- name: windows_defender.service.antivirus.status - description: Windows Defender Antivirus Status. - type: keyword -- name: windows_defender.service.nis.engine_version - description: Windows Defender Network Inspection System Engine Version. - type: keyword -- name: windows_defender.service.nis.signature_version - description: Windows Defender Network Inspection System Signature Version. - type: keyword -- name: windows_defender.service.nis.status - description: Windows Defender Network Inspection System Status. - type: keyword -- name: elastic.service.agent.status - description: Elastic Service Agent Status. - type: keyword -- name: elastic.service.agent.version - description: Elastic Service Agent Version. - type: version -- name: elastic.service.endpoint.behavior_protection - description: Elastic Service Endpoint Behavior Protection. - type: keyword -- name: elastic.service.endpoint.malware - description: Elastic Service Endpoint Malware. - type: keyword -- name: elastic.service.endpoint.memory_protection - description: Elastic Service Endpoint Memory Protection. - type: keyword -- name: elastic.service.endpoint.status - description: Elastic Service Endpoint Status. - type: keyword -- name: elastic.service.endpoint.version - description: Elastic Service Endpoint Version. - type: version -- name: trellix.service.accm.status - description: Trellix Service Accum Status. - type: keyword -- name: trellix.service.accm.version - description: Trellix Service Accum Version. - type: version -- name: trellix.service.dlp.status - description: Trellix Service DLP Status. - type: keyword -- name: trellix.service.dlp.version - description: Trellix Service DLP Version. - type: version -- name: trellix.service.ens.signature_version - description: Trellix Service ENS Signature Version. - type: keyword -- name: trellix.service.ens.status - description: Trellix Service ENS Signature status. - type: keyword -- name: trellix.service.ens.version - description: Trellix Service ENS Signature Version. - type: version -- name: trellix.service.ma.status - description: Trellix Service MA Status. - type: keyword -- name: trellix.service.ma.version - description: Trellix Service MA Version. - type: version -- name: trellix.service.pa.status - description: Trellix Service PA Status. - type: keyword -- name: trellix.service.pa.version - description: Trellix Service PA Version. - type: version -- name: trellix.service.rsd.status - description: Trellix Service RSD Status. - type: keyword -- name: trellix.service.rsd.version - description: Trellix Service RSD Version. - type: version -- name: elastic.service.endpoint.ransomware - type: keyword -- name: crowdstrike.service.falcon.status - type: keyword -- name: crowdstrike.service.falcon.version - type: version -- name: crowdstrike.service.falcon.signature_version - type: keyword +- name: crowdstrike + type: group + fields: + - name: service + type: group + fields: + - name: falcon + type: group + fields: + - name: signature_version + description: Crowdstrike Service Falcon Signature Version. + type: keyword + - name: status + description: Crowdstrike Service Falcon Status. + type: keyword + - name: version + description: Crowdstrike Service Falcon Version. + type: version +- name: elastic + type: group + fields: + - name: service + type: group + fields: + - name: agent + type: group + fields: + - name: status + description: Elastic Service Agent Status. + type: keyword + - name: version + description: Elastic Service Agent Version. + type: version + - name: endpoint + type: group + fields: + - name: behavior_protection + description: Elastic Service Endpoint Behavior Protection. + type: keyword + - name: malware + description: Elastic Service Endpoint Malware. + type: keyword + - name: memory_protection + description: Elastic Service Endpoint Memory Protection. + type: keyword + - name: ransomware + description: Elastic Service Endpoint Ransomware. + type: keyword + - name: status + description: Elastic Service Endpoint Status. + type: keyword + - name: version + description: Elastic Service Endpoint Version. + type: version +- name: trellix + type: group + fields: + - name: service + type: group + fields: + - name: accm + type: group + fields: + - name: status + description: Trellix Service Accm Status. + type: keyword + - name: version + description: Trellix Service Accm Version. + type: version + - name: dlp + type: group + fields: + - name: status + description: Trellix Service Dlp Status. + type: keyword + - name: version + description: Trellix Service Dlp Version. + type: version + - name: ens + type: group + fields: + - name: signature_version + description: Trellix Service Ens Signature Version. + type: keyword + - name: status + description: Trellix Service Ens Status. + type: keyword + - name: version + description: Trellix Service Ens Version. + type: version + - name: ma + type: group + fields: + - name: status + description: Trellix Service Ma Status. + type: keyword + - name: version + description: Trellix Service Ma Version. + type: version + - name: pa + type: group + fields: + - name: status + description: Trellix Service Pa Status. + type: keyword + - name: version + description: Trellix Service Pa Version. + type: version + - name: rsd + type: group + fields: + - name: status + description: Trellix Service Rsd Status. + type: keyword + - name: version + description: Trellix Service Rsd Version. + type: version +- name: windows_defender + type: group + fields: + - name: service + type: group + fields: + - name: antimalware + type: group + fields: + - name: engine_version + description: Windows Defender Service Antimalware Engine Version. + type: keyword + - name: product_version + description: Windows Defender Service Antimalware Product Version. + type: keyword + - name: signature_version + description: Windows Defender Service Antimalware Signature Version. + type: keyword + - name: status + description: Windows Defender Service Antimalware Status. + type: keyword + - name: antispyware + type: group + fields: + - name: signature_version + description: Windows Defender Service Antispyware Signature Version. + type: keyword + - name: status + description: Windows Defender Service Antispyware Status. + type: keyword + - name: antivirus + type: group + fields: + - name: full_scan + type: group + fields: + - name: signature_version + description: Windows Defender Service Antivirus Full Scan Signature Version. + type: keyword + - name: quick_scan + type: group + fields: + - name: signature_version + description: Windows Defender Service Antivirus Quick Scan Signature Version. + type: keyword + - name: status + description: Windows Defender Service Antivirus Status. + type: keyword + - name: behavior_monitor + type: group + fields: + - name: status + description: Windows Defender Service Behavior Monitor Status. + type: keyword + - name: ioav_protection + type: group + fields: + - name: status + description: Windows Defender Service Ioav Protection Status. + type: keyword + - name: nis + type: group + fields: + - name: engine_version + description: Windows Defender Service Nis Engine Version. + type: keyword + - name: signature_version + description: Windows Defender Service Nis Signature Version. + type: keyword + - name: status + description: Windows Defender Service Nis Status. + type: keyword + - name: on_access_protection + type: group + fields: + - name: status + description: Windows Defender Service On Access Protection Status. + type: keyword + - name: real_time_protection + type: group + fields: + - name: status + description: Windows Defender Service Real Time Protection Status. + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml index 48ac1919886..77a8e2cbaee 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml @@ -1,10 +1,18 @@ -- name: service.description - description: The description text on the serivce. - type: keyword -- name: service.display_name - description: The human readable name of the service - type: keyword -- name: device.name - type: keyword -- name: service.status - type: keyword +- name: device + type: group + fields: + - name: name + description: Device Name. + type: keyword +- name: service + type: group + fields: + - name: description + description: The description text on the service. + type: keyword + - name: display_name + description: The human readable name of the service + type: keyword + - name: status + description: Service Status. + type: keyword diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml index 6d5ccd2556b..f897cf8ee96 100644 --- a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml @@ -9,13 +9,13 @@ fields: - name: serial_number type: keyword - description: Disk Adatper Serial Number + description: Disk Adapter Serial Number - name: boot_from type: boolean description: OS booted from this disk - name: bus_type type: keyword - description: THe Disk Bus Type + description: The Disk Bus Type - name: clustered type: boolean description: Is the Disk Clustered @@ -57,7 +57,7 @@ description: The model of the disk - name: name type: keyword - description: The firendly name of the disk + description: The friendly name of the disk - name: number type: integer description: The number assigned to the disk diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/data_stream/tychon_host/fields/fields.yml index 8060e737632..59bdd71baf8 100644 --- a/packages/tychon/data_stream/tychon_host/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_host/fields/fields.yml @@ -1,137 +1,243 @@ -- name: event.deviceguard.basevirtualizationsupport.available - description: Event Device Base Virtualization Support Available. - type: boolean -- name: event.deviceguard.credentialguard.enabled - description: Event Device Credential Guard Enabled. - type: boolean -- name: event.deviceguard.credentialguard.running - description: Event Device Credential Guard Running. - type: boolean -- name: event.deviceguard.dmaprotection.available - description: Event Device - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.enabled - description: Event Device Hypervisor Enforced Code Enabled. - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.running - description: Event Device Hypervisor Enforced Code running. - type: boolean -- name: event.deviceguard.secureboot.available - description: Event Device Secure Boot Available. - type: boolean -- name: event.deviceguard.securememoverwrite.available - description: Event Device Secure Memory Overwrite Available. - type: boolean -- name: event.deviceguard.smmsecuritymigrations.available - description: Event Device SMM Security Migrations Available. - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.enabled - description: Event Device Guard System Guard Secure Launch Enabled. - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.running - description: Event Device Guard System Guard Secure Launch Running. - type: boolean -- name: event.deviceguard.ueficodereadonly.available - description: Event Device Guard UEFI Code Readonly Availability. - type: boolean -- name: event.deviceguard.usermodecodeintegrity.policyenforcement - description: Event Device Guard User Mode Code Integrity Policy Enforcement. - type: keyword -- name: event.deviceguard.version - description: Event Device Guard version. - type: keyword -- name: event.deviceguard.virtualizationbasedsecurity.status - description: Event Device Guard Virtualization Based Security Status. - type: keyword -- name: event.ufi.enabled - description: Event UFI Enabled. - type: boolean -- name: host.cpu.caption - description: Description of the CPU - type: text -- name: host.cpu.count - description: Total Number of CPUs on the system - type: integer -- name: host.memory.size - description: Total RAM Size - type: long -- name: host.motherboard.chipset - description: Chipset of the Motherboard - type: keyword -- name: host.motherboard.serial_number - description: Serial Number of the Motherboard - type: keyword -- name: host.os.edition - description: The Edition of the Opearting System - type: keyword -- name: host.os.vendor - description: The vendor of the Operating System - type: keyword -- name: host.security.antivirus.exists - description: Does the OS state that an AV program is installed - type: boolean -- name: host.security.antivirus.name - description: Product name the Operating System states is the AV program installed - type: keyword -- name: host.security.antivirus.state - description: The Operating System state of the AV product - type: keyword -- name: host.security.antivirus.status - description: The Operating System current status of the AV product it says is installed. - type: keyword -- name: host.tpm.compliant - description: Is the endpoint compliant with TPM security settings - type: boolean -- name: host.tpm.digest.id - description: What digest is being used by TPM - type: keyword -- name: host.tpm.present - description: Is TPM module present on the operating system - type: boolean -- name: host.tpm.version - description: What version of TPM is being used - type: keyword -- name: host.virtualization_status - type: keyword -- name: tychon.definition.oval - description: What version of the TYCHON oval defitnions are currently on this endpoint - type: date -- name: tychon.definition.stig - description: What version of the Benchmark checks are on this endpoint - type: date -- name: tychon.version.agent - description: The TYCHON Agent Version installed on the endpoint - type: version -- name: tychon.version.content - description: The TYCHON Agentless Version installed on the endpoint - type: version -- name: host.os.suportted_plan - type: keyword -- name: host.os.extended_support_license - type: keyword -- name: host.os.extended_support_license_expiration - type: date -- name: host.virtulization_status - type: keyword -- name: host.compute.location - type: keyword -- name: host.cloud.compute.name - type: keyword -- name: host.cloud.compute.resource_group_name - type: keyword -- name: host.cloud.compute.resource_id - type: keyword -- name: host.cloud.compute.subscription_id - type: keyword -- name: host.cloud.compute.tags - type: keyword -- name: host.cloud.compute.vm_id - type: keyword -- name: host.cloud.network.public_ipv6 - type: ip -- name: host.cloud.network.public_ipv4 - type: ip -- name: host.cloud.network.mac_address - type: keyword -- name: host.cloud.hosted - type: boolean +- name: event + type: group + fields: + - name: deviceguard + type: group + fields: + - name: basevirtualizationsupport + type: group + fields: + - name: available + description: Event Deviceguard Basevirtualizationsupport Available. + type: boolean + - name: credentialguard + type: group + fields: + - name: enabled + description: Event Deviceguard Credentialguard Enabled. + type: boolean + - name: running + description: Event Deviceguard Credentialguard Running. + type: boolean + - name: dmaprotection + type: group + fields: + - name: available + description: Event Deviceguard Dmaprotection Available. + type: boolean + - name: hypervisorenforcedcodeint + type: group + fields: + - name: enabled + description: Event Deviceguard Hypervisorenforcedcodeint Enabled. + type: boolean + - name: running + description: Event Deviceguard Hypervisorenforcedcodeint Running. + type: boolean + - name: secureboot + type: group + fields: + - name: available + description: Event Deviceguard Secureboot Available. + type: boolean + - name: securememoverwrite + type: group + fields: + - name: available + description: Event Deviceguard Securememoverwrite Available. + type: boolean + - name: smmsecuritymigrations + type: group + fields: + - name: available + description: Event Deviceguard Smmsecuritymigrations Available. + type: boolean + - name: systemguardsecurelaunch + type: group + fields: + - name: enabled + description: Event Deviceguard Systemguardsecurelaunch Enabled. + type: boolean + - name: running + description: Event Deviceguard Systemguardsecurelaunch Running. + type: boolean + - name: ueficodereadonly + type: group + fields: + - name: available + description: Event Deviceguard Ueficodereadonly Available. + type: boolean + - name: usermodecodeintegrity + type: group + fields: + - name: policyenforcement + description: Event Deviceguard Usermodecodeintegrity Policyenforcement. + type: keyword + - name: version + description: Event Deviceguard Version. + type: keyword + - name: virtualizationbasedsecurity + type: group + fields: + - name: status + description: Event Deviceguard Virtualizationbasedsecurity Status. + type: keyword + - name: ufi + type: group + fields: + - name: enabled + description: Event Ufi Enabled. + type: boolean +- name: host + type: group + fields: + - name: cloud + type: group + fields: + - name: compute + type: group + fields: + - name: name + description: Host Cloud Compute Name. + type: keyword + - name: resource_group_name + description: Host Cloud Compute Resource Group Name. + type: keyword + - name: resource_id + description: Host Cloud Compute Resource Id. + type: keyword + - name: subscription_id + description: Host Cloud Compute Subscription Id. + type: keyword + - name: tags + description: Host Cloud Compute Tags. + type: keyword + - name: vm_id + description: Host Cloud Compute Vm Id. + type: keyword + - name: hosted + description: Host Cloud Hosted. + type: boolean + - name: network + type: group + fields: + - name: mac_address + description: Host Cloud Network Mac Address. + type: keyword + - name: public_ipv4 + description: Host Cloud Network Public Ipv4. + type: ip + - name: public_ipv6 + description: Host Cloud Network Public Ipv6. + type: ip + - name: compute + type: group + fields: + - name: location + description: Host Compute Location. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host Cpu Caption. + type: text + - name: count + description: Host Cpu Count. + type: integer + - name: memory + type: group + fields: + - name: size + description: Host Memory Size. + type: long + - name: motherboard + type: group + fields: + - name: chipset + description: Host Motherboard Chipset. + type: keyword + - name: serial_number + description: Host Motherboard Serial Number. + type: keyword + - name: os + type: group + fields: + - name: edition + description: Host Os Edition. + type: keyword + - name: extended_support_license + description: Host Os Extended Support License. + type: keyword + - name: extended_support_license_expiration + description: Host Os Extended Support License Expiration. + type: date + - name: suportted_plan + description: Host Os Suportted Plan. + type: keyword + - name: vendor + description: Host Os Vendor. + type: keyword + - name: security + type: group + fields: + - name: antivirus + type: group + fields: + - name: exists + description: Host Security Antivirus Exists. + type: boolean + - name: name + description: Host Security Antivirus Name. + type: keyword + - name: state + description: Host Security Antivirus State. + type: keyword + - name: status + description: Host Security Antivirus Status. + type: keyword + - name: tpm + type: group + fields: + - name: compliant + description: Host Tpm Compliant. + type: boolean + - name: digest + type: group + fields: + - name: id + description: Host Tpm Digest Id. + type: keyword + - name: present + description: Host Tpm Present. + type: boolean + - name: version + description: Host Tpm Version. + type: keyword + - name: virtualization_status + description: Host Virtualization Status. + type: keyword + - name: virtulization_status + description: Host Virtulization Status. + type: keyword +- name: tychon + type: group + fields: + - name: definition + type: group + fields: + - name: oval + description: Tychon Definition Oval. + type: date + - name: stig + description: Tychon Definition Stig. + type: date + - name: version + type: group + fields: + - name: agent + description: Tychon Version Agent. + type: version + - name: content + description: Tychon Version Content. + type: version diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml index 1d92ebc5600..a4ecfb6ce0c 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml @@ -96,7 +96,7 @@ description: Subnet BIT - name: virtual type: boolean - description: Is adapter virutal + description: Is adapter virtual - name: vlan type: group fields: @@ -111,7 +111,7 @@ description: Is WIFI Enabled - name: signal_percent type: integer - description: Signal strenth to connected WIFI Router + description: Signal strength to connected WIFI Router - name: ssid type: keyword description: The Connected WIFI Router SSID diff --git a/packages/tychon/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/data_stream/tychon_patch/fields/fields.yml index b9f93023033..b73c0500bbc 100644 --- a/packages/tychon/data_stream/tychon_patch/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_patch/fields/fields.yml @@ -1,24 +1,27 @@ -- name: vulnerability.due_date - description: Vulnerability Due Date. - type: date -- name: vulnerability.due_date_reason - description: Vulnerability Due Date Reason - type: keyword -- name: vulnerability.iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword -- name: vulnerability.iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword -- name: vulnerability.result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword -- name: vulnerability.title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword -- name: vulnerability.version - description: Version Number of the Scan. - type: keyword -- name: vulnerability.year - description: Common Vulnerabilities and Exposures Year. - type: integer +- name: vulnerability + type: group + fields: + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason. + type: keyword + - name: iava + description: Vulnerability Iava. + type: keyword + - name: iava_severity + description: Vulnerability Iava Severity. + type: keyword + - name: result + description: Vulnerability Result. + type: keyword + - name: title + description: Vulnerability Title. + type: keyword + - name: version + description: Vulnerability Version. + type: keyword + - name: year + description: Vulnerability Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/data_stream/tychon_stig/fields/fields.yml index db0d8edab1b..439e6124a63 100644 --- a/packages/tychon/data_stream/tychon_stig/fields/fields.yml +++ b/packages/tychon/data_stream/tychon_stig/fields/fields.yml @@ -1,65 +1,84 @@ -- name: benchmark.id - description: Benchmark ID. - type: keyword -- name: benchmark.generated_utc - description: Benchmark UTC. - type: date -- name: benchmark.hash - description: Benchmark SHA256 Hash - type: keyword -- name: benchmark.name - description: Benchmark Name. - type: keyword -- name: benchmark.title - description: Benchmark Title. - type: keyword -- name: benchmark.version - description: Benchmark Version. - type: keyword -- name: oval.id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword -- name: oval.class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword -- name: oval.refid - description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. - type: keyword -- name: rule.finding_id - description: Benchmark Rule Finding Identifier. - type: keyword -- name: rule.result - description: Benchmark Rule Results. - type: keyword -- name: rule.severity - description: Benchmark Severity Status. - type: keyword -- name: rule.stig_id - description: Stig rule id - type: keyword -- name: rule.title - description: Benchmark Rule Title. - type: keyword -- name: rule.vulnerability_id - description: Rule vulnerability id. - type: keyword -- name: rule.weight - description: Benchmark Rule Weight. - type: float -- name: rule.benchmark.profile.id - description: Benchmark Rule Profile Identifier. - type: keyword -- name: rule.benchmark.title - description: Benchmark Rule Title. - type: keyword -- name: rule.oval.id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword -- name: rule.oval.class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword -- name: rule.oval.refid - description: Open Vulnerabilities and Assessment Language Reference Identifier. - type: keyword -- name: rule.test_result - type: keyword +- name: benchmark + type: group + fields: + - name: generated_utc + description: Benchmark UTC. + type: date + - name: hash + description: Benchmark SHA256 Hash + type: keyword + - name: id + description: Benchmark ID. + type: keyword + - name: name + description: Benchmark Name. + type: keyword + - name: title + description: Benchmark Title. + type: keyword + - name: version + description: Benchmark Version. + type: keyword +- name: oval + type: group + fields: + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. + type: keyword +- name: rule + type: group + fields: + - name: benchmark + type: group + fields: + - name: profile + type: group + fields: + - name: id + description: Benchmark Rule Profile Identifier. + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: finding_id + description: Benchmark Rule Finding Identifier. + type: keyword + - name: oval + type: group + fields: + - name: class + description: Open Vulnerabilities and Assessment Language Class. + type: keyword + - name: id + description: Open Vulnerabilities and Assessment Language Identifier. + type: keyword + - name: refid + description: Open Vulnerabilities and Assessment Language Reference Identifier. + type: keyword + - name: result + description: Benchmark Rule Results. + type: keyword + - name: severity + description: Benchmark Severity Status. + type: keyword + - name: stig_id + description: Stig rule id + type: keyword + - name: test_result + description: Rule Test Result. + type: keyword + - name: title + description: Benchmark Rule Title. + type: keyword + - name: vulnerability_id + description: Rule vulnerability id. + type: keyword + - name: weight + description: Benchmark Rule Weight. + type: float diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index 4c9cd4c1ad1..a4fdb1d4e6f 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -180,7 +180,7 @@ TYCHON scans for Endpoint CPU's and returns the results. ### Vulnerablities -TYCHON scans for Endpoint vulenrabilites and returns the results. +TYCHON scans for Endpoint vulnerablities and returns the results. **Exported fields** **Exported fields** @@ -197,13 +197,6 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic.service.agent.status | Elastic Service Agent Status. | keyword | -| elastic.service.agent.version | Elastic Service Agent Version. | version | -| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | -| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | -| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | -| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | -| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | @@ -259,19 +252,6 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | -| trellix.service.accm.status | Trellix Service Accm Status. | keyword | -| trellix.service.accm.version | Trellix Service Accm Version. | version | -| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | -| trellix.service.dlp.version | Trellix Service Dlp Version. | version | -| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | -| trellix.service.ens.status | Trellix Service Ens Status. | keyword | -| trellix.service.ens.version | Trellix Service Ens Version. | version | -| trellix.service.ma.status | Trellix Service Ma Status. | keyword | -| trellix.service.ma.version | Trellix Service Ma Version. | version | -| trellix.service.pa.status | Trellix Service Pa Status. | keyword | -| trellix.service.pa.version | Trellix Service Pa Version. | version | -| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | -| trellix.service.rsd.version | Trellix Service Rsd Version. | version | | tychon.id | TYCHON unique host identifier. | keyword | | vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | | vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | @@ -292,22 +272,6 @@ TYCHON scans for Endpoint vulenrabilites and returns the results. | vulnerability.title | Vulnerability Title. | keyword | | vulnerability.version | Vulnerability Version. | keyword | | vulnerability.year | Vulnerability Year. | integer | -| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | -| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | -| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | -| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | -| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | -| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | -| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | -| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | -| windows_defender.service.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | -| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | -| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | -| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | -| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | -| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | -| windows_defender.service.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | ### Endpoint Protection Platform @@ -325,6 +289,9 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | keyword | +| crowdstrike.service.falcon.signature_version | | keyword | +| crowdstrike.service.falcon.status | | keyword | +| crowdstrike.service.falcon.version | | version | | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | @@ -334,6 +301,7 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | | elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | | elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | +| elastic.service.endpoint.ransomware | | keyword | | elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | | elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | @@ -349,23 +317,33 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | | host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | | host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | | host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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 | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | @@ -413,7 +391,7 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | windows_defender.service.nis.signature_version | Windows Defender Network Inspection System Signature Version. | keyword | | windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | | windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Real-time Procection Status. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Real-time Protection Status. | keyword | ### Endpoint Exposed Services Information @@ -434,6 +412,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| device.name | | 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 | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | @@ -499,14 +478,17 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | version | -| service.description | The description text on the serivce. | keyword | +| service.description | The description text on the service. | keyword | | service.display_name | The human readable name of the service | keyword | | service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | | service.state | Current state of the service. | keyword | +| service.status | | 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 | | tychon.id | TYCHON unique host identifier. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | ### Endpoint Hard Drive Information @@ -527,9 +509,9 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| disk.adapter.serial_number | Disk Adatper Serial Number | keyword | +| disk.adapter.serial_number | Disk Adapter Serial Number | keyword | | disk.boot_from | OS booted from this disk | boolean | -| disk.bus_type | THe Disk Bus Type | keyword | +| disk.bus_type | The Disk Bus Type | keyword | | disk.clustered | Is the Disk Clustered | boolean | | disk.firmware_version | Disk Firmware version | keyword | | disk.health_status | Health status of the disk | keyword | @@ -543,7 +525,7 @@ The TYCHON script scans an endpoint's Hard Drive Configurations and returns info | disk.location.pci_slot | PCI Slot location | integer | | disk.manufacturer | The manufacturer of the Disk | keyword | | disk.model | The model of the disk | keyword | -| disk.name | The firendly name of the disk | keyword | +| disk.name | The friendly name of the disk | keyword | | disk.number | The number assigned to the disk | integer | | disk.number_of_partitions | Total number of partitions on the drive | integer | | disk.offline | Is the disk offline | boolean | @@ -632,6 +614,7 @@ The TYCHON script scans an endpoint's Hardware Configurations and returns inform | device.friendly_name | Device Friendly Name. | keyword | | device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | | device.manufacturer | The vendor name of the device manufacturer. | keyword | +| device.model.name | The human readable marketing name of the device model. | keyword | | device.name | Device Name. | keyword | | device.present | Device Present. | boolean | | device.status | Device Status. | keyword | @@ -729,6 +712,17 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | event.ufi.enabled | Event UFI Enabled. | boolean | | host.architecture | Operating system architecture. | keyword | | host.biossn | Host BIOS Serial Number. | keyword | +| host.cloud.compute.name | Host Cloud Compute Name. | keyword | +| host.cloud.compute.resource_group_name | Host Cloud Compute Resource Group Name. | keyword | +| host.cloud.compute.resource_id | Host Cloud Compute Resource Id. | keyword | +| host.cloud.compute.subscription_id | Host Cloud Compute Subscription Id. | keyword | +| host.cloud.compute.tags | Host Cloud Compute Tags. | keyword | +| host.cloud.compute.vm_id | Host Cloud Compute Vm Id. | keyword | +| host.cloud.hosted | Host Cloud Hosted. | boolean | +| host.cloud.network.mac_address | Host Cloud Network Mac Address. | keyword | +| host.cloud.network.public_ipv4 | Host Cloud Network Public Ipv4. | ip | +| host.cloud.network.public_ipv6 | Host Cloud Network Public Ipv6. | ip | +| host.compute.location | Host Compute Location. | keyword | | host.cpu.caption | Description of the CPU | text | | host.cpu.count | Total Number of CPUs on the system | integer | | 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 | @@ -752,10 +746,13 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.os.build | Host OS Build. | keyword | | host.os.description | Host OS Description. | text | | host.os.edition | The Edition of the Opearting System | keyword | +| host.os.extended_support_license | Host Os Extended Support License. | keyword | +| host.os.extended_support_license_expiration | Host Os Extended Support License Expiration. | date | | host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | +| host.os.suportted_plan | Host Os Suportted Plan. | keyword | | host.os.vendor | The vendor of the Operating System | keyword | | host.os.version | Operating system version as a raw string. | keyword | | host.security.antivirus.exists | Does the OS state that an AV program is installed | boolean | @@ -768,7 +765,7 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.tpm.version | What version of TPM is being used | 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 | | host.uptime | Seconds the host has been up. | long | -| host.virtualization_status | | keyword | +| host.virtualization_status | Host Virtualization Status. | keyword | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | | input.type | Input Type. | keyword | @@ -779,7 +776,7 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | version | -| tychon.definition.oval | What version of the TYCHON oval defitnions are currently on this endpoint | date | +| tychon.definition.oval | What version of the TYCHON oval definition are currently on this endpoint | date | | tychon.definition.stig | What version of the Benchmark checks are on this endpoint | date | | tychon.id | TYCHON unique host identifier. | keyword | | tychon.version.agent | The TYCHON Agent Version installed on the endpoint | version | @@ -986,11 +983,9 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | keyword | -| benchmark.count | Benchmark Summary Name List Item Count. | long | | benchmark.generated_utc | Benchmark UTC. | date | | benchmark.hash | Benchmark SHA256 Hash | keyword | | benchmark.id | Benchmark ID. | keyword | -| benchmark.list | Benchmark Summary Name List. | keyword | | benchmark.name | Benchmark Name. | keyword | | benchmark.title | Benchmark Title. | keyword | | benchmark.version | Benchmark Version. | keyword | @@ -1011,23 +1006,33 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | 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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | | host.hardware.bios.version | Host BIOS Version. | keyword | | host.hardware.cpu.caption | Host CPU Caption. | keyword | | host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | | host.hardware.owner | Host BIOS Owner. | keyword | | host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | | host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | | host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | | 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. If the OS you're dealing with is not listed as an expected value, 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 | | host.uptime | Seconds the host has been up. | long | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | @@ -1042,7 +1047,6 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | package.name | Package name | keyword | | package.reference | Home page or reference URL of the software in this package, if available. | keyword | | package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| rule.benchmark.id | Benchmark Rule ID. | keyword | | rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | | rule.benchmark.title | Benchmark Rule Title. | keyword | | rule.finding_id | Benchmark Rule Finding Identifier. | keyword | @@ -1054,6 +1058,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | rule.result | Benchmark Rule Results. | keyword | | rule.severity | Benchmark Severity Status. | keyword | | rule.stig_id | Stig rule id | keyword | +| rule.test_result | | keyword | | rule.title | Benchmark Rule Title. | keyword | | rule.vulnerability_id | Rule vulnerability id. | keyword | | rule.weight | Benchmark Rule Weight. | float | diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 447be463b4c..91fb3edc174 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.57 +version: 0.0.58 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. From 9a97d58e874dd893ad705fd45641a34c0d357954 Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Wed, 11 Oct 2023 18:06:41 -0400 Subject: [PATCH 62/65] Readme update --- packages/tychon/docs/README.md | 147 +++++++++++++++++---------------- 1 file changed, 74 insertions(+), 73 deletions(-) diff --git a/packages/tychon/docs/README.md b/packages/tychon/docs/README.md index a4fdb1d4e6f..ec787c21055 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -289,9 +289,9 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | | agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | | agent.version | Version of the agent. | keyword | -| crowdstrike.service.falcon.signature_version | | keyword | -| crowdstrike.service.falcon.status | | keyword | -| crowdstrike.service.falcon.version | | version | +| crowdstrike.service.falcon.signature_version | Crowdstrike Service Falcon Signature Version. | keyword | +| crowdstrike.service.falcon.status | Crowdstrike Service Falcon Status. | keyword | +| crowdstrike.service.falcon.version | Crowdstrike Service Falcon Version. | version | | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | @@ -301,7 +301,7 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | | elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | | elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | -| elastic.service.endpoint.ransomware | | keyword | +| elastic.service.endpoint.ransomware | Elastic Service Endpoint Ransomware. | keyword | | elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | | elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | | elastic_agent.id | Elastic Agent Id. | keyword | @@ -362,36 +362,36 @@ TYCHON scans the Endpoint's Windows Defender and returns protection status and v | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | version | | tags | List of keywords used to tag each event. | keyword | -| trellix.service.accm.status | Trellix Service Accum Status. | keyword | -| trellix.service.accm.version | Trellix Service Accum Version. | version | -| trellix.service.dlp.status | Trellix Service DLP Status. | keyword | -| trellix.service.dlp.version | Trellix Service DLP Version. | version | -| trellix.service.ens.signature_version | Trellix Service ENS Signature Version. | keyword | -| trellix.service.ens.status | Trellix Service ENS Signature status. | keyword | -| trellix.service.ens.version | Trellix Service ENS Signature Version. | version | -| trellix.service.ma.status | Trellix Service MA Status. | keyword | -| trellix.service.ma.version | Trellix Service MA Version. | version | -| trellix.service.pa.status | Trellix Service PA Status. | keyword | -| trellix.service.pa.version | Trellix Service PA Version. | version | -| trellix.service.rsd.status | Trellix Service RSD Status. | keyword | -| trellix.service.rsd.version | Trellix Service RSD Version. | version | +| trellix.service.accm.status | Trellix Service Accm Status. | keyword | +| trellix.service.accm.version | Trellix Service Accm Version. | version | +| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | +| trellix.service.dlp.version | Trellix Service Dlp Version. | version | +| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | +| trellix.service.ens.status | Trellix Service Ens Status. | keyword | +| trellix.service.ens.version | Trellix Service Ens Version. | version | +| trellix.service.ma.status | Trellix Service Ma Status. | keyword | +| trellix.service.ma.version | Trellix Service Ma Version. | version | +| trellix.service.pa.status | Trellix Service Pa Status. | keyword | +| trellix.service.pa.version | Trellix Service Pa Version. | version | +| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | +| trellix.service.rsd.version | Trellix Service Rsd Version. | version | | tychon.id | TYCHON unique host identifier. | keyword | -| windows_defender.service.antimalware.engine_version | Windows Defender Antimalware Engine Version. | keyword | -| windows_defender.service.antimalware.product_version | Windows Defender Antimalware Product Version. | keyword | -| windows_defender.service.antimalware.signature_version | Windows Defender Antimalware Signature Version. | keyword | -| windows_defender.service.antimalware.status | Windows Defender Antimalware Status. | keyword | -| windows_defender.service.antispyware.signature_version | Windows Defender Antispyware Signature Version. | keyword | -| windows_defender.service.antispyware.status | Windows Defender Antispyware Status. | keyword | -| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Antivirus Full Scan Version. | keyword | -| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Antivirus Signature Version. | keyword | -| windows_defender.service.antivirus.status | Windows Defender Antivirus Status. | keyword | -| windows_defender.service.behavior_monitor.status | Windows Defender Behavior Monitor Status. | keyword | -| windows_defender.service.ioav_protection.status | Windows Defender iOffice Antivirus Protection Status. | keyword | -| windows_defender.service.nis.engine_version | Windows Defender Network Inspection System Engine Version. | keyword | -| windows_defender.service.nis.signature_version | Windows Defender Network Inspection System Signature Version. | keyword | -| windows_defender.service.nis.status | Windows Defender Network Inspection System Status. | keyword | -| windows_defender.service.on_access_protection.status | Windows Defender On Access Protection Status. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Real-time Protection Status. | keyword | +| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | +| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | +| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | +| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | +| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | +| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | +| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | +| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | +| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | +| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | +| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | +| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | +| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | +| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | +| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | ### Endpoint Exposed Services Information @@ -412,7 +412,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | | data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.name | | keyword | +| device.name | Device Name. | 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 | | elastic_agent.id | Elastic Agent Id. | keyword | | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | @@ -482,7 +482,7 @@ The TYCHON script to scan Endpoint Exposed Services and returns information. | service.display_name | The human readable name of the service | keyword | | service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | | service.state | Current state of the service. | keyword | -| service.status | | keyword | +| service.status | Service Status. | 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 | @@ -693,23 +693,23 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | elastic_agent.snapshot | Elastic Agent snapshot. | boolean | | elastic_agent.version | Elastic Agent Version. | keyword | | error.message | Error message. | match_only_text | -| event.deviceguard.basevirtualizationsupport.available | Event Device Base Virtualization Support Available. | boolean | -| event.deviceguard.credentialguard.enabled | Event Device Credential Guard Enabled. | boolean | -| event.deviceguard.credentialguard.running | Event Device Credential Guard Running. | boolean | -| event.deviceguard.dmaprotection.available | Event Device | boolean | -| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Device Hypervisor Enforced Code Enabled. | boolean | -| event.deviceguard.hypervisorenforcedcodeint.running | Event Device Hypervisor Enforced Code running. | boolean | -| event.deviceguard.secureboot.available | Event Device Secure Boot Available. | boolean | -| event.deviceguard.securememoverwrite.available | Event Device Secure Memory Overwrite Available. | boolean | -| event.deviceguard.smmsecuritymigrations.available | Event Device SMM Security Migrations Available. | boolean | -| event.deviceguard.systemguardsecurelaunch.enabled | Event Device Guard System Guard Secure Launch Enabled. | boolean | -| event.deviceguard.systemguardsecurelaunch.running | Event Device Guard System Guard Secure Launch Running. | boolean | -| event.deviceguard.ueficodereadonly.available | Event Device Guard UEFI Code Readonly Availability. | boolean | -| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Device Guard User Mode Code Integrity Policy Enforcement. | keyword | -| event.deviceguard.version | Event Device Guard version. | keyword | -| event.deviceguard.virtualizationbasedsecurity.status | Event Device Guard Virtualization Based Security Status. | keyword | +| event.deviceguard.basevirtualizationsupport.available | Event Deviceguard Basevirtualizationsupport Available. | boolean | +| event.deviceguard.credentialguard.enabled | Event Deviceguard Credentialguard Enabled. | boolean | +| event.deviceguard.credentialguard.running | Event Deviceguard Credentialguard Running. | boolean | +| event.deviceguard.dmaprotection.available | Event Deviceguard Dmaprotection Available. | boolean | +| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Deviceguard Hypervisorenforcedcodeint Enabled. | boolean | +| event.deviceguard.hypervisorenforcedcodeint.running | Event Deviceguard Hypervisorenforcedcodeint Running. | boolean | +| event.deviceguard.secureboot.available | Event Deviceguard Secureboot Available. | boolean | +| event.deviceguard.securememoverwrite.available | Event Deviceguard Securememoverwrite Available. | boolean | +| event.deviceguard.smmsecuritymigrations.available | Event Deviceguard Smmsecuritymigrations Available. | boolean | +| event.deviceguard.systemguardsecurelaunch.enabled | Event Deviceguard Systemguardsecurelaunch Enabled. | boolean | +| event.deviceguard.systemguardsecurelaunch.running | Event Deviceguard Systemguardsecurelaunch Running. | boolean | +| event.deviceguard.ueficodereadonly.available | Event Deviceguard Ueficodereadonly Available. | boolean | +| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Deviceguard Usermodecodeintegrity Policyenforcement. | keyword | +| event.deviceguard.version | Event Deviceguard Version. | keyword | +| event.deviceguard.virtualizationbasedsecurity.status | Event Deviceguard Virtualizationbasedsecurity Status. | 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.ufi.enabled | Event UFI Enabled. | boolean | +| event.ufi.enabled | Event Ufi Enabled. | boolean | | host.architecture | Operating system architecture. | keyword | | host.biossn | Host BIOS Serial Number. | keyword | | host.cloud.compute.name | Host Cloud Compute Name. | keyword | @@ -723,8 +723,8 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.cloud.network.public_ipv4 | Host Cloud Network Public Ipv4. | ip | | host.cloud.network.public_ipv6 | Host Cloud Network Public Ipv6. | ip | | host.compute.location | Host Compute Location. | keyword | -| host.cpu.caption | Description of the CPU | text | -| host.cpu.count | Total Number of CPUs on the system | integer | +| host.cpu.caption | Host Cpu Caption. | text | +| host.cpu.count | Host Cpu Count. | integer | | 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.hardware.bios.name | Host BIOS Name. | keyword | | host.hardware.bios.version | Host BIOS Version. | keyword | @@ -738,14 +738,14 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.ipv4 | Host IPv4 addresses. | ip | | host.ipv6 | Host IPv6 addresses. | keyword | | 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.memory.size | Total RAM Size | long | -| host.motherboard.chipset | Chipset of the Motherboard | keyword | -| host.motherboard.serial_number | Serial Number of the Motherboard | keyword | +| host.memory.size | Host Memory Size. | long | +| host.motherboard.chipset | Host Motherboard Chipset. | keyword | +| host.motherboard.serial_number | Host Motherboard Serial Number. | keyword | | host.oem.manufacturer | Host OEM Manufacturer. | keyword | | host.oem.model | Host OEM Model. | keyword | | host.os.build | Host OS Build. | keyword | | host.os.description | Host OS Description. | text | -| host.os.edition | The Edition of the Opearting System | keyword | +| host.os.edition | Host Os Edition. | keyword | | host.os.extended_support_license | Host Os Extended Support License. | keyword | | host.os.extended_support_license_expiration | Host Os Extended Support License Expiration. | date | | host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | @@ -753,19 +753,20 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | host.os.name.text | Multi-field of `host.os.name`. | match_only_text | | host.os.organization | Host OS Organization. | keyword | | host.os.suportted_plan | Host Os Suportted Plan. | keyword | -| host.os.vendor | The vendor of the Operating System | keyword | +| host.os.vendor | Host Os Vendor. | keyword | | host.os.version | Operating system version as a raw string. | keyword | -| host.security.antivirus.exists | Does the OS state that an AV program is installed | boolean | -| host.security.antivirus.name | Product name the Operating System states is the AV program installed | keyword | -| host.security.antivirus.state | The Operating System state of the AV product | keyword | -| host.security.antivirus.status | The Operating System current status of the AV product it says is installed. | keyword | -| host.tpm.compliant | Is the endpoint compliant with TPM security settings | boolean | -| host.tpm.digest.id | What digest is being used by TPM | keyword | -| host.tpm.present | Is TPM module present on the operating system | boolean | -| host.tpm.version | What version of TPM is being used | keyword | +| host.security.antivirus.exists | Host Security Antivirus Exists. | boolean | +| host.security.antivirus.name | Host Security Antivirus Name. | keyword | +| host.security.antivirus.state | Host Security Antivirus State. | keyword | +| host.security.antivirus.status | Host Security Antivirus Status. | keyword | +| host.tpm.compliant | Host Tpm Compliant. | boolean | +| host.tpm.digest.id | Host Tpm Digest Id. | keyword | +| host.tpm.present | Host Tpm Present. | boolean | +| host.tpm.version | Host Tpm Version. | 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 | | host.uptime | Seconds the host has been up. | long | | host.virtualization_status | Host Virtualization Status. | keyword | +| host.virtulization_status | Host Virtulization Status. | keyword | | host.workgroup | Host Workgroup Network Name. | keyword | | id | TYCHON unique document identifier. | keyword | | input.type | Input Type. | keyword | @@ -776,11 +777,11 @@ The TYCHON script scans an endpoint's OS Configurations and returns information. | script.start | Scanner Start datetime. | date | | script.type | Scanner Script Type. | keyword | | script.version | Scanner Script Version. | version | -| tychon.definition.oval | What version of the TYCHON oval definition are currently on this endpoint | date | -| tychon.definition.stig | What version of the Benchmark checks are on this endpoint | date | +| tychon.definition.oval | Tychon Definition Oval. | date | +| tychon.definition.stig | Tychon Definition Stig. | date | | tychon.id | TYCHON unique host identifier. | keyword | -| tychon.version.agent | The TYCHON Agent Version installed on the endpoint | version | -| tychon.version.content | The TYCHON Agentless Version installed on the endpoint | version | +| tychon.version.agent | Tychon Version Agent. | version | +| tychon.version.content | Tychon Version Content. | version | ### Endpoint Network Adapters Information @@ -827,7 +828,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.mtu | MTU Size | integer | | host.adapter.ndis.version | NDIS Version | keyword | | host.adapter.subnet_bit | Subnet BIT | integer | -| host.adapter.virtual | Is adapter virutal | boolean | +| host.adapter.virtual | Is adapter virtual | boolean | | host.adapter.vlan.id | The VLAN ID | keyword | | host.adapter.wifi.authentication | The Authentication method used to connected to the WIFI Router | keyword | | host.adapter.wifi.band | The band used to connected to the WIFI Router | keyword | @@ -836,7 +837,7 @@ The TYCHON script scans an endpoint's Network Adapter Configurations and returns | host.adapter.wifi.cipher | The CIPHER used to connected to the WIFI Router | keyword | | host.adapter.wifi.enabled | Is WIFI Enabled | boolean | | host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | -| host.adapter.wifi.signal_percent | Signal strenth to connected WIFI Router | integer | +| host.adapter.wifi.signal_percent | Signal strength to connected WIFI Router | integer | | host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | | host.adapter.wins_server | The WINS Server attached to this adapter | ip | | host.biossn | Host BIOS Serial Number. | keyword | @@ -1058,7 +1059,7 @@ The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/X | rule.result | Benchmark Rule Results. | keyword | | rule.severity | Benchmark Severity Status. | keyword | | rule.stig_id | Stig rule id | keyword | -| rule.test_result | | keyword | +| rule.test_result | Rule Test Result. | keyword | | rule.title | Benchmark Rule Title. | keyword | | rule.vulnerability_id | Rule vulnerability id. | keyword | | rule.weight | Benchmark Rule Weight. | float | From c2d5a8c534eccaa86c510ef955c4bd9f3f70eb85 Mon Sep 17 00:00:00 2001 From: joeperuzzi <122561341+joeperuzzi@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:46:03 +0000 Subject: [PATCH 63/65] Removed old sample_event.json data --- .../data_stream/tychon_cve/sample_event.json | 8 --- .../data_stream/tychon_epp/sample_event.json | 13 ---- .../tychon_networkadapter/sample_event.json | 63 ------------------- .../data_stream/tychon_stig/sample_event.json | 13 ---- 4 files changed, 97 deletions(-) delete mode 100644 packages/tychon/data_stream/tychon_cve/sample_event.json delete mode 100644 packages/tychon/data_stream/tychon_epp/sample_event.json delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/sample_event.json delete mode 100644 packages/tychon/data_stream/tychon_stig/sample_event.json diff --git a/packages/tychon/data_stream/tychon_cve/sample_event.json b/packages/tychon/data_stream/tychon_cve/sample_event.json deleted file mode 100644 index cd07585f2b8..00000000000 --- a/packages/tychon/data_stream/tychon_cve/sample_event.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tychon.id": "564D3240-42F3-6AE9-5634-12D3BB4842E5", - "tychon.campaign": "bd31e9ba-1756-4fd5-b463-ec712ce4dd8e", - "tychon.realm": "TYC742586751BDC4383A8388F974883333E", - "vulnerability.id": "CVE-2022-25315", - "event.outcome": "fail", - "event.created": "2023-02-07 16:28:07" -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/sample_event.json b/packages/tychon/data_stream/tychon_epp/sample_event.json deleted file mode 100644 index 4b3beb399a0..00000000000 --- a/packages/tychon/data_stream/tychon_epp/sample_event.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", - "package.product": "MicrosoftDefenderAntivirus", - "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", - "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", - "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", - "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", - "package.revision": 200, - "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", - "": "Succeeded", - "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", - "package.installed": "2023-01-3009:21:18" -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/sample_event.json b/packages/tychon/data_stream/tychon_networkadapter/sample_event.json deleted file mode 100644 index 19c53d20731..00000000000 --- a/packages/tychon/data_stream/tychon_networkadapter/sample_event.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" -} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/sample_event.json b/packages/tychon/data_stream/tychon_stig/sample_event.json deleted file mode 100644 index 4b3beb399a0..00000000000 --- a/packages/tychon/data_stream/tychon_stig/sample_event.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", - "package.product": "MicrosoftDefenderAntivirus", - "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", - "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", - "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", - "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", - "package.revision": 200, - "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", - "": "Succeeded", - "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", - "package.installed": "2023-01-3009:21:18" -} \ No newline at end of file From 1fbcc66cb37d7d83889903c49c6cbafc9035e00f Mon Sep 17 00:00:00 2001 From: Bruce Hodge Date: Mon, 16 Oct 2023 08:36:57 -0400 Subject: [PATCH 64/65] CVE Module Initial commit of modularized components for code review --- .../tychon/build/packages/tychon-0.0.58.zip | Bin 0 -> 2358090 bytes .../build/packages/tychon/0.0.58/LICENSE.txt | 93 ++ .../packages/tychon/0.0.58/changelog.yml | 5 + .../tychon_arp}/agent/stream/stream.yml.hbs | 38 +- .../elasticsearch/ingest_pipeline/default.yml | 132 +- .../data_stream/tychon_arp/fields/agent.yml | 0 .../tychon_arp/fields/base-fields.yml | 0 .../data_stream/tychon_arp/fields/ecs.yml | 197 +++ .../data_stream/tychon_arp/fields/fields.yml | 0 .../data_stream/tychon_arp/manifest.yml | 0 .../tychon_cpu}/agent/stream/stream.yml.hbs | 38 +- .../elasticsearch/ingest_pipeline/default.yml | 174 +-- .../data_stream/tychon_cpu/fields/agent.yml | 0 .../tychon_cpu/fields/base-fields.yml | 0 .../data_stream/tychon_cpu/fields/ecs.yml | 176 +++ .../data_stream/tychon_cpu/fields/fields.yml | 0 .../data_stream/tychon_cpu/manifest.yml | 0 .../tychon_cve}/agent/stream/stream.yml.hbs | 0 .../elasticsearch/ingest_pipeline/default.yml | 108 ++ .../data_stream/tychon_cve}/fields/agent.yml | 0 .../tychon_cve}/fields/base-fields.yml | 0 .../data_stream/tychon_cve/fields/ecs.yml | 228 ++++ .../data_stream/tychon_cve}/fields/fields.yml | 0 .../data_stream/tychon_cve/manifest.yml | 33 + .../data_stream/tychon_cve/sample_event.json | 8 + .../tychon_epp/agent/stream/stream.yml.hbs | 44 +- .../elasticsearch/ingest_pipeline/default.yml | 132 +- .../data_stream/tychon_epp}/fields/agent.yml | 0 .../tychon_epp}/fields/base-fields.yml | 0 .../data_stream/tychon_epp/fields/ecs.yml | 197 +++ .../data_stream/tychon_epp/fields/fields.yml | 0 .../data_stream/tychon_epp/manifest.yml | 0 .../data_stream/tychon_epp/sample_event.json | 13 + .../agent/stream/stream.yml.hbs | 38 +- .../elasticsearch/ingest_pipeline/default.yml | 154 +-- .../tychon_exposedservice}/fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../tychon_exposedservice/fields/ecs.yml | 239 ++++ .../tychon_exposedservice/fields/fields.yml | 0 .../tychon_exposedservice/manifest.yml | 0 .../agent/stream/stream.yml.hbs | 38 +- .../elasticsearch/ingest_pipeline/default.yml | 140 +- .../tychon_harddrive}/fields/agent.yml | 0 .../tychon_harddrive}/fields/base-fields.yml | 0 .../tychon_harddrive/fields/ecs.yml | 176 +++ .../tychon_harddrive/fields/fields.yml | 0 .../data_stream/tychon_harddrive/manifest.yml | 0 .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 138 +- .../tychon_hardware}/fields/agent.yml | 0 .../tychon_hardware}/fields/base-fields.yml | 0 .../tychon_hardware/fields/ecs.yml | 185 +++ .../tychon_hardware/fields/fields.yml | 0 .../data_stream/tychon_hardware/manifest.yml | 0 .../tychon_host/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 182 +-- .../data_stream/tychon_host}/fields/agent.yml | 0 .../tychon_host}/fields/base-fields.yml | 0 .../data_stream/tychon_host/fields/ecs.yml | 90 ++ .../data_stream/tychon_host/fields/fields.yml | 0 .../data_stream/tychon_host/manifest.yml | 0 .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 228 ++-- .../tychon_networkadapter}/fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../tychon_networkadapter/fields/ecs.yml | 98 ++ .../tychon_networkadapter/fields/fields.yml | 0 .../tychon_networkadapter/manifest.yml | 0 .../tychon_networkadapter/sample_event.json | 63 + .../tychon_patch/agent/stream/stream.yml.hbs | 23 + .../elasticsearch/ingest_pipeline/default.yml | 0 .../tychon_patch}/fields/agent.yml | 0 .../tychon_patch}/fields/base-fields.yml | 0 .../data_stream/tychon_patch/fields/ecs.yml | 228 ++++ .../tychon_patch/fields/fields.yml | 27 + .../data_stream/tychon_patch/manifest.yml | 0 .../agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 222 ++-- .../fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../tychon_softwareinventory/fields/ecs.yml | 202 +++ .../fields/fields.yml | 0 .../tychon_softwareinventory/manifest.yml | 0 .../tychon_stig/agent/stream/stream.yml.hbs | 42 +- .../elasticsearch/ingest_pipeline/default.yml | 154 +-- .../data_stream/tychon_stig}/fields/agent.yml | 0 .../tychon_stig}/fields/base-fields.yml | 0 .../data_stream/tychon_stig/fields/ecs.yml | 203 +++ .../data_stream/tychon_stig/fields/fields.yml | 0 .../data_stream/tychon_stig/manifest.yml | 0 .../data_stream/tychon_stig/sample_event.json | 13 + .../tychon_volume/agent/stream/stream.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 196 +-- .../tychon_volume/fields/agent.yml | 110 ++ .../tychon_volume/fields/base-fields.yml | 12 + .../data_stream/tychon_volume/fields/ecs.yml | 176 +++ .../tychon_volume/fields/fields.yml | 0 .../data_stream/tychon_volume/manifest.yml | 0 .../packages/tychon/0.0.58/docs/README.md | 1166 +++++++++++++++++ .../transform/arp/fields/agent.yml | 0 .../transform/arp/fields/base-fields.yml | 0 .../transform/arp/fields/ecs.yml | 192 +++ .../transform/arp/fields/fields.yml | 0 .../elasticsearch/transform/arp/manifest.yml | 0 .../elasticsearch/transform/arp/transform.yml | 0 .../transform/cpu/fields/agent.yml | 0 .../transform/cpu/fields/base-fields.yml | 0 .../transform/cpu/fields/ecs.yml | 171 +++ .../transform/cpu/fields/fields.yml | 0 .../elasticsearch/transform/cpu/manifest.yml | 0 .../elasticsearch/transform/cpu/transform.yml | 0 .../transform/cve_linux}/fields/agent.yml | 0 .../cve_linux}/fields/base-fields.yml | 0 .../transform/cve_linux/fields/ecs.yml | 150 +++ .../transform/cve_linux/fields/fields.yml | 70 + .../transform/cve_linux}/manifest.yml | 0 .../transform/cve_linux/transform.yml | 26 + .../cve_windows_2019}/fields/agent.yml | 0 .../cve_windows_2019}/fields/base-fields.yml | 0 .../transform/cve_windows_2019/fields/ecs.yml | 150 +++ .../cve_windows_2019/fields/fields.yml | 69 + .../transform/cve_windows_2019}/manifest.yml | 0 .../transform/cve_windows_2019/transform.yml | 26 + .../cve_windows_2020}/fields/agent.yml | 0 .../cve_windows_2020}/fields/base-fields.yml | 0 .../transform/cve_windows_2020/fields/ecs.yml | 150 +++ .../cve_windows_2020/fields/fields.yml | 69 + .../transform/cve_windows_2020}/manifest.yml | 0 .../transform/cve_windows_2020/transform.yml | 26 + .../cve_windows_2021/fields/agent.yml | 192 +++ .../cve_windows_2021/fields/base-fields.yml | 21 + .../transform/cve_windows_2021/fields/ecs.yml | 150 +++ .../cve_windows_2021/fields/fields.yml | 69 + .../transform/cve_windows_2021}/manifest.yml | 0 .../transform/cve_windows_2021/transform.yml | 26 + .../cve_windows_2022/fields/agent.yml | 192 +++ .../cve_windows_2022/fields/base-fields.yml | 21 + .../transform/cve_windows_2022/fields/ecs.yml | 150 +++ .../cve_windows_2022/fields/fields.yml | 69 + .../transform/cve_windows_2022}/manifest.yml | 0 .../transform/cve_windows_2022/transform.yml | 26 + .../cve_windows_2023/fields/agent.yml | 192 +++ .../cve_windows_2023/fields/base-fields.yml | 21 + .../transform/cve_windows_2023/fields/ecs.yml | 150 +++ .../cve_windows_2023/fields/fields.yml | 69 + .../transform/cve_windows_2023}/manifest.yml | 0 .../transform/cve_windows_2023/transform.yml | 26 + .../cve_windows_20xx/fields/agent.yml | 192 +++ .../cve_windows_20xx/fields/base-fields.yml | 21 + .../transform/cve_windows_20xx/fields/ecs.yml | 150 +++ .../cve_windows_20xx/fields/fields.yml | 69 + .../transform/cve_windows_20xx}/manifest.yml | 0 .../transform/cve_windows_20xx/transform.yml | 27 + .../transform/epp/fields/agent.yml | 192 +++ .../transform/epp/fields/base-fields.yml | 21 + .../transform/epp/fields/ecs.yml | 124 ++ .../transform/epp/fields/fields.yml | 0 .../elasticsearch/transform/epp}/manifest.yml | 0 .../elasticsearch/transform/epp/transform.yml | 0 .../exposed_service/fields/agent.yml | 0 .../exposed_service/fields/base-fields.yml | 0 .../transform/exposed_service/fields/ecs.yml | 227 ++++ .../exposed_service/fields/fields.yml | 0 .../transform/exposed_service}/manifest.yml | 0 .../transform/exposed_service/transform.yml | 0 .../transform/hard_drive/fields/agent.yml | 0 .../hard_drive/fields/base-fields.yml | 0 .../transform/hard_drive/fields/ecs.yml | 171 +++ .../transform/hard_drive/fields/fields.yml | 0 .../transform/hard_drive}/manifest.yml | 0 .../transform/hard_drive/transform.yml | 0 .../transform/hardware/fields/agent.yml | 0 .../transform/hardware/fields/base-fields.yml | 0 .../transform/hardware/fields/ecs.yml | 177 +++ .../transform/hardware/fields/fields.yml | 0 .../transform/hardware}/manifest.yml | 0 .../transform/hardware/transform.yml | 0 .../transform/host_info/fields/agent.yml | 0 .../host_info/fields/base-fields.yml | 0 .../transform/host_info/fields/ecs.yml | 81 ++ .../transform/host_info/fields/fields.yml | 0 .../transform/host_info}/manifest.yml | 0 .../transform/host_info/transform.yml | 0 .../network_adapter/fields/agent.yml | 0 .../network_adapter/fields/base-fields.yml | 0 .../transform/network_adapter/fields/ecs.yml | 93 ++ .../network_adapter/fields/fields.yml | 0 .../transform/network_adapter/manifest.yml | 12 + .../transform/network_adapter/transform.yml | 0 .../fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../fields/ecs.yml | 198 +++ .../fields/fields.yml | 0 .../software_inventory_installer/manifest.yml | 12 + .../transform.yml | 0 .../software_inventory_rpm/fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../software_inventory_rpm/fields/ecs.yml | 198 +++ .../software_inventory_rpm/fields/fields.yml | 0 .../software_inventory_rpm/manifest.yml | 12 + .../software_inventory_rpm/transform.yml | 0 .../software_inventory_store/fields/agent.yml | 0 .../fields/base-fields.yml | 0 .../software_inventory_store/fields/ecs.yml | 198 +++ .../fields/fields.yml | 0 .../software_inventory_store/manifest.yml | 12 + .../software_inventory_store/transform.yml | 0 .../transform/stig/fields/agent.yml | 192 +++ .../transform/stig/fields/base-fields.yml | 21 + .../transform/stig/fields/ecs.yml | 127 ++ .../transform/stig/fields/fields.yml | 0 .../elasticsearch/transform/stig/manifest.yml | 12 + .../transform/stig/transform.yml | 0 .../transform/stig_linux/fields/agent.yml | 192 +++ .../stig_linux/fields/base-fields.yml | 21 + .../transform/stig_linux/fields/ecs.yml | 127 ++ .../transform/stig_linux/fields/fields.yml | 0 .../transform/stig_linux/manifest.yml | 12 + .../transform/stig_linux/transform.yml | 0 .../transform/volume/fields/agent.yml | 0 .../transform/volume/fields/base-fields.yml | 0 .../transform/volume/fields/ecs.yml | 171 +++ .../transform/volume/fields/fields.yml | 0 .../transform/volume/manifest.yml | 12 + .../transform/volume/transform.yml | 0 .../tychon/0.0.58/img/TYCHONScreenShot_1.png | Bin 0 -> 201501 bytes .../tychon/0.0.58/img/TYCHONScreenShot_2.png | Bin 0 -> 175239 bytes .../packages/tychon/0.0.58/img/TychonLogo.svg | 59 + .../tychon/0.0.58/img/TychonScreenshot.png | Bin 0 -> 337235 bytes .../tychon/0.0.58/img/tychon-color.png | Bin 0 -> 8355 bytes ...db40-d137-11e9-a2af-693b633cf871-stig.json | 0 ...11ee-9610-15dee918f31a-exposedservice.json | 0 ...-4597-11ee-83e4-c92ed141b9e5-hardware.json | 0 ...11ee-83e4-c92ed141b9e5-networkadapter.json | 0 ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 0 ...e-9610-15dee918f31a-softwareinventory.json | 0 ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 116 ++ ...3dbd-11ee-9610-15dee918f31a-harddrive.json | 0 ...11ee-8557-a7ea91123f8b-networkadapter.json | 0 ...bf50-3dbf-11ee-9610-15dee918f31a-host.json | 0 ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 136 ++ ...3d41-11ee-9610-15dee918f31a-harddrive.json | 0 ...58ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json | 0 ...-3e02-11ee-9610-15dee918f31a-hardware.json | 0 ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 0 ...12af0-3d4c-11ee-9610-15dee918f31a-arp.json | 0 ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 0 ...11ee-9610-15dee918f31a-exposedservice.json | 0 ...bb1a0-112a-11ee-af86-538da1394f27-log.json | 0 ...6a20-3d47-11ee-9610-15dee918f31a-host.json | 0 .../02acfb43-5302-4331-bb10-4174171f6091.json | 0 .../2dc584bc-c446-4150-b561-1415a45ebe87.json | 0 .../37150b25-1c34-494e-8214-b58a5a716c95.json | 0 .../39822d3a-870f-4a82-8928-e9264b4d1a31.json | 0 .../41d172ee-a0b8-4b20-9c93-6482f0abbdec.json | 0 .../4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json | 0 .../5be62502-2bab-4d66-97ff-d9373963c50d.json | 22 + .../62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json | 0 .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 0 .../6ce8198c-8c52-4f20-8e68-b566ebf84b18.json | 0 .../78931842-dc88-45d7-a6ee-d79fb9f615bd.json | 24 + .../7d972a32-d117-4963-a7bf-58fc65fb1ee8.json | 0 .../8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json | 0 .../9267bb1b-cf22-4417-8cfb-6606848140a7.json | 0 .../a264bf8d-abc3-4789-9f4c-bf76397e06ba.json | 0 .../a57870ef-07d8-4d12-a067-8c66eefd10ca.json | 0 .../a61d021d-d78f-485d-93b2-8075149794af.json | 0 .../b006641c-69de-48bd-9a5a-1125f0da1c0b.json | 0 .../bb5226cd-c099-46d2-bb71-0257232c7d82.json | 0 .../c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json | 0 .../df491fbb-3f09-4ab0-995a-c2c549a9bc21.json | 0 .../e0015160-781d-4885-9ae6-04230d059bfb.json | 0 .../e886429e-9532-4f44-bb36-6465fe760866.json | 0 .../eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json | 0 .../ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json | 0 .../f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json | 0 ...-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json | 203 +++ .../10359860-1139-11ee-af86-538da1394f27.json | 54 + .../2140f083-6e39-4df4-ba41-aa1f41cb81b8.json | 0 .../2e5a7e20-1137-11ee-af86-538da1394f27.json | 0 .../2e9c9ac0-1138-11ee-af86-538da1394f27.json | 54 + .../55faa99b-ce17-4a41-9f63-4a7439e3543a.json | 0 .../5be38411-3902-4686-8209-1ab75a6d3847.json | 60 + .../6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json | 0 .../6839b82b-22bf-418f-a86b-7e7a4cd074d7.json | 0 .../6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json | 0 .../867e3450-1139-11ee-af86-538da1394f27.json | 0 .../934a39a0-1138-11ee-af86-538da1394f27.json | 54 + .../bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json | 0 .../beeea32f-31ba-4be8-9e2c-14de47280aac.json | 56 + .../c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json | 0 .../ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json | 0 .../d0d735ed-08fe-4393-9aa6-120236995152.json | 0 ...-026431f0-3de5-11ee-9610-15dee918f31a.json | 17 + ...-11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 + ...-27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 + ...-39b55820-10f2-11ee-af86-538da1394f27.json | 17 + ...-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 + ...-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 + ...-7f851220-3d41-11ee-9610-15dee918f31a.json | 17 + ...-9c222660-1100-11ee-af86-538da1394f27.json | 17 + ...-a3922360-3de6-11ee-9610-15dee918f31a.json | 17 + ...-bae88930-1133-11ee-af86-538da1394f27.json | 17 + ...-c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 + ...-e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 + ...-f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 + ...-837878a0-c3cb-11eb-8956-0b1a70e695fd.json | 0 ...-d954bdb0-3298-11ec-b058-cf4fefc29658.json | 0 ...-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json | 0 ...-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 + .../build/packages/tychon/0.0.58/manifest.yml | 43 + .../_dev/test/pipeline/test-arp.json | 51 - .../test/pipeline/test-arp.json-config.yml | 3 - .../test/pipeline/test-arp.json-expected.json | 85 -- .../data_stream/tychon_arp/fields/ecs.yml | 78 -- .../_dev/test/pipeline/test-cpu.json | 53 - .../test/pipeline/test-cpu.json-config.yml | 3 - .../test/pipeline/test-cpu.json-expected.json | 90 -- .../data_stream/tychon_cpu/fields/ecs.yml | 70 - .../_dev/test/pipeline/test-epp.json | 79 -- .../test/pipeline/test-epp.json-config.yml | 3 - .../test/pipeline/test-epp.json-expected.json | 162 --- .../data_stream/tychon_epp/fields/ecs.yml | 80 -- .../test/pipeline/test-exposedservice.json | 54 - .../test-exposedservice.json-config.yml | 3 - .../test-exposedservice.json-expected.json | 102 -- .../tychon_exposedservice/fields/ecs.yml | 96 -- .../_dev/test/pipeline/test-harddrive.json | 69 - .../pipeline/test-harddrive.json-config.yml | 3 - .../test-harddrive.json-expected.json | 110 -- .../tychon_harddrive/fields/ecs.yml | 70 - .../_dev/test/pipeline/test-hardware.json | 52 - .../pipeline/test-hardware.json-config.yml | 3 - .../pipeline/test-hardware.json-expected.json | 89 -- .../agent/stream/stream.yml.hbs | 20 - .../tychon_hardware/fields/ecs.yml | 76 -- .../_dev/test/pipeline/test-host.json | 81 -- .../test/pipeline/test-host.json-config.yml | 3 - .../pipeline/test-host.json-expected.json | 160 --- .../tychon_host/agent/stream/stream.yml.hbs | 20 - .../data_stream/tychon_host/fields/ecs.yml | 36 - .../test/pipeline/test-networkadapter.json | 80 -- .../test-networkadapter.json-config.yml | 3 - .../test-networkadapter.json-expected.json | 128 -- .../agent/stream/stream.yml.hbs | 20 - .../tychon_networkadapter/fields/ecs.yml | 36 - .../_dev/test/pipeline/test-patch.json | 56 - .../test/pipeline/test-patch.json-config.yml | 3 - .../pipeline/test-patch.json-expected.json | 98 -- .../data_stream/tychon_patch/fields/ecs.yml | 94 -- .../test/pipeline/test-softwareinventory.json | 60 - .../test-softwareinventory.json-config.yml | 3 - .../test-softwareinventory.json-expected.json | 97 -- .../agent/stream/stream.yml.hbs | 20 - .../tychon_softwareinventory/fields/ecs.yml | 86 -- .../_dev/test/pipeline/test-stig.json | 67 - .../test/pipeline/test-stig.json-config.yml | 3 - .../pipeline/test-stig.json-expected.json | 115 -- .../data_stream/tychon_stig/fields/ecs.yml | 84 -- .../_dev/test/pipeline/test-volumes.json | 61 - .../pipeline/test-volumes.json-config.yml | 3 - .../pipeline/test-volumes.json-expected.json | 100 -- .../tychon_volume/agent/stream/stream.yml.hbs | 20 - .../data_stream/tychon_volume/fields/ecs.yml | 70 - .../transform/arp/fields/ecs.yml | 78 -- .../transform/cpu/fields/ecs.yml | 70 - .../transform/epp/fields/ecs.yml | 52 - .../transform/exposed_service/fields/ecs.yml | 94 -- .../transform/hard_drive/fields/ecs.yml | 70 - .../transform/hardware/fields/ecs.yml | 74 -- .../transform/host_info/fields/ecs.yml | 32 - .../transform/network_adapter/fields/ecs.yml | 36 - .../fields/ecs.yml | 87 -- .../software_inventory_rpm/fields/ecs.yml | 87 -- .../software_inventory_store/fields/ecs.yml | 87 -- .../transform/stig/fields/ecs.yml | 54 - .../transform/stig_linux/fields/ecs.yml | 54 - .../transform/volume/fields/ecs.yml | 70 - 378 files changed, 11896 insertions(+), 5101 deletions(-) create mode 100644 packages/tychon/build/packages/tychon-0.0.58.zip create mode 100644 packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt create mode 100644 packages/tychon/build/packages/tychon/0.0.58/changelog.yml rename packages/tychon/{data_stream/tychon_cpu => build/packages/tychon/0.0.58/data_stream/tychon_arp}/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_arp/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_arp/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_arp/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_arp/manifest.yml (100%) rename packages/tychon/{data_stream/tychon_harddrive => build/packages/tychon/0.0.58/data_stream/tychon_cpu}/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_cpu/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_cpu/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_cpu/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_cpu/manifest.yml (100%) rename packages/tychon/{data_stream/tychon_patch => build/packages/tychon/0.0.58/data_stream/tychon_cve}/agent/stream/stream.yml.hbs (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml rename packages/tychon/{data_stream/tychon_epp => build/packages/tychon/0.0.58/data_stream/tychon_cve}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_epp => build/packages/tychon/0.0.58/data_stream/tychon_cve}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml rename packages/tychon/{data_stream/tychon_patch => build/packages/tychon/0.0.58/data_stream/tychon_cve}/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_epp/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_exposedservice => build/packages/tychon/0.0.58/data_stream/tychon_epp}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_exposedservice => build/packages/tychon/0.0.58/data_stream/tychon_epp}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_epp/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_epp/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_harddrive => build/packages/tychon/0.0.58/data_stream/tychon_exposedservice}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_harddrive => build/packages/tychon/0.0.58/data_stream/tychon_exposedservice}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_exposedservice/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_exposedservice/manifest.yml (100%) rename packages/tychon/{data_stream/tychon_arp => build/packages/tychon/0.0.58/data_stream/tychon_harddrive}/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_hardware => build/packages/tychon/0.0.58/data_stream/tychon_harddrive}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_hardware => build/packages/tychon/0.0.58/data_stream/tychon_harddrive}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_harddrive/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_harddrive/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_host => build/packages/tychon/0.0.58/data_stream/tychon_hardware}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_host => build/packages/tychon/0.0.58/data_stream/tychon_hardware}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_hardware/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_hardware/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_networkadapter => build/packages/tychon/0.0.58/data_stream/tychon_host}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_networkadapter => build/packages/tychon/0.0.58/data_stream/tychon_host}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_host/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_host/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml (96%) rename packages/tychon/{data_stream/tychon_patch => build/packages/tychon/0.0.58/data_stream/tychon_networkadapter}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_patch => build/packages/tychon/0.0.58/data_stream/tychon_networkadapter}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_networkadapter/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_networkadapter/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml (100%) rename packages/tychon/{data_stream/tychon_softwareinventory => build/packages/tychon/0.0.58/data_stream/tychon_patch}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_softwareinventory => build/packages/tychon/0.0.58/data_stream/tychon_patch}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_patch/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_stig => build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_stig => build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_softwareinventory/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_softwareinventory/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_stig/agent/stream/stream.yml.hbs (94%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml (95%) rename packages/tychon/{data_stream/tychon_volume => build/packages/tychon/0.0.58/data_stream/tychon_stig}/fields/agent.yml (100%) rename packages/tychon/{data_stream/tychon_volume => build/packages/tychon/0.0.58/data_stream/tychon_stig}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_stig/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_stig/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml (95%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_volume/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/data_stream/tychon_volume/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/docs/README.md rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/arp/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/arp/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/arp/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/arp/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/arp/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/cpu/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/cpu/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/cpu/fields/fields.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/cpu/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/cpu/transform.yml (100%) rename packages/tychon/{elasticsearch/transform/epp => build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux}/fields/agent.yml (100%) rename packages/tychon/{elasticsearch/transform/epp => build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml rename packages/tychon/{elasticsearch/transform/epp => build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml rename packages/tychon/{elasticsearch/transform/stig => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019}/fields/agent.yml (100%) rename packages/tychon/{elasticsearch/transform/stig => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml rename packages/tychon/{elasticsearch/transform/exposed_service => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml rename packages/tychon/{elasticsearch/transform/stig_linux => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020}/fields/agent.yml (100%) rename packages/tychon/{elasticsearch/transform/stig_linux => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml rename packages/tychon/{elasticsearch/transform/hard_drive => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml rename packages/tychon/{elasticsearch/transform/hardware => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml rename packages/tychon/{elasticsearch/transform/host_info => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml rename packages/tychon/{elasticsearch/transform/network_adapter => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml rename packages/tychon/{elasticsearch/transform/software_inventory_installer => build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx}/manifest.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/epp/fields/fields.yml (100%) rename packages/tychon/{elasticsearch/transform/software_inventory_rpm => build/packages/tychon/0.0.58/elasticsearch/transform/epp}/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/epp/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/exposed_service/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/exposed_service/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/exposed_service/fields/fields.yml (100%) rename packages/tychon/{elasticsearch/transform/software_inventory_store => build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service}/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/exposed_service/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hard_drive/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hard_drive/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hard_drive/fields/fields.yml (100%) rename packages/tychon/{elasticsearch/transform/stig => build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive}/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hard_drive/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hardware/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hardware/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hardware/fields/fields.yml (100%) rename packages/tychon/{elasticsearch/transform/stig_linux => build/packages/tychon/0.0.58/elasticsearch/transform/hardware}/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/hardware/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/host_info/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/host_info/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/host_info/fields/fields.yml (100%) rename packages/tychon/{elasticsearch/transform/volume => build/packages/tychon/0.0.58/elasticsearch/transform/host_info}/manifest.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/host_info/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/network_adapter/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/network_adapter/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/network_adapter/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/network_adapter/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_installer/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_installer/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_installer/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_rpm/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_rpm/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_rpm/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_store/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_store/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_store/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/software_inventory_store/transform.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/stig/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/stig/transform.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/stig_linux/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/stig_linux/transform.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/volume/fields/agent.yml (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/volume/fields/base-fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/volume/fields/fields.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml rename packages/tychon/{ => build/packages/tychon/0.0.58}/elasticsearch/transform/volume/transform.yml (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png create mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png create mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg create mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png create mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json (100%) rename packages/tychon/{ => build/packages/tychon/0.0.58}/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json (100%) create mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json create mode 100644 packages/tychon/build/packages/tychon/0.0.58/manifest.yml delete mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json delete mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_arp/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json delete mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_cpu/_dev/test/pipeline/test-cpu.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_cpu/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_epp/_dev/test/pipeline/test-epp.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_epp/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json delete mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_exposedservice/_dev/test/pipeline/test-exposedservice.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_exposedservice/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json delete mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_harddrive/_dev/test/pipeline/test-harddrive.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_harddrive/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json delete mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_hardware/_dev/test/pipeline/test-hardware.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_hardware/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_hardware/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json delete mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_host/_dev/test/pipeline/test-host.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_host/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_host/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/_dev/test/pipeline/test-networkadapter.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_networkadapter/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json delete mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_patch/_dev/test/pipeline/test-patch.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_patch/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json delete mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_softwareinventory/_dev/test/pipeline/test-softwareinventory.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_softwareinventory/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json delete mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_stig/_dev/test/pipeline/test-stig.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_stig/fields/ecs.yml delete mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json delete mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-config.yml delete mode 100644 packages/tychon/data_stream/tychon_volume/_dev/test/pipeline/test-volumes.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_volume/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_volume/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/arp/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cpu/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/epp/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/exposed_service/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/hard_drive/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/hardware/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/host_info/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/network_adapter/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/software_inventory_installer/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/software_inventory_store/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/stig/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/stig_linux/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/volume/fields/ecs.yml diff --git a/packages/tychon/build/packages/tychon-0.0.58.zip b/packages/tychon/build/packages/tychon-0.0.58.zip new file mode 100644 index 0000000000000000000000000000000000000000..1e0012287edbde2403d92ff590129332d72bc3ff GIT binary patch literal 2358090 zcmeFaYiuN0mLA6SXth!;dX0rG7?xo;#MxCnrZUNTS8;cChfT6n#MEn=?CzQE?ny>w zMv^g=nUNilNfx`NR{pbC!LT90kOf-;WWx&x_Ambv7Sj3!7?9Vnf2?5`HVngn49k{n zc_sg}Y{=ht&OPzUNM?{#UE9+WoM9I;GVZzeo_p@O=bn4ccb|Xv8-MJdUE$B~{EhE^ zEPuHF{KCqgT$!Hsj-qjEy}jPPbARo_{hwX=nOi@9Ie0FG{zOHge}1meC0(aerM<>)3E0~4tv2k3A~%__4h8lcj?0q9&dO@)9EDHSX(W>t?=+fu{$U&h-Zb+3 z;n0f)^2RiXM~UZ;`(7^^_rqxzjT5gM45O2_Bfk|*PUG<&L zVm@(INSkK~Ug)7M*S&t2OyjUSo8rmHe}QiM$9_0e8tlp>4kqZe*AL?G*q@>ytocP^ zozB=2j=jL|9eF(;V}aKEDCkYWq4zG4d&6)PPEnjJIg3M&v-ilGAAr>({}jEMq9xHW zx?30wj==ONjL}X%o`wO4R{X3MDsC7#$9{y@BYjG7KSSJ`@zVkXrlE_{xD3KqLT^U z)Jfo{bMd)91&>kdSu;>;zzEI8m;l1QiInqtLqEi9&xVLY=a1jJlor8*ZqSQH6iQA& zv?Towe{;57_l|rF&=zGe=73XN*lz02WL^ zzQu+uoPxq=aLu)^?d>0BpS*sAE^r3+AWg!A_b!#W0GXlW^?VKwde;pgS%VnLQw3-g z^}_)MK{WtaD=|WGT1iR*bdRWUNi=GkNn|)ttW%tyW}`z%gj@oP)>o)lBtIkk_teW zg)T>9=<%b-I}EVepdnZcGG;*1+*GtN@dj};Vr5t#hRIy991o-oZUAM_Re2a8T|Gx^ zQ8>oR27M0UlhG9k0b9`)DspW>PBB3tjlwZU%_$5II(e$gvlBm^O-3j`Xc=p~XLufa zA8;AA*`E$zKN3O5^ctQ@tK5u0bEFj5N2ME~K=2YvW0K%KS+mjb5VOC`3D^|-5RGsw zl22vhcq8*9XI796$6+*-_gv?#Sx^g<7Z$;^SOJ9NYU;jWAR6a zz-{5%t#z;OpF-RQd<4Q+FM0tj3Xw`3RW}<_zDsAiP+xHnjyd39bR10M$j54XEOYEp zbP_-@K})LM&<2reHZ!$OvN1=ADu6x0P&;je^}W=cjD)mA6`U}|nkZ{b%HR^?$*u{Q z?^AH05GVnViKh`PK))N(R^X#+n~68@p%vYV;-8SU(MfWhy-00OszNR&T;gEKz)*>1 zToq0|Sf;cbF^NSTIP+77t1#Ts3yKgl^bk$Zg^7bf1w&GOe*}{WwZtKfUo6Y0LuaE2 zBo}y6r9|RS2sd?0NoV92%@-l~K&xpO9D>KPc($)OW^4z8aIEGspX`J1wQDAy*RE0K zSs56pmKD}UXOvrevVLB>W|}4~m{TDIPH;IvFU{PYSLYBYQBkanjNuXt15fOfa4JK2 z?HV|Tn&JSBlI4X}ptB)N)fsvU?znc#jzQW@lQk8qj7+*nXv1XKib`1=#fSbl{6ZCp%q)&Bjdl+4b#H?Ggl=1MFOtPjqM|@$!Hm#$PAVuE z3~jp9K?1Rw^2>qLoqY+>9ARm)??sW2CfJp$r;VX?ub`Ww02>r9IvIm`=nW+(XKGUg zL%)!tegd;w)&!bZ#twXGGd!Ks0q5>B5$nYjHC7zYbl=TicM zaR{X(_Id&;&%gU~f8rni-rxK)pa0V9!nZugSb|Bl z;i-4vlIJ!>$p-%PycRZ|NiPm3oOv7G!|np`M;jFsN8M2VpSmlQd>3Oo$-_ z3op(l6nQLzG!ulL=ds8JCM8z#UO)kH&xhgoMdmj+gl?U6;W8Ml{U{2c!DnB55w3;f zX@J#UjM%lwY&cxI<9*Y6xcmJlJKhJuWa#%`RdM^sL5>5=|K}e-%Z^_N>%4#U|NS$6 zAKniBD(mPYDLYL5^c?H@{?zYan;!V1vh$>hz%QRkKz%VCKc3W~^{u+Juwsm-btv9E zAI0i!SNV*-b0NY?pMujq>L#gNVncA0Y`k~r)vIrcPeVR)-Tg8D`tj@6?_GjuzIw$^ z{P6148sFoeQ~%JFggHVJ5nhI%6JZj;2po1`sf?#m9t0MAE%d^H64nNgs??7^w0fx@ zpGwuE#Z+xRj3sXs!VklsAM{r}5^%5D_xy9;xpK59xY@{#ty&Nhtwax{M*0V`sim?R`|Pk65Oggn9hxt1b*B* zsw00}7o!aQ5hT;jB%B18&q2ASDuI0Zc53Pe1AjK07S(2}_1>j|VtnozCRW`354IjX zd+Kd|@Z8&{g@9Po zSnSvz&Y)9QU%l!mpW5j=uU{`FB~ziTCFr6fsf!cqC2hBslqlVA-=|}EL4ULnG@eSu zWUsNL7&f@Gp~!l!<*H$|)h&)dwAd-2)c4)s2*+aJq6a;qrv%t@L?# zIF90=GYS)$=Gj!kP{GGFH&{|tI61y;btQD>`Y;|r^?D7eP!(WmHQgE3^_?J&xkX?<;Yo&Ht~|8zLK{jkffZye$^^(WrIZ{mPA+g86-c_ zeOQrVd0cd2)?!L|@>aEA4|{BE{k=We;Cb6_o)_Cd1y<;iQReDXMRiNn2K-plfbSH^ z@o9k^#i)u*sc}#7T9J}5r!a(Amnz3ErN$TPHjM&WqiOqiZF$qqkc6~xIu4bhV8uzKKC*{P9HG*^atXEXC|(E@$q6~ z-o7Lq-`U!elI?45@_U#dvmwqT;R%bd0~dd=Y`OaZHa$a7?b2V#4Y*8uxTH>w!k%u) zWl@5Yi)uXRivvpzHnKP1k>WXtXsQ!>W8owmx21ogFX(L0V~ZnftTZ0rIE<(C^}(it zn5MAKM$=Q?)<5debrrMulGFYsoJv`L4l(I2*u02x*92;p#>`+j-(W$-Qh0 z5#7X`O?`<$oDHpV;SY`%)2*F ze;T|rWtxdx-kZFP`m?;}IrsAXuowqzR=byrlaqa1Brcq!b2a4Utg3LHX}NWXkNK11 zqpDb)>v@^i7Z(W{zqOv30=E+S?}92yOMsP`=NrGV8hVr28*!lLi936VkoSPS6L zDjt;-`v2pWv~?Q>&>F2=#N0G;f&*QZM8)7xRX@cz*-0jmWN=l$HWez)g;An z?0hyX7&QbVoLl-W7P(c{mrmM8susH9shQ za07=_jMLClG8nPF7&ad|121Geh53jGP47T=-(mkC4ap)IZL)qBSVKCpA6G#&^P{@$ zAL{=6d=1}u3I8t*|A#mjeIHSfJU_VtD@4w-m1(IKDXE9`!?FaQ_Qw|dSG%Rl=-?$5~T%|e8BhI z0d`tO`~QA`NJNcdbsjD~$B0h`DJHtvC@pof=ovK-u%9v)p3Q|SC zQpp5WYLO|AKb>#0YW?2iw2D)&29E zuHSpXo@WJQpcV=b4)cPS)`x1bIY>F37aFqRT?#41^rZTSpKP`suD2e1_Uh*AE3MpztFP`{fBj3TB%iJO=-hRyu<8cgxj-byUTB(# zD@}H;e?XS`U>bwn&}vmBR9_NLE|xW=kWqM*F&`!dx%v@T8mKSM4$-K7 z+HE&_S!-2(bDgfq%T1cPI;`nt0_)xct5C=oUn&Nth)sTS+X-#ETikbb%a)u%jz{1& zL$p~&8!5)BKM`XWtw)&<%b?Lz4bI)aSiJ~B2k#k#&X76qMduCwW`oF(-Y_If`JM`a zw#Aw2TnNZI#Mcf*6QKm$`>>Xsor_6mO^8HxJu!;RuBXL`B4V6grj?EJCNTs=l(N>L z7Fm);`;Yh11<^IFhX4pO61e;Y-tM+3BeiBMPA0H$W|PP zs^h8aEmm8c8^E+VWcZda#UnY*oXKMMh0Ba_o$9&9*bFkM0b4&9TL{TU)D@-|k6KYB zr%s=n5hsXJGfqIzJPCZ2&8aC9K2$pc1zc^}-hhLmIuW9x%eKgX?s=fSILi5+>yTyy zu-8GzOX`@w_|T-us=~HQ4|xx=_P4N&EATKUv&sp~VFWZ`c#ROU-WUgmkK){*Fe2i3 zik+I7-v$ZPQIN(<$&El z{D5}DB7x?p7COr)bSyip&_$FKrebztrsBN2oh<^=igrn^YU-qYdIa!)7n3|-E*Dkj z7TiyWDX|dshjhib6Eac8_*&;#g7i6P_aPdA9lM$rBw#@)-Vve*X#bq5IJ#|#eSMIv zuS##V8y;diggG{ay#is+5kqje?x&pUxQ^w8NsZKO5bP4^4Hr*$;GIhAb88MNWfBh; z>4;V{))q`XCaWNOp{>pcH_%W>L!=U6ZILpZGLQ#lIV~3K_*AceiJ}R)zB5AJdZ^tN zKBpvM05BKCsuB}iw+v_uCZ}=F*bg=&RHsrc`9!;hODGtgE|RW7G6{q47Ae^ST2pGu z#M7KZhw~7-Hthsd30f|VFhAjh8O;e&CA<-W-qMR2eeqhM$%~6M9!=LRXrz?!RbadZzPb9HW(VyoMkt01`r?s;62}l z!jQCHTcD+MX=1wtO%^-Ig3cT!!h_%p0*A@WCEv-FtR1>5a*u4*6-@AyP|0%9?!aSs z!uG*4M6O6Ci=&?{i;(aBkUqBkBP4s%40TyuInxuVZ#1Z)F_Xs49(Bp;>^o9(WaG@z zvS*{iQ`1c7j)0ki?HX5iGK+Eqj)`{#vmFzk*7YHxD(EMG@&l(h!yx2k5o9lF%3prU zJMkBTS!xH{Tmy0w&1D@TohU@8Du-DYrUZK<|pk`SiJd^Xw9_sY!Cr#0D=)83gV zn9oGUOY4<}K?9|yCFvmm#!5p{_|+FwV);2_ejx3wbGdkXrwP?(N(?6ws^B6ygXOqW zOe7@=9q|kqL-GZ!8lA^jlNezON%8?Y!9yb&$Xea%&WwxB+U5wGi5QuMtKhNU?Z&|| zGo<_JYkT{vS2=!A@sA#Dj7FJsGpxlCYpvheSYKbwZS-}ttl!Hx{tU~XF3oOpBfb-& z92A@t^zOIwUoE5SPJ!}*-beB+1O{@F?F{7900QsB3eCcF9&!oOV+fezWA9_kEF^wH z)?{wDU?)yjmWKdr(v}FkZAnH$XfEVH>xvl_Bd5#m2}MF#W;B^n-m!DDeRR_WGQzZjdLxexbVql6>tx7eDj8_7)ac?u?FtU#UJUB zTzM+9BBvVo=dwwMSh4|5bI{}~3V}h3x)1XY=1kBHeV8>wH|i#E|DUKL%xQZWmMCc} ziKTUwwLL;I$Jj`k%TYE{F*5CWIy62k%{Ww}@1MIG@*y)*$wF5nYmgn4rmdtIuFAt) zu$y|T#n;e@#>3N&`!2_9G_MxF%RE3@(Ui-!<3E72rV&JG)}4)~v$J?^1(&hIt%V=* z3=~~IKtp9K>&$G}Www|6Lf_z?w6G|{@D-GvB@lWiQGJrco1iRQQ_wUjN9IG1lFTR@a{re zdoOq(h8cvWOK1RSinC9vgi`@D#r~WSD1>f%J5-t%GBRfwPv`8G+9K>;TvmY_w0*Y) zlX-?R>Py`kMl<4o$@w2a4#Y4)pTQyyu{)>NZTT<+M$f_YCemU0;cTQwd&eU(xoplj zZAah^NMz0i0$dg7atopcCf&u$7uVe6sKe7e@hz!}V}B(osT*MTJ)4w9Ni)Mz9!lI- z^*Pc*Xk(s|Alh8FqqMQ%Mp$Ax z=G$#{D&@f0$2w}5a?soacDZ6i=o$b6O4})iG9xsfQ&n24z7{N19FCTrA>_7z6c>c6 z0l&h<{pT92og)uf7B;d3NwEIoFgT&P##;Ej+xxHLGmb~-1&qB_eWq0hQqkOdfi*aQAql?Y}k=u?z;36ZR02H)Ki2^p#Rw6qv!4$ zF7VWJ5^6^Nq_uiN6!VmXEP~Qbygx zciw2~I3JUj2i>|6NApw-6K!A_e|DHx3AvKA$*f(4Y|4~I*%+$Uzxx(R>Xf57l;IGE z=H!96C;?hM4AvA66ygjuQo(~A3_-{LGtZhR&4Vl&H1ClY{mbD~U2Ea2ux+EBZ0+F5 zQ=f{6dzq+mtOwl;%Op=XooS4RhhsvToQrqG%In-=uwB#o$v{*$c2dB-gag>a6vj!U zIQekg#Ke6$)lj=9a{$?b(>ubBHG<-I;lINudI1a*EbCmuHoQDHyk9kkne`)k0*xY( z5C^%Tl@kN|A{|={Lm&Vte{d!Fi~rO0l@Lo&(#Qn~_X>OMhOVRb|N9=YPC?h)MLBy!WB8icaNt}m=AeL)pRt+tEa zM?%xN8lM&tK}%aH#uB6|f<4ZTQ3`XsR9Un}@+`V`rIx&@g&1A`U;X_r{=7j5{v6(%XzDo*-vnLZvq7C2GnIaTH(DFge-5wJ?TAMUXFO zD#-}eBRDTF3fv)Qc8CokGJOgy8W%fEu_!ve5~{s zo2`=$9T27G&P8pFB$Ha+*2bsL;|SPGqiq~oe5x(kdi?Ce?N3FKLSH4HX4pnZxgSJr zLe!+KAeA-rehsg#>6<*qFuR3~jk5V)$thj`^flS@mpZweCpd#m zY}!z*NOWb9DcXw`+S_7(%cGh?`=mV3p*{6SS=ON&S}>Of)xZHtUv|wdwj*nI@p*1A zi(ja@=-|74O_NrXEm@TkXAemby9NHB8DdJQQZ(I(+ESIVX-jP2F*WeIt-Q2%9HN&L z)aM$}V*ww!x(6?V9>A^{qa|l-y zA6r@Buj;-F1AZYnuM7xLMXMIz7ikIO>QJl&_?1yq%~~d0g|Ac#@N15+(l?dZ0Dd7t zZj#RZuQ=cr2NS_H1pR-@fM4^J)k=N)fM3gNa;m;yptNcMelamNXRtJ=Uj*Z6c?}5H zc_G7!SXd1RR~c*#n`?O1>%*eaWlUM*Pc>8(FNy6nGMEPqW9uUZ1p_-^E7=iIN+B)(-#cK*9hY6 z@~c;`&c=9qeVLAo&hbC^KmL=STUp`nVq?A*$Qz9a-4fL?lxu;!?Xzuxt&;n=WyMJ%0&YtO0o|;m=WzJJaASzU|{R_3@eC$xdO(b8}B+=ly(o7QK(E z@cyj0k)yvGZF4>%y07s`9OMniTLbb&d63N8V$dNaPmPl*32i{$GQ=|n>Lmbj4aghi z#uQHj^7fQ*KyFmYs12StRO1!iLSefctY-C_3=31ri+L5VI z$RC~Bv$T8z@|IVNWRI~1M`2%mkhk1Ep#gcDyS$|q$Xkwu4aggnnu|2Cz`is(Js0$n z#<@rqa|7}wXmbt7o5eyghXH|GF88tld1HuW1M)Vt8)3MImEav)dKZKbBIZDB7ZD_Q zE+y%+0eNGVewqv0fV^eEwGa_zRW~4Sl|lIp$Xkkf$Vg5B^Gh{RUC}`n1vYhGZ;&^a zend1Dw}C}$7M61j;{vA`gNam~1`n)u*1=|j2iD+$m2sOIJg^22Ombe3chlg31zv*( zhE$*|A6pao5N+Myfi-wwfNoy|%h%w6A#0H+$!egw8?u<|rTLhcL1MmUt^`dumGlNi zzyW@t!2^@@3k^|JcFD>_CtmR?1W9QJv;$H_8$7TE4{X}tff?`yqjMTOFwrAqg#nT9 z)SUhn2TR1STq129A8>;QhCplQkdaV<1`o^$QiBI3Q!T@lXz;+QE_Rs%YohXL@W2{8 zFr-;FcwlnXPlE@hJ05qw0sZi`!~<(kgK+3ayq!F{PlFnCkYNP971W?lH-Gz7wn z_`4V&rWR^YE;3JJSSz!jxT8qVaV_>$-!H-iWwEmJakBaM^Fg4!x%k-m=-sW!tm*<} zt)u`)Vxgs3`XCx^KMM$_nT+}HW2G(7hgRHZr)aG9MK#@rg8Mp8(?W8rw2=i+Prdus z$&Dwum+M#IwuM%6b-SNJJ)eW5+|b;K2Av)dMKUmzQZkP0tl03U@;>et_O|%`d__cH z!aaoPuo-(48-*1)sIE>18?xb+G8s3Jkd%~0$TQzP{v=# zQ3POe;}Nbv2s*)-m`7({Q%`PwR45M@wwCvHwETQ4x={pV*Rg=D{LO3QkN<~ntgP^N zu^y=fG}S|XW-Xv8Lu_~xY^jt6<+vcjDV|l~m3M*>RjAqlMtvp0qA*l*U{7RZU9hOC z@-|1mieOP_Zvz(fwFHa$|Nh|H|K|4r6vf}g`Q^V{2Pm(19F!BwFAf$3T5lOFDy8_g z!J^89f9k-Z?8>b;1wI1aZNkO3L#tOo?B2Wd>eZTyj!p;}m02FZFKICw6h;Z|fq@JD zH~I26zf_PZVvG=9;eUDmN5A*410<5ai{-ywh7JVbO9Gmjqx_`-O)agd9?;a*M?2p0 za1sDhA8ran4iOj+jrJTG(`4(iPNR6B{Gbe3lcld zcfQ@91s$AXmr-w4Z#=lS-dewb|L?D_;|8OR^&7vDb|V~Yc)jV%b~P#Q+u!ysUsj|Y zk}fl?x|DGim(d*tQ@w5i!GC8q7Fgmy_3SV@!N){D#ZT+WlUBcfdH=Fp$+VFq?Y+Id z?|=XMMqb}d(l&8~p)zsRy0D>RcS&_PFjj~!0ot^OODw}7?q$e7&ohtjtv-3O*6**e zEoTg9c0;hya-(^_eZRfVXMY6PN(<3~aExTl%z%wHQgJ9^8nx2rXTU~HF!RzeaFdDJ z8h8F2-?qB)AYRvNP=$U+EOs^BB507h1~~3@P?Y`%p@=HH&=e8x0LKX)j1nZZFA|qpCv4}#By1S<}PyM_j@`j*ei!i_nTEt;_Rd80- zEM>!b?HKz>4g*Y4pi+kEy?i)+wjyK*f5O3)ITiWqZTL&D%!r2MU|hcXs$9+!&8kg- zenVtY;CMIB}+5NA6|N^0>7H{7a{;TXG5)H`Fy`H2bc@0LIt~Lc0 zH5h5`7(o>}w*m4Xb)+^JX~>NfWA&P0;a6T39OCLRhait@c46{l(UG`FBD;!K)IDzT zpdt@&*CMv{a-l@_25zBAVBYfTQi0r<`Y(cUTdpvXTzVqt>#f5_e%$9N&2?P1CC4`w zh>6Riwtwa~)_H0-jFM#RM5Qo+9$~xV z38>MYfath$H9PQ8()p7{lPqqL782ZjetdfowplnSNGNY>I*ZQTMRckf)nKGG7-?=# zqLN#Arr%(sm5=7hv-zp+IEif%&-*0@Hqq>K{OK%F!gX?qt8uE2IR7q+mF!O!@b z>1hr`^#I!7{bXRIW&4B%Bkh71X&DO}j5N-P1|!Xnr!XJ8uxSr;_Z{{RaG)eMmO-YI)%iP%)d!*$BR z7eN^n&6oyn&Rd1BVQ=1Bl^_D*dBV*@WI4^6Z`)0>?rDQJ=a1Ts7pXYGkJ8}H$?d3y z6|0Ff;^+4oytxK%PEbDUPLl>Bt-(lZFw$O5f*vo^m2+n=>NXf@Ty}XR(qN=D7->k_ z{-ef7)7T7`D`{tGfJ0RiI#^?LCC>H&z0q2a_D=i+2Zb?C#p1vhKz(xq$YEdi)DuW0 zi|(-PG2oZfmckzh{GQ^BZ>lGQSpcqHo$XJ(+@s7v<&OHKb<(il_CTOGyW zVL0}Oil3!*?~Z}*gytq8GQg(r&%@V)cL^JC65$3amr9$!${P-efRhZv!=vf&6zv=g zf|xs5fWTu{;XdLHaR&!)H;W@8y*C@;Y*|@{0Pj-}nw|vUoNzP=8iyD)gD(oot$EGrPmfqyv!E3Hk60>6hL)h@^epDd6XH=4f)f{8bq zs9h_y>DX#BQ?~W6iBfhK8HFQR4_A_paa*!Kyq+Je?C6-RAtASemD@(0prxA*Xu|+e z{e=S(2N3g=sp|rFmhR?Uvj!>afF?MLF&LIwkYJqUu63{`LP$9`%A|obMzTV>n0Qx$ z_F>!eC3KEoUH2rsh<{!c!AN(H;Ia)c5)ymi;MARS3vrB?GL5l+5bih{xfT*S3HL}u zBOGz}F=liujw8;O&u1Ynq350Q*lfjmgzk1?!YCaO3WI|$BloUjTRS8+icU60x=TBC zQs#@7`R%?-`E4h{C6+s2qTOvaOa}v!#a2iM%Ty&6r^Fxb0y>~&hg`0({E)Fu~&}6@Rd2YPL?Dvv{xJfBDVPHfk|Cm<;Lg&$I zw}p9p2-T~}wGF-_SGU7im>j_mj7WFWJhDnP_>QGTfsvuhG}POYKWb4}0z>Gvp{XAV zu!Y=uN1-C(pQ;KvPzC4$yx}+uM-$ow0n|BkJ}e_>$v9J$Q1KJQjzghgx%FIpHrF2C zb8)h&!>C(f{Bc#8LKWIV#}yTsPSYcpKv?qovmO_VydL(vr>I%q5W5VuK-PwM6#L@@ z))4F)k4jVGT)L`dM+jyQCwNJ^1M?^Fdq?^K5ml$z6$@tJIL|3&`oNs0#skyA zcsPquU7YJV*L@$vmGf$1$~`Ao4H2Rp^+M>*zUR2x_8!tuc?o2fA=dpI)+_p{#^Vt3 zN1|CTnK@U`Di~k3jRr0He;^;)vS2eo0*fXEa(rrUvAjm-(Qb0N40ien`FIh~HWJ1| zvJ+XI^H!ZJa-KPS#*h^@8!)6&`#e36O~V8E)fZfg6!}&`ru`weC8y5JbBT!F-f4n9 zWWOAB}t{4Csk0 zW|VZP)_h3%2oavDWeSr8dhcT_CD93IHD2vSvmq>IYM?*@Trt|4s&2Poh4)}+LX*3? zV()1%l_*d5gaWR!@o_kwy{sT0^C{ypCzXrlV#t#U&xOvNgx+ z5e2jXG;IJ){oxD?l3EsT70`4K9))pV2~#)`W1m31!NWA0lw?;^OH;`eK%|mBH;dZ2 zNJuc#sawNn)=$-#=~Gw-PMadp_=q|C;$RtuFc1!=H?gAh!`bNID~rSUY!5~_GQ(jT zz|_Ouj9!{Pl*M&e%iYi)!_g84K{r9x!ilaVS4)hIl6HzocBThpZn;FR!WerFyMzjL z`(EsyNK*UwaK0LSKOMpatLI!b6F4DhrnoNBwGzSJpLJ*B>Flg-S;2GHNd5Yi#h|Ut z?(;?0eCXVw2apGf!GYU@U_az`lHnI>cfc5o)!&<(!XzBQRK-iqf5J7Y8%J=Wi?1-o zUSOyq8X8{Pu38rmU3h6P!@1cH0Ahx%mzefYGu#RQ>VSI)$`qW+g+n)WXco+EmcTqt z_YZCFIe^O0qagxjW{JmiU=Ln=G=0pPKr>7dC^e}PyJgUfs2tuBK;8Awq= zCvY+L)Hxg-vvmuKV~+7uo zkM4`6hDGh9kQ=}lI^5asXumU=3faG&565e7n#kz~1ca^vN{-VpEp>|HvXU#@LZ-Xc zZBeG&-Ryn1wIEmT>#Y^<$)4)DIyEyzR zk@H$zw^^d6!I1s%P`Cl_rVM|^B`owsmMmyv9LUjiFZ1v$upy~~s3R&TC^V12TEK86 ztVOoE728k*zgQ+sZe7|Vq=z14!*_kC3%j@8UZ(|c1OKX7DStxg+ETA)`BT&dXi7RHf|s)3%$<_(R47Ajf0Unh z-nK2(SDt=^dG9=2iN~cFY?VWdgk!?<3ydZXbq?k9VD)iyvU(kGTe3OCU+nbiBLrAz zwD#6Vd$^kSCI($B0ckM_fbHO3x{jDpn5%_W|~(=_zye zQh|q*XbL{o(Ehd;9HYF(L(a$Gx_9MILbcybt$UY<3@J z__zh83=r3qPoAZv8PRfr1?>)IAlo!pMAT*wCNBwkGhrJvqX-XG#{^L-u-XD2mlONF z7|H4En1}T3VSj-V93S`FW9$UlhtaW^JuN5YVhWrsA~m-^6p(ZTpyk=5f+C<#T)QWm z1)FAMsLUMN1DIDZW~O#n90!N6={UIw3DAc%4o1D*E;_kP=YT0fLObq#@2~vZe|T?Y zg};lTnd?EkXNiSkEhd!^?*)FPO*#vkz_9;BQcKycrCEyA6f@OrXDm|$Q6NRk3nSRU zNl7C2K64J_%$1Gu?00m%52S$386$7pBn``@4Wa3lH+L6r)uYuhsjElS+jB#{oI2(j zP8XMx{XpJZP7epTL*@3F9Np(@%c*7aa>)pNgacU48`lvvQ>#XX7+1@C`vbgHq$MjE zvaUI2{_r3D;_bilPpz!*ck!I52WO5sa~7O=UcP~Oul>T#I=Q3(x?-ufpj-ejxxo!O zcihrH8Hl1FJJ9@spgX8hoZG{A)pG%yajGp8%@SxX`A}?!JDFv86&-lc(okML-gM{O zDpb(i2q2rlYye@XeTlQ%agaqU%cVoP{N)0t=No^DIV=#W-d7Vdoi;iSsoOuw6q72J zwPQbC!vL=-mKv^|nDy5%&Bs%UgL|qreyO}ErLQDr`mresYbC4*g8D^qcEf{8{i#11 zx|s{rOZ~BtyIUdsMz*mVa3cb6Fnwr|hvnyRl$~^F*p|O2%#mMfrG$WooVHJ_EDMl? zCmqo$ViC9v9P9&K25nZr2FDzOu_U8Lrw=AYFh26fuAn|Q%faUqq3a2DS@04@5+iQh z1d{+)>J>hh8h|#ZaRjT- zE?!^K;(zczxBn6(pTCQxzZQZ$Q%suBje^eF44RnUXu>{v?9A%$1VoE8O>QV<|&E`rE{sAjCNAUV-sq81>%sZU%_%<4UrYd70^Jt=#3DAypI#T(wmJJl;UIF9v<*gm!?| z6`X@~!Z}bMM86(n`vR(O3+?+S2rhc(UmE?r|Ltd2R`|Pk!K?)r&1Fq@LUq=!T5!=h zl43kodK%@Fs<4rBE0jBTv(tn008S%Ti@qb%U@ZI)m*Gw0@&=}&%$|) zxcRNDZnsi*q^obxgdOL5*(5qc0~alOz>=4;fs1xrQ8C9ZU!5o>ihNvyZ~J(y=sz`? zrdBs%XLxr@<520|wc{Fo(~xZ^3< zgmAeK7^sK-NXMBj#hTg;Ty&KnknIgz^m5scf{|liaY5ny(8W??aPsp72L<)+?R~cM z^tEc*~cx5B$UBMXxGcgeF zmrRimERrV2jUfZNEUggdlMF_4QCK+ICvpp70vot!ZD9t8Ap;2Y1zl9}R?IB`Cz`L{A8zIQak zsv-dylD_S(r=%MmLq84zLh|5)CKu0Dp)fRf6S1J&{ur*0ilKU2_;)IVX0uewA=RNp z)@orVW({2Q9I|?552-p|!dcNd0dl-4Nbb}QGIok!d5oJ#Ai)a~ge*!hB|w+pPbG>I z^^=Rvc2SISoG&A@qu>h+HPB0l4#q$fd)ZdND1av%Opt#>+>cqpPl$__+C-J!}mSe~r*LjGWF-GO^>%r5!`li3$;+Cu7<=kmnWLeYavv2In2uvt%qA__TZ3b$X9@dbDaQcXjI{GeaZIwwBD z#u+b586_19Fhe^?JL&QE0W41^SrE1q6kL;u#HJ&hMtnJThRMCKwV{DHUM@K4ke^$0 zfLZ}1CaHB)LDcwlXF zEkABy2mxF}3rmG4wP9hjGNB+OnhoXA+3vbbB6(j8lMt7lC?7-+C68Zvt(nVe#

YvDWj>&mL^BQ*z#wfBzTb$50OiKN+(Ef81h(#@8!qDS&3Pk;b15e
z0K;KeMKTUpWvvMo2hFwEl4@XGvMC>Xo6?G)XZ)Fq2-tpA+7D^ts8zK|skW~p&Jd)EJ
zeVOF!k}rrh0e~!G_bBHMgir%LUC4rOpr?bWgwrzUwt=2*pr;$?X~kj8V(8RX!XlD;
z1hdFFyPVP&oi84)26|d{s94k@KoyTeWY0Fx)7;QuYf7J@nEo&gV8&DDy4Agbo?euB
z+#p3ek2CE{h0b8wIdFGm*FVPo14$Z^h@y}_Y49)HTStO)*gJ}&aRh;LI%^n3F8~b$
za4zm}HX5X8IP_)np|_VSN}%)3=JzAC>t(*CrhW!*r6>fJKyKSYt`4&4a(e+a!ShfR
zxWHU3b$J6DC*5c1JqQg_G;+XkdxAq(0H>%j0aHak34JjeIv(xwB1J2cD}jM^lj#N;
z`@wWNH7K*jZL);0x2a=jf!lNrgD#IOl?|c9jOD*tM%Vc>=ybJBb_Thc?XpQ%T}wYD
z$gqq;;;b;H2xGQFt+VIHNnIl9Ay+SHg`jSOqYdKsW*ezU53S*k;c8aJhA
zwxQ&141tD<6}R^SXH=XjUVdkq#+h)T!qLFqqfHjZ(gsAcI1psuLTM_q3r;a{_e_u&VRt(i$Qm;wrb
zH;srl#rh9~Kk!OX{S?osSbIurSszNeBF7eoKWk1NJ$)1_#k~Yy0zs0YWv&A_52D~A
zWGEE&3IgKLJ#4Bmcx}L-3Ze*nLh%Gh%Kga;K-=Mtl9TJ+m=6vE{AWCq$3IdasA9KR
z*|HwJ9YkXW^X~lGfA$N#Z>_BGcX2RpEjX22JhV6msv+8dw|CM<5D|Q5X)n)8cqB>%
zB6#pFf5@B-4F+;gw5s`h7GU(ib>v>EF3P9n;(TVY)Qo8J8Q77VgZ$opa?@zT+sgU{
zd>m=B_fXp4?HL{Kqau=+5z=0n3&5W8-?S;n(x2rMF8F2b`lYaHCzjKn<&|cd$I9^E
zy0xC!S0ioxb6KcgszgW>!J7%h(owK1Sd)NF$%ftg@&=%~!dkqyK~2ZN1zWxmi@E{g
zErCJVK_I6C=*ZEVlb>?)Q+$v29i1G|$N2>qch_)XxljY1XxR%?8sMVT(>Lw^6QS}(
zz2}{E(dfbq_#iEQejXqcbcwoJIPmXquB5_NYr5Dp0VLsY7`}v16&IuYN@DL`bn!ww
zv}JH|$`mWId7H1$o~0Ep9e{o9M!HtvPPUQvB{ILVzFLeg_pLviJfbJk{@10mWl@)(^D{NJD7aEEpd`hQ-2rY@kSt41pXHD^TgxuMDJ8K^as~k|W(>nUSR(qZ+y^A;K
zTzl+VO?oG5P`#F%V^K1BMG94zOioKy`}yVW?eW#M=H0CAXYw^|$p!g(9L5D7%K5p<
zv&#PB(#zd3n3ztp}#FH$$m6Bmbkk6I1!EA7=EXnwOMf1>nDBS8nyY>EzVs#&i+h+&
zkV+otg(eRMHwS|oH~d!cVEs-D7mx(4`@Nvoy4$}ocyRmv-5a+C_v}6pD-Y454}mv=
zJPCPy9^yC5X|ajzt87Bbg&5<&5(r|F3;A}D)q!Ia9FO*b52ZoKonK6@_1*Vx-n@J7
z?)uFu&S!L^ee3>>_RR-3@3z;kT5ZM4TDrH^yZ+6)-QJz`TfM>ETMq`^;NHDn@7Dc6
zcm2kl?(N{g-8=pMy#YFUzkh3R``%#vPVZj#-r!chclUmYX#OUatp_{XckgW7c>n&r
zJGbv_-+1ug&h70xTemjfe{gI2!RGYdr}1gVwEH
z|Nb4^JmU{;c8#`-%M3OM(VOg{RhTmc`Q9#JUWP+vJ*gZaIgw2wW)EX!5<>6b%$1M=
zQy_VAQ5Au}O`mT6ejT_Jg4r{{k_&kOxzpMB1fGweZ?Qn_XOIir=|%9KG|q~Z;#Td^
z^>B*KEpk}8xTbUjP>_DR-0HLp+pPE2+-TieUw^Q1^Tx)F`|jGB_kQtj{raE!#>xtR
zbp}>lHM3sp(hJ^xjP`5fM;VK}ifp}!T_h_Z40VWq`vPrN;`Q&f`R<$6@e_N+4VUMO
zTyTTScwDlx-glF(;kj#hY+2X4bFyXL-KC?K@9+XQl<_=xZIaH6-tbNwMYyGp1_!?Y
zlntgC(U=g4#)mYlfBCn6xAhS&sp0QpdH=NwjBB9i?+L(gdPj8xwBAiJMd>eA0x*>G
zUSIQrH||-vQbU2lHBIRiO|4ezy-PW@iJRoYNdVQZ_%J)#DRb|?&1-8`v;6v13ITs4
zGXhGm^4c1C>x_$Ew7YZH)+{CFS?%Kf+;Dhs?QmkxtyQ>)n*U2%8xA(S-t=W#0pw7?
z`}ViJ%jq3FIG@IH)8Q>;2+LE!)^19T+LO7;RVPdKLAichl%ETt`*>}6
z)6S5Dv~j&SoJ`A+DB4>qZfs+^Alla4<^$}MFrLnEScBYgKs&=r<84QPM~n@i1yfKl
zbH6)-y9H}1AQ8uK>?G~W@vgbe2mX|=
z=WRX@FTNpZF7{dZoxkzjk9mG!KNoQiyA4=##}AcIbH`6}$BzRuRF8zL;rqOx0{?IB
z_<`>dr(0eLwSkBW1$H%e{Nykkl{2=@E!#Q^ZchS7MKL#b`~bJZVf(|w;=@OMV8E|(
zdk|$$F2WN3FzVKw*F!aT{D4!4glq2jNnQWNZF^}cYwq|NH+TF9a+tdXfLU+d
z0JqmQcl_}3B1B@Ud2j&R5EmQ;xQ43b?bEuOoxbTI
zTrb9XCW+&QQE*%b##}u8a4c7wNUGpgP)9O~Lm){oR^E$x
z5=GE&d*1F8_bd2ATvk~oDy7;zWG!H4nWsBKl!aWn*z+d@H&jsWFy>8o=pTC}O9OVi
zC-R+A5-qWdvyZH#ez>$fcL>z@Ed^PkkWm3h?_WY=={<`7r?Q5RH;fCZNtU
zog^9qbv1pcX};nRiK8JPWodcvR#;3KUXJcb@I3dXxSJAJyDGw~yB*lwQjTH8-DSL9
z^=;pzlGouH0Erogxi6Xn|CX*v$9x~?O<)cd09KGq*4bnd#lY>R#=su37a$e}US_45
z&~BLwXV4&cBjWAGl5y<#ESSW4le}9n^fIkYBmsdOuge7}zY|@hm^#Q%7fnN{m-~KQ
zlF)X2k5bRacJYZmt*dXz3w2R87tK&HKYFw=8fDVWpcx&h)z87LBf$agnj6ZbUMP=jyV*;fc0IZ43+jfGD7z1bpBOQQrS|dm=5xCnTq2cJw)t&a
z3)B>CMg(QkMd|Ab(Ofh`4W{>Z13(?N2vy2K7lw@FV2GPN$99R`J<~}f(N{<%DMW?k
zDKIQdDIh|u+Vm3|Pd2xTM2H{G`{I#@fpv$T7%bju)qU`A%e%LJ`zFuylG!11l>$WP
z??9u%fJ1PncZI2v`1-ncztzRM)IFUBSNVDzOyH))T88~LZ#_AQyicIsgSdyIiO;ZX
zz4ZG*kMLwr1&6$>0lJ$@0R`3V*Yyfxt%yelV=Qz;{Qyb1gPWJA>@nvvNnnI%i^N^v
zCBei8)VbE}dq<}e*t(fo5m9e0nh{<%7tNG{s!DTb?k*Qjy5^#p=As$cpG=o-E}HR<
zaT|n~`~};?8P!32UA+5H_@l`XGY58zWX?l}XB$Os=%M|AO~(x=lIC$G?igX+(HNIw
z+p(XB2i9@4v@8XVPb~;YV*VSO~VzzM?`RQ^44PRRqWq9wDVOid}vS
zx1PC95!!=Y@38AB%TB^!zvsvOvbnig)n!KsCneVPx7@^xaN58{y5Z604R~Xcqf9QW
zpYk+0@^37o;U>d#=Y*h9Kx&@HapQ&+jt`6~Mhc`4V}Im?KlYMv6yh%1x7>R+U|E~3
zv7w~G>E^*YKFMuCB;l)M262xduGO5V!!L{|NO-hRagmyQkv0dOpr9-xdqZ2D7TdR1+`{I=sSUzPBFYd2i6yx>-RqO$_
zTl|yzBDw*wBk~ya-Dgn_7~7^T-PH%&g^}OI=q|o`;Of_XD%^0hVP9O2<{*P|gMPQG
zq8_64?_*o5PP7KmL2kCu=J!{9Oz%wt4aF2(c-u
zulec&6iROGQoo92#%YOSh9E^21H_*~(%iO?I3r2UQg@sfrh|M|Ww{!v>ZCHty#g?W
zmyj==_a^PGoOaCS4_j~TfkwimrKg=m9b+X&GuQ-BJ%F!+B~zsUmsZ1Bm*QFH8olA|
zx%S@SAisJ60jY(#Sw_Nn6RgcST65y$@GW6@
z!EGkEWL`AEDXt!y(2|4-4{=PQW(k%7*u-)~#J6JvkK!oyvsdxS;7(eYNK`*02$s4!1HWUHVMCySe}KZH?W?VHaOUY2|(jX&LX{&
zFc)p*j6L0*U_!cMMh#Es2AF$Vln0ayb;CX}hUEs&b`W@&HaW!&(jKFMM*a
zdVG(6QfuVE_;3mn9|s+az3GUIN_h~FLz?-o-@62uKZWUg_3E3_08*9u@rPC~_2W~i
zdK7T3zr`^vxv
z8XTAG77#ho;N~gJ;9EdxqpxIqXbg79a20g1g9+!5+T;YGh%M(%i=!A2lb?Rt{#J^N
z2=~@uFzvV@tPe_8iJVwbv3Rlt*D|BsUe6;qE`(-O(BSgS$jFqqQ$U+6eOJLbC}_mm
z&+!hM!WZoXzILOa`$sw??8)NMSU|IaE$5;74zc*qfkAlaAhJGVhbzZf*4H-sU_5cd
zY>0d;w}2Txg?N1bdGMe9!`r~(Sr>ohLWIRYY*6@$J}@~!m~&Y;
z53{!^w}>|=d}L6`NmxREYf$(~0D;t{RgTUQ-}doZwV#k2H=jy|FR*MJKGO8fB1tQ5
zHS<*zRLE#J34iX3zVd1l#C*BhPHV$nv
zl3!{jR&g-08<6xBJ4<1q{NW8h8`B#UKGCqo4mzuH_qU#dkATW_x|-~rFUY6mLEtm1
zId|a1$NVXr3yC~P6#UclP+MQ)f9GYwzBBr!!0oyIyP%5F5@2PjYq1&{6uz%53SX^r
z=FHLSwjm7w-<+fWobFY}$Oe0l3a-K4Yq0lRxRClGWWAM;GDekY9EJpsIUo_uibNy;
z4*9i&2B5jG86O~l*MoeZwxsMlbccz#xH2A5A}Ec~+G$V;qvf~}lJH-o+Z5wMoO_kY
zMQGnxZfIjs%@UuhA{S^UU{}m9r`botV8gZF841O8xD>tgs1|2&q$7&C!QN}I_iTPLs-T1^h-s+e1gAIRy_N&0X{am?83nC}b6tSg+7d=5
ze`=%zA_u9rsMr`v>&ZS(^wL0-h;A02_+t&eMWG>s)ewRjA0pl43kkeHv=nd*5a-7T
zR_Lb_|5Ri0d1A@lAj%n~M$|u~ogkYW>TZnsaCCi)*b7&%OALic>;upc(ICuM#KuML
z#BF=IHc0GNMN)=FjU2cl2W_UwBNkSZ9ndaxwlAsw19X<*y}cLgc~(HQ-9q3-^f7p8
zeW-?PJV-fx;Ho8HBiZn-K^xPCoLh7n>^+`RHQ0OY^DSkYJe*LalE&*JeR%?f6*9Dy
z5t44sQU`EO9O#l60s=)BL7AyCZTWR_iXizBf@6Du<~2K*3e4o5KaqG@*l;LAFfXI2
zlRb^xCu$ek1$$pIvvb)!(jZpT8-{p;4PtyRh-V8jvW2KKs3dT8FH;tz-O+4{WFBV{
zA;G|!5J`Tt=RHJMU9O&oaC}xGJq2(8L~9H(&XCKs4z*~^+y3J{$!E$nt%q}D%O6l}
zvb$Zd$JjtM1*H^UCl*?mBr~>Ndsg7LvI&87j;9S?9@E|&%$-PagO?|wLD6#Z?M{Xo
zyu7_-uug{hbO5#CFdTH=u6Dyi?C@~0(llA+6wYBpg*e#As}AJ+TG%PKdJcBSNN>2H
zzXR`-_dP;n5zp=>vt%-fLd+n3Xj2`B(^D5qt2&OFbch6Oq*ht>6YU`(BjFc$z%bE-
zVv{Aat~EpLL)kc|B)LTfD3ets)|y(EXfxm|jCZ1dK&S@bi*YcTug^;N=0IguE{E
z+%c{u%gwJ6A$0<80
zk>#Q`51dN^qd^KNR
z)0+u12Gz|SlufLGRRj8bn8j@87_yi95N0SHoO@B&v6#N8QYrfHKe)98M1Ch6{q*7pAs7
zWL&b4DTJ`4iBV7V`w6`|xV+5n(|{j^(?P3(8+v>h5Ih7k(>p^5R7B4fG}K#%SNl>R
zT)u?6h4z~Z1fUduA}^iA-pP(+$-^qn
z7J4rvAG*S3b{4vR1XBgK9~Cf!mXduWg$P{-;32ce=eSCz?eMhY9|IGEhqZOtA&tgb
zHS*&ZYB4D#uSm&w6DA#w@Oi2GA{RuBE6Tz!f^~@F*#f;f;$NIL+3+}+ZAXvK3q$l9
zK^!r929YI>0v54hCQ&8)Ar>v+Dk>+PZ3V#?hVK&m!T875AE$BUYqVtQ^iayBQ}7inTj
zoC!Du(OO281&rLBu(}Oz#@i*-1~Eb%`q=x*?%WQ+%8gVY+CnRfV^$DgDnl)S&5eVW
z$KHb`;Cy>Uqj#b~2M9gL_rpB1OqZ(RE7k*a{h`%_re_rBmyqg+hf!d6G#EIv)r>{U
z6)~F)mS;t6^xQ@<0`k{6HKy|fu%xGGYzxOU?H8&zEosd&hWEKK6l&RuS-Y!N=A}xW
zy*@>h2p1e`~V7TquH;xOb*K~M6>`7k*;P2@0ymu>o*awkxt8#O!%r$Zdm=P+xOAJ1mf2|%vrw7VSkZ+O#qW^&}A
zQ=iXp&VVa33XicjJ?YSQSbFYGm#nE|RmCkf@0F$y*$I#R{E{A(BE4?-!DjGvVZ(!RISR{x|x(xnXa
zJPa@|F#!ga9EC`*3YH;A&ddSJW$H_JFbpr@G$Do~A()-V0={aL`??|0i7x!ZfAoK@
z|8>C8@pmy!$hEqp!MG
z8#p?Iz`{l7W~ai}l|MV6ydNdeSn!x&=p-GvlCKkEbEit4SU`$r*5UX1kp7ro{_Wpw
zeFW@U{w|j5+5m=DU!!w!Fj>x_TFN3ZcQjyGp$zZy-NiH{JDe5lfY@3
z6y#F_J4dNJ1H_8KR(yp&a@s@l3Z|A8OOG};JbOtNrwup>2%Oz^(WCa|Vra07gLoYx
zoU;sqCg+^E-OK8QT?m)p7&vPiDY6^P&7t2zBF`A}bG4N|KckHc!Q^mV$!)7E4<&cK
z2Gs>PVA6#mNS*F^^sv=xyGUz`RP*g^pzk;t&O0LY!0#4HxI4~0wIOxW>=UN(G+=Y0
zd7M%S;y8-i$OYteiY0bke)Z~=hfNPxqBb@{4(_ny-u7OZ$6B?*FUdZ0*JBUiRa2F(`
z1ew-A%{5SSc4biek_ZfQ8^rv$<_=3Olp-I}qoF#uQ-YB3h)70Kp|~St+QUbe<@0GI
z#SsE60^Hjw(R6Z{nZ1F)Pu@a7Q%n;7rv3}u)#^Q>2BE$nWIiucLzJnr+Z(7kSr?0E
zal$X&KGZ1j9RV}4ExT;MalcD6|7rK{@P
z@eJyF`LLhGwQv*ibHDYCwcq>sl@#YKc2)0CTHO2U`*X8@RAzZkp2ev&I$_xoem>{9Fkg#*W_ey|l
z2ipIISYa&UdPP?wd0dSc#_FU3^dyfN_O9{5950}rRGi>E$2nC4G&f9>upnRvG1EyT
znOz6&+_V9j6F|Xpi_T92(A+8&uRBc0&Jd_b32i7xypsHy`)-80!6jv|2RM#HK!^3>
zD1nD?g40tC42RZ3q%9_>=tfM_Q;6kD<~S&Rfw?2Knk%EIi*&22X?>rLpCMiF8FK_F
z(W>X9R`@3oZii4$7r+ZFoIXhA8kgRniN*&*2E?}6umHDcj@In7L_8O3v+zYY#ecP%
zYd7xRTwlNQpp_9rYqbI(KcGdM<9-~4@NX__6%rZ(?$W$ns;D6X7YV0ENHnGy9}c4~
z9s;jY^XfnR5Z|b)6rDwb6PJmpY)x5-XfVP2$nm-T>G&aN{<-bvA0TA1uTYj)(54Q-
zZHUxeWVRt_g)0}RXMM9Jg^8R!pdp3J$%$UYeA4ya
z$%&j*ow?Ri*4&V>WV&4I1={%lb*^3o;`uMriEJLgl1ag8O8CT*t05`0RTbN<6U7?k
zDIYDX&l!jGs$1r?a9jQ2Jmqb`8tZ~JehJBpn+@<|1N_*QJxV9+yTphMPE`SfI3SDz
ztXV8iZdH+ai(@R9zA@o_@~QUnP_c+nK$a$KNsdHSIy6qTypd(B(7pox3H`6iovMH}
z8D^21YZ-xP6e5zTuQaI0ME_=0A*4-D>JPH^w`7H`1}nv;X$mxBWL6ha`n{-&b3L5a
zxuj>HkP^WQ8D6$?I>42YQuY8|d^ThO{S;zJUS`KGR8@i
z0tgVgSJX5m+K9|;nR-MQ##Yna+CX$3pl;>yap)7FX=&Lp;;+F~yBb1ZwTUezTUCRM0+y;bhw0qn2F
z-p2}HhoxQS#tZ;s*hJA7VEG2gGi3#~aTvXEdEm$;T0u1j?ZXDiGd;?EL;-!Wxm6CO
z+=uYNa#f!#ck4KKlxWru9&UN})^FdWR421TrXeuvdj|vKMZGEP(JSIM4S_p(zts%^
zkas$TR~xUVAp2_1PER85lNq9A;~wnT&%7f{i9U?&5oUisJPdJ539fVFI>DKs?r(QS
zuN5gs-wYR*9C8cqz%Sa~-b{`)iG3?CYO1lz|1n$o=yU=@x}*UhUXYgMY!t=xyJukKub{Yy2)Ew3XesjRa>@@$Yi3rGTbU?9$;PBaD{lS3JxTHDYl
zbpT}6QF3!D9w8$*gB_A;57FllCg-d>8&79vp{H8GnsWXj;}I}Z8zfJUy2~O1N-D;|
zoG#<(+$h?S3YDIB78tF2aajenQ$*SU51=x|MB`*@7|r^2=^LOL)Gz@Yi8D*wGAuC&
zfJ}XXL7(14!dgF^jr5qkLGo0liM0xMWP{|Xn#|#;6wgN)DxCaWYcRdGvcliRp~Am%
zkx*gT?JvM;lrz_KuAG$%*c$>j3vcqL5Cyia=eAq?Ue|UD&as187O@1BxD_E6K{KI~Lxc_Q
z6JC4h$}QlNU<9?HO~bL^U$-NaH8SB~!|P37;=Uqc(U#xxzWr_Q@?~vRUFrx#I9yJh
zZ{?{k7zK45w0pC-0Fq<$b>&4lfwC)(AUcFLs?e*8MrM|P~Fl)`gzhstIHbD=|E5HpW4kfZ9SYz4+
zL9XeSRmNFhWUI@;$X4lmx$-+Z|L`{f-^$;`JCasy8%RBRibfHTbrV*Q#B+RMkc-JNe?%
zf|Iy34j*aac9EnNH*!?pXq!XFf25z}gkZzFi7yHjT;7x;G=@2d(EuN;oYYB*GXfga
z7t3G<%ld0T$g+_mzELu+5(Ki{6HuE<*clZo^YiD0fl##z2?9Lqb~)n34sF7T6f-FR
zox5kzX+X$$CqjM%@}tmzkl}o4?kJBOQprt^^YTn+)_yX;#~5)S!`46(
z1r0Qj!BQZhrv$kKV_6r`2AT+wlagF(_rq&QpiZI&nkW?<#+o(IM7%8NB#Qf&s#7`}
zSQW#`(Iid!ZYVe#9*v01^e-ClC0@=&Rp(Q_GK%#4G}&NrbPTW~!4XzQ3tKeHEmiVo
z3oW->ENeq26vUgd%fxtQTmu0L3k6X)pe&D&Wh5yCe31nY=r}`|Wgq96$k@X>NSEUq
ze4)t(%UlZ^dW%3fDY~_C11EkhogMhIG%;K@0LQDz2D5~lx0?<2Y|k42VG{CwC7Jb*
zan6LeJ|zA+JjUJ79|P?n4uWn1Xtfhf2+d`^%FIFTh>}<~{pR!><$z?TfauXF<}@ai
zp4?ZeXPWNvSo3$}+*2w!UrK_KYl=F|o75Ib5X?x>?*&kzeJ1KS)p!K)>IOgx
znN3RTnudR*1m*JQk~a7f(8n5xk)K$I5gy?G-{1dRfA!z^#g!HQE)J}%chxJ_7&~lN
zH&Er3Ut;B@QhHWmj^ZvJ&TwT8-sg|%Dl5Y$T2Xf0v?(|`@esW-1(;^|g(N#C$VkRL
z!;VrlwJM5yW>o!STo&Ya(_7*B9e)b0=pBI&((Dy!y!Za1#(0}XkaIczqdm*s7&!9we^`D=E7nF+ad;=~j3CMO2;^PqaZU=;?TEa6OSR|3*E!
zkW4&U)RcED9gEv>AvuwNvH&yj%~*OtA;J0&JQLP_Q3=uZGf)@i*a<@WEG~o7@SO>}
z_9Nel3-@Od+(ttof;1
zJ$Qp*jv7_OlC>D%5c3W4o|lPMug&IUVmGP$n_^257#Zs!;7S>R(4QVa*
zO{?Vke}45?NN29w_{DAUirLRbaK3NGx!E9e?VoRZ*$T8W^LnCU%s(82RXRXxF+0^L
z(y4)F6q}H*-d^kxkK)`7cKOe5G*H}!=LnFqgJiX!#onAEI`NQ94O
zFw8o#ZOLcz^DX`?tM>y(!TWP@G@HC>GbGwsE7t$ku720SHfM$B<zjq&vYWK<5$%$3it1TKlim$nbCk-wF7V*2)w~**c*#l`BZE5p7=d)Q%jzIf=y;!
ztYDp7Txi{DpG!$^7ZIh^)w+;Tqh}q>YP1Madt+Hgvl{Q7S)TXNN1sP^_$c41@YwU)=XyJmcBRNket6d)2zJ+Kv&CY@~wG_
z4pdHxTh}z3(NV15J7zzg*^DQWCF$+qz4?ZSpO*5Iwn8xYyU|75UI0;?AhYZ2)@1bm
zfA-!kM3O8^6U)|W7){N#U=g#sAT1ctJCm8!=^j5B`4^g+>Bxx8&Y&|RqcbA2x+kmF
z!+*>ptkT2X%gsF_qpNE4Bvwxn2=+lB5J({OAlMgy2C)(>Bhcz$CFVgO1X}h*4_a6j
zJqh%r?>pz*YuC)peOf6EPIJ4p2Ed(}=vk9-x={qf-(Azfnh(4XQ|X#hWN;Vfg!S~@yF>FFkB
z5t!!BSv0Cwk{D@zt!_UR49-}1&2ZUy#csp0WzljDc{Qb$)L4!&`tTYSS3
z(Y<7Rm%U4khiA5I)2m)wao0N@*ge>M=d<9W;aS96g_H~zxO{P4-V!1>JGUz>U0OWNX-Z)A1#~bLoImmf3ISPhR=kuRz)fe~K4gh=Y<8#n
z{VI1$FI>#E_aWKl8gVwLrP^?X=QiQ0*GP4AI!_8A3AmzJ%=@LOnlbVL+2tnZNMhv?
z4dWu}qvt3+P1NOQ3IgAkulNw9=Tz(lnkSb0#E{g&$>HDbJBbip&>JJLXq!p5ru&j_
zI;)zVPS?+C^q>9X&8L6o+BN>nw%l$k9sMvD^A5MkDDyp0?d+8S
z@Mc%W)yPlGuXmn2--oYQuLorJG+M8%=MwofTXcH?eyK}ri?`~G%Zvn05@!58uyW%D
z0H9B|EG;aJ)AiGqikWYlBlD2S){KRn5bE|%2jQZ{ayMa&yufXGU-Kd1vdBgV6x?kh5Kk{1ffe&eP{FcRvw}dv9=(exlr>
zK`p}jf#a1`;I>gt=c2o>blRY2@iTC>SrG^dUq|V*=!k0^@%IH3ujWS-;h=QTToF+h
zK@0)`3G4f$t)R?$6QdudvNhcRlB5jsH;T*ZGc_lmBY$Y9c;tisbm!mv_&)<69)D&-
zP^>M(2TcivEOA4iYZg%`%7Da{LZK*ByEIVVM_1^xR=zxB-Y?#_jS4)^?a=QOc;25}
zVO=i`qqqOwja&gx@7G^@qjqrQz13>9AAgV&MGg#DN0K}bAukZ~!OniC$KF=X0jwmr
z7PX-VA3&^73?8I-qt*rNu-i2sCTZ$&E~8ZJ-?DAUT%m=On;-m{?xE6R|CaEkLv
zSodW-#8639auU?_i@4+ZaMjAP;EX~|_v`oTYdYweohSh=;=MkO^t*C&Egs@^W6t$t
z=$dt)U4_>n*3=U9ouKve=EdAft;{8B?wq!Vbx3iz8_caeD0h_>dPsyFH(cJ+#VzH_
zU%f?9MaCW;taLSGXxg9^zifLWBz+mxd54@ovaH-CTYzVN+E`+hf^uOCC6wMv`fnP@
zGFi6Oa(VZmxg&(bGZyq)u)f^S2wmW3SgfEvpUV&Wfym`q4+%f6*GI*UJXW
zVaw=dHvZv9>uVdE)1&)p`q6Z|&)%=y&HH!m-JNb{siuGaeof!IeQ$I9{t^TKDvEnZ
zEmJ~BORm2kO&QiDmWSi7ML%Tx)jZ^&&66e|dDR%cAc
z*N0U~Mq9p4-vOY^>x+RhuTx9$&wumD-+ubnp{>QwY%Rr7aW(~Yf~tLr%8D|`%%5H1
z=47>tS|NWyvLNjWJhPy(uD~-Z@JyHDX)E&hl#(2t_ZME(on=Rl2R;>rfY+dFU?>@1
zP6gpBllr406wB9CYJgPNXwx{%tIy0&`6_YHrF5!sed8gAx+?I@Tanq19a;fWFYXT7
zZ;+PBE=riWTd+-aqF+qlECse5r@%(Q3e>N22C;fuk&9(iKC31jH`Nt*X5Y{cK89sp22Z7E9~|SE1T|8
zt_cvqOndqhY_Le`W~up=x;|gQS*|rndZ9aZjxlH-4x@)GG`|bsxPm%t+W9tkYRd`4
zgxw6`V!HmExzLYsbkgiwEbpS)p9f{9t1qJzmucFYs`59P
z`+sfqAN~HdYy6q*KJxhLSB45ka|%ZDDn>cGfK`B+WGoe+W)CuC(r@=B9i(RNpCtWv
z^=6xv#^YPjF^rC9F_2;=@|SaoI*#ITyB;z9Gj1A9bAKYF3_!Ug7T`RA8n&ANu&5;<
zLU`U8KvW$^r_Hyqd*&05xHt
zM#^!B)Chl2EGTDjr~G_Duciu6vmdRmtwn9fp_nMl2V_c0hFh|o91<&^RDhZlpeEoF
zo1M=l*jI4sBhO8d9Qv#onXKzCTQ8M&?mD?A7%LhPRR%a
zF?39vrmhRfDJOSDp2hJyxb&ch$hOL%%1E!H{U1af~JAcsq!*
zb3`p4+zLdLLEi(8irf+bWpr?k53DsfOiy|pc9V{>I@Rb;e-JDHTLEMe*7htMxh`o|
z!Qd=msGHVt#P!KH1u9l$-Er3cTEv3oG^;ZK;SK&TSYFrX$ocC4B64sh%N;?4gOk&^
zscj#hC8^BfF|M<7>hBChyGZO*oAN6)MXxq%3Hy{Zg4vrIk~rDJ$5@cgKw3uMrj0%(
z)i&HP8W=!ntt{mSO9$mdiPFmFwxas^gHCmyM0>lO9ph^3MZG{*c$-&R6p#?VtjR{K
z&qxnJ@4JeNx%(}?}ehhxok3LqIRxm~$C61|({P;b%
z^fov&ZbrKa&Ym$c;Nre?28Ku~hK5>nG4_Nss+X^)Nq_RLq)PXxo&(mv)7|X@2+b8z
zGuIP~z{_Z}2M5hGn)H*;Cjh+#k9Uk;uCf#?&SL0@`zPH=k8uze0A4}N1MD<|K9P-d
zu^;KdyCvMza;c&+Fc6Z;aVu_)>s+SF1h%T%5SaaBmoDcm)1!WqOu9r5p?
zqTr4h;Os*j7uU)Xv7%t>B5FoJGK3gXnDYv$Ik1H&?Nvz45b4iul`v9ob_L*eCSZf1
zk5q=tNfe7Yg-RE)^*Qs4BnkwazYkI~b@D%Zb9D4qe{k&@e`f3Cx38{~S7mak9}mar
zhd9qFZ4US%J~<)Fm8a=K+sJ|woe>7Nu;#R-tZ1?+*nKGQZu7(F1l$AHFJ5=$o**Gw
z)``s06Bv#BJJ-ozC$XPFQ9TOGuL^e%sXHv->vDskL%VDKwKXWATa}XUa0m1h4AG=C(2q&`^J69=mWzS6sr>uXv
z&S_>pyN?;`fJP?2m7%_v*#h!(^q~0nZMzk|%w~T7Qw5y|!J{8kmp&>$!@DUCVxXqF
zJ9}PumVdmre;C0_0pt}m$Kxi{iKgx=IlNqRjL6YIs;SmIcp7(afnDIf{U(z5D@TU2
zCSPwET7{eT>HV9dnI}MJJLfIt+4hb*DSYo-$Dv_Nn*OP)`7#TdX@f;ydSzC#Ga1n<
z7obC4yG%5se0{Fl+%!S2IWM#J5#QzJrKF)}oCR@K^_9Ao&c+k}%rz1M^RfCu1J90L
z3Xq=v&ehfLB-7&MW#;-lS>FEc-l4-En(7>2P$6D6TFEqe(}M8=0u^5(Q~J?VrRIO?
zpSu~HmLGFV1liGvxWyXWT)xc%yy@y+W-fC~m}|H+0g+3*db+(26|Wzd>()681^%I{
z^D^CffByLK-s8O~zQ_T(K2mZ6Kq5>Gzz7UiJDY{+73aI$8XZb4;;PXgl0%TU)>E=ILS;*Rw{tT~r~0wFzqe!XmESA^
z*Aw=mI1ABt5_&7YtnUTFwV*1;p1+H5T=}jWk8mBv71f|qJo8Y3zG$9h+t~>BV7jnj
ziRHn;GKjVO^8jNl{~|~Hf1=i6Zi)(%tJ!bka#(|Ys98T9pY?8vw!H(dg`|h=PCoea
z|K^|kfByh@T>P2M2d|>YPQ_`ap}r)arGvg_hF=J^tdJ*pkQl)oF`;h-I6LFfBwo2y
zQjnJimur{>@78axl@?SzO`ZHxluIn!9lz}-?Rt8V&ijP=G?w02+gPiuZPwNvGk`t=;Oz_t&>zR$Yu-^+EBy>+v-`{?i&N6!yx+mG+LQbsC$C3^?@pMG`13jh1u{6lbiSKmN?bjLi>L3
zs-qNLY(`k_8X9GNi{yGbldN$OXOru9*8C`>XQ0YK5KA@HEkBEh0jk62j(%$_vyLM8x9_d3J-EHOe*59>##gxt{4`5k7CS?C*`!}j-z1$gWJ~;+B7@cw&sK%t
zwZYAMtvj7N57zE>?{zj?8~5)w*Kgmw+uG>f-MoK$ee-@}a|i!-XA@j}?aqVR=Fa+B
z?f%;4?b^=$owd!!n-4ed-M-x@aHd8%S!$Fod$>%cxk0*3Axo3Dv&~*2;TZKmy!m=o
zDpS(3KKil~!Kk#mN!ox0*}%4@I*ORxIy0R0_~us!htc}I=)t}9JYQ0j6_ohmE87rP
zrW8MkIx%J-8L@Rozony~GAi6OB0lCyVt-4NEvwqtxVur#@SuEVfi(yP4{B?VYmXm+
zsA_Azu$?B3bL8+aUi=A
zxysCH6V{+-1s5)ehh_otwOl2blLG1GUaJu_thylVbPTkHMb>d#)gR==D6s9jd^cMr
z(Klsch`w1QdpLR#e+D+?nc7BfD4qieqYox`9YRyRe4SJP2#24WdFAu&RJgykQO}=Q
zMoM?rwjSNy+IYCNiT~mEjazHmlm|ENiBt%|@cz`3-CW&m#tGZDaESGaCRPEv1)CB
z8Xn@3`-_d>kOOP#i!Xi>!(bN4-;AUBlD~cV6;aS?(HCFvFaGhx7ppACUwQY}FA-%R
z$r)gIYYavS0tca_mRpp3j|yhImim&eR;(RhtFjDhNKU^uC`p{U#P~cO=0csym}PP!`po|=^>21
z*-CoIekvF{5t1YV6aTjXdG~EN_g?w6Oexr3d6(k!97Y5_}>v#0r=ngpLqab
z2hv(zRfucKs%3|;a&hfL#LnCf;MRKrQ|D4;VZ(w(x&hVzuhy;T0{?2yp4B>?>qpn0
zJlQ%s+e*{=;o;%0e)TIiJ{ZOzy*Ij0HX$)~wkM^3Qja1o%VdBr5e>0DmMLlsEVMA^AEY*F3^8JSgKH1QPb
zpsK4I&-p14ul#J&!&EcLSC`JIDJ{?dJ-Oa)WkB|LIH*YuwPv6x4Ya8I(QQq*96raRWf
zh<*goNST=@Dc8(bf{(kfu_2tymTxT8V2tv{W?=D7^?1^M(}!kdx)PoL8Kg1eF6U-f
z$)wvGG{^3dQRed0ms^rLlwYH`&RAbpVWEv0-73ncIA702-1OM(d15Zz#rcm@gw7K5
z2mb4wfv?7>Pqk1wYbDG*U(>8D!1P?RDZfxhk1mN4tqXOcn-=R$`)w-c-x8yWk$46o
z72B^uJLEKBwt@%0@etKWyI>G@LqAR!!_9|mHTbZ
z3BZ|6#Rn(QtstmDlV@qX9Q^j%STXnjCLR2jA=eW8sO0Rt9bIKgmJm7gwezvkPUKMv
zz3LJmTHk-=X%1#1Pws`6rv|H^#r
z9lX6u{TKw(6sWVZphd3BZyne7MpP>~U1J5r%K6HlTj30PEYSS9$s*y|8Gcd$u?n?0
z8g#olN32f%m^+UZ5Nid*3WeYg6Nq)GT#&h&LWRFNg}-_UYm8mDD%e#XcHa-!)klbT
zph^PJFaCzB@f?gTWWMg`226tl5sTj?={UWq644O>1(Hq%N=LVUSjeI#-7r(Y%ZVo+
zu>6UR8em~L$gK>sL~rM@>j+@ZaE#@pg>u-Umx5_?$&Py<8~CY24*^@l0C|k%+yNE|
zluaTaW^^Cf(pgvn$mYwM9KSnonF1;qzjc8zIzoA?^Tu0*6p-*@Ly7ZX4FHYPF95cK
zp4n?So(=_~2T6-FppIyKK49=^%x)uALGK}`A5oU0NuRhrigN(y81_hR7hDnqB23_T
zf`x)_20{N!SC5;IKnEcY9quUp9x~O0Ky0!kZb58>HWvrPJlW%SaFo
z%m{-7q!A;)WlW5C$u3wrjX=lYd!=9jwu5^rrV{W+2p;#N$;#;Z8(I>;@O+VGFC7Tp
z;M|GMO)^|cPH|lpnyK62a!??$4k08gR0JVO9R`ULG0N+%5Ihwurl=B?Ni+s>XpJh&N+rcg~8$2
z^8NT7nUTaWhLugZo{
zjC>1pC2)|My+!y^S0+mjlxG>JakEFJbO8t=NnRm<83~XM5pRGP7mSPSx_O~#VmON&
zfgyCeDHm*4Vy2!uKsfubg(=0O3Rs!Qd+$d$e#tLQI>7t`6XSLf7DU$0Gp(?eN*ER#
z-viv)6q;zX!g#$EL3Uk1>?ih0x>Aomrm#Z9P$fF>Z|o_CWi&xQRyw`tqd7p>;sIuY
zP4}^ZqwZu3O*45+$Pio8pBq~Rc#)=rUM6vazM2AEHAVox?<;lJ^?sT
z$5=OyxHE2h5yIGEOopM%>NE+=5Fq|W7o1X)!X&Co@N#YM)M}u>5|8G-+=}C9rInoE0uS)=F^)-G
zoPx>{7)K;Oiea(?Khk3$;o4ZJddr-NkE09eeQa`W*lI^3WlF*UGKnp
z?(nwR8>BJLDftG+Bcw`ei4%-`E@~7*NnZNYUWWhyH$ok@T&sPRyl#(1P1n>p92!kh
zMP~p>;%3iHKc*oiPQ4uDoOfKj5yv7E?hjmRkduVPr=+x{A0XgQ7V~0BnvhoNZAiqt
zI^f7w&u|l!;#GQOV$g!J@4&@r0_-Luhzk^?1u5243SvCO-B>_=z5h765*6kdF6FRn
zLV^-YkKdRBgz;A`CHGM4Qs8b2e6DP#q
z81VvS+=|z{P%nUMtaYmkfn28!J7oe)pU4F*Ah`jY%eZH71%OVGo0fGzjOSF?mbwww
zPwHR+!U^!|Ruqp$c#U6g>b=?StYnsMfdN|9rqV(gfK-lYks7I^0*7=eswmnc961EF
z!5K{E)N@fI#v8R4yRibGcgQiETh|&VN*9Dr)q7a>HnDTSFHwo*s>fJr
zT;8P1x+`VFVpO_Q)8=`8&d}Ts49efF$dyHiQ(Oe8BDt&#@dlE}u>cOIkTOnAYpw!b
zb5(9pAD45Umu}zFjo7{R)a*|=oaPDeoUk`rF>kfH#gjHS0Za3^0cC=VDiWnqNM0xr
zCrv8>O4UI4jb)
z)t@n6aKH{QU**`kK>iUhE=nOFwIcxtzm_dS8v&sH
z5s^g=9$bu|;XtIAOqT3jQ`Tc!V-cEQcPBU#sak`65;H{}3^rI~QXIu14)t}3u*^+!
z1@be;@MDM&NDu@)Moe8R1cqP+WDPK8FXDoisb4q8-GmS);W3%00^yG&Cs`{TiD5ku
zJtaaPj{MG~4KC>^SBYgGEo%v7s_0Yy1Qr&s(0)q6R!uC9jSH9cf};`&PCP~}YLB_R
z&TT9pgp9I}rCi<30pyi7e7HNJTa%pv?P)L;?d3M@8k{8Us^j!#A!+i=91cKB)`=UK
zEFFe+N@l=|qrUq%qA3g7=8@CdZ2JzlFCE5iuo&BhQUA9kde>y=`_2cb-5ihH;u_An1>kW}~EXGsji1
zzU&(XS^yQ=`jIJak%i!JBS8Xw*h=wxm1`(BS)MFsNyYYm6H_*li5DYIaRb{Ym)XP0
zC`*^j$u-hB2vS}?SD14S-DTV4tKaY}3K_lA@2i++!Hv=3MT#+GmBG@ia+(W3%W_&7
z0Yg3UHAo6*xm><%#8@(uu@oAe0DNt;`FG~umob^8q3x>2WjwgMt;wpye3t*)~x
zc6hXMQ(HVZe~xX5!;xp3Y7a#xJ_gUpDWPe#
zt%t7`)oa{%KNQg|*-n+%CzuqOSWG76PV8BTB0X$g&(>5{0e3oPK`!ty`6BG*9h@Ur
zBgANfnUjBsVSUQ*EA_i?ms~WH^`%1fLx`en2vybtvCa$2suKICT&bI0kL?$accOc1
zn;V>^baKL&Z9r#5k9e9&8lC8doLmVs4EJk*7KV0Y9N%PdFBtGXh$9}Fhu0JMT#tCi
z{xmv;o~wf^CP)OV;3NU_hO2>`vHtinAwe6WDYp-4%+eAVfbDlDu}=w)5OQ_ffwHab
z1ROq)7d-_Aqz__!XS_>wHZY)Z3w=HT)CbOxj!W{z%@f^t{L9^a@LLhL^0Pu7M=js9#G~}z(H5@}1_OxS{mZW?)RJ_gRKI7lraqKRfnYz+Fni-x_+&jSCtbmxXp
z%5ewV{8QC104Ysclm2)zZ_eF^i&``~e@Sg3sOK2-$l6F~!Oxz1e_>#^`rXO^hJCe)&PH!;jIKK{L!4@IhuHsxDJBC%u
z&`Tg4ACEWc1Ol3z9ZR;=A7C!5awY9!aAN_#aXJ&q*f7+P(m{!Omur(ZQ#%T6LciUc
z=*Zp!J5}{-Qcy)Ti15w
zG~&^D`10_PTuodcTA?76wDeXvgpR?csxwER#$mUU!*4!U<}pu
zcOW93t$uzUx2Q{6?G74*u5R{L$zhDyoL;M#+$&Z_{%1_vINtP?$Yhf{@mcOno4AIn02
z4dO*^(LyA=WoFoI(ZIc3EJoa0!UFTPmv57@nVUrfL5%-0{d4`o{-9p)#@?=6M#wb)
z7Jy{CV21z%#VhbJB&!eRAL=2lm+)p|%2*If_3GW?tzxT8hh5-ESE3hQ2^v79B;6#P
zn@bbO-tMO}w$Ea#)iz{vvnbBo7=fngmfIz2!3FInz+uE(LeVeF?`))UQOQkhb|mB<
zk799;YcG_LxVylUM&ZR@bcWBfA^v%f6E640weT@U4_J^_IDi8&bIfEM~Gm7(8nLog*`JSHkCMI&LHI0-XOtoqnKjmff?P9
zELCqXI_7!iDnKU>&&4r(b|D$O#bJ+&xh@Ltduo4B%{Xp{(BR{DQ<$dF4Y0bdZWD;n
ztV3N7+OQZv~0tK9zGbw~A${a4uc5S*0H%k7!i#Yp~}a!qJ+z-qz}b0X%Xm8XOAm0N(;
z5}6jianLJIV0T*)(%yM>2)EM>EV@Vn(qmS@2pt-KO!#*~VbBJZk-9y!j@zgMLOnd!~8?(YFO9J&EM
z;QB=`4{Pi;ql@}AOiCAO8gmAhd8DMtdyF95fHP7rFo1#v#xIf@bNpc1U{dC^finv6
zkaY~P^&z#zO*r0~i!5m$A>2J!;vSbtNd32+dLLqB{bcY~#GaZ_xrhSuNo2{p4hh7s
zfT@sjT!(sW9iH4E-8SQdisg=>0@zm&X2#A*36?#`bQEp~3xHf=WP4xl5RESV9&oM;
z1bY0FfBfJ7&;RP)wQKyDoy*|}H783Bf#ntYi)N*wJPg=Rla+OAhR(x^o*lob|T3qc5DYv*jNnNtIx+7-ySzKGT
zGda6~%(_+J(62H@8B0={%)B`H#3{>&cD1;BzecHi?@TQ$89@Hk|MNFC|EGWL+BN>n
z-Zi(E-!)*jGZP>k5Fsf}uaNi1eaYeHrp~aFP;L8-6R`%96nsh!Es0KKqFX8?*tQ%A
zE;$ky@fl95_8anYgCR;aq>7@376U_rCJXTiJWhCZ1?wjp^t@e#h;JoZn8=|E()VRHm23Kpk0j$R-5x%||te<%vW6Be$%ZRmYg;Skk{
zSL6OFgNak1r)gO6syOHM$9w?M3VX1IJy(nS@L^h*)oA$N{u}?{XUJ&8pV>fhOYt;j
z_hI_j1mJ_v$d4|HXmMpQ=nt0RmeV!Mq%Kqc&)%ng4HGRkQwEQ||1~tDt^F23r32L6
znewMF&;hgljY6JN3jV{t{};7afI8>TY}#Kcqt`Tr+P>8zvPeQ@JK>jCBcXgd*!(c5
zUkV2OlW(G3J4y04fhkDz931+gu@77~jeh`4-!nzQuZ0a|Fm6Dr0se;5%VBiNR?@Q?&@rudnkuD=nRasSm%#=B?EV+q=T{W+)nD*QMddDZ^eG
zU0H0`d3bXbVwc1AE~8VoJ<{Yi9;6xaGlVn1R<6AMduz1^pL#Zgn^O;g?^N32gmJTU!22y=Uv~7M7t>FJ{tv0t-qMznSS`0crjaH^!7!A$ph}8N~bX|^~VA9Nq
zJ(pVH%E>BbPPdufFI?|z%3s?weah#hr?9S8$()Dq|B$dT`l*ZtUl(ls_XrdHFaN>+
z`r=FAq4Q_9xW9EZaaa}DMLEChs<`uB4amheFIJncgP3Q_^nDY>VRL3PZ+Wh;(h-Cs
z8ZD>KO8dNo?DxQ4KLX>wllXfowp+tTimrdlu#IIDJi(m9Vt+5Mc+&p
z{6zl}g4l{S@FK?wDy(#|L;PX_j~(Rdg?6@&bgXIpI%g28x23RW_^Zqksp)L-lK*n^
z%4v@t?!lM%P!cdl`{ER|m>8Ifd1i&cINzib0L&&+80X1QK66yS+@SO7sj$+E7D29|
zn?1?NYtvW0w$C3u(>&j9Nm*<*`>C+f>Bz99sSU6z;6DNzrvl?FH-i;cy0DYN5kRWr
zziG2GGX!#z+Gqo7d-{=GX&Eo7T_8NaN>=_R??Mxkq6bJTM29%7G%#NyeS~>PiD)>
z#5cKBl*iaq80r>+Rbi;daJdjyOZuetD-3nRr5A7-nA_)r)w@u70d=1WrB}t29S_Qp
z-Tl0p7;8p-`)DByX?9nX+~8+td}rm@x(Qs0$lhi40S@68%T&?rjY5%`iYX6
zp5w>hoX)4W&fjtD9xFe77+(zFyvJ`$Rb>u;ELH&Yt}xUq4E4C%girAz;(>7~e#fI6
zE)+AM_m6qd3tD{$yiYoGkrD8yhjQeb2jBM{@j@%O3&Fb3`|VoO)*X~L?6@?
zY#-fdrZ5G_0puN^Cs?4ldI?q->WIaai@?W>U;d$DsM}E{<^^4Nk9T9<(+ShSP$)Ke
zoBM}*;#iN&1o(b>2nuhPIC^3C74CU2fpbOFCXk?WIFy+K>XgOv$Q07EJxkgt#d&EF
zqy{+#6-p?WZ#_j3Yb944jp{?7w0PKK7dKCk#Q_RpE(5F66xEE@R|pFE9GI(gw`U;_
z%PieN*d}6ah)=ym2oiy7(ewiyVxpq6tXEnFWD9;DohJ+{2b`CUN*)$@N`@K6KwI5e
z=udw@bc+PMiNUN8kAboQVnc9}_Ka;Qd1VzKwGf(Kk8nlS2jGibY!33CW2(m(AB$w^x7@=k|i^tG~u_H6;4=~wm%CFQEk@l=5
z_;iy-Fnd!?S_q!rez96My=EyoZekb>H;jg5gP*FErTkzC8Gu+jHfZG$V8%t#Maz=Z
zDmm}%a&`66EWM}~=*k~zi^OY?1O9hq&{72ZQIK?yqe8a5d&aJc0STwM@4NX0xJ5Zg_WlxMVO1%ixk$ohP#2U7~%
zKA>hu*g7RL0)>*9XstMCAmjEXCy<>e0C41L#f#r>&IFS9+15>lob7w{ztQPQyrmbHRq-B#r4U0^^F
zhXbJ41_3*Y_T#Zwf$a%NRlxzCCjH4fkgsgFNe@U38dK;#)q4e9gFsOftDX6~A(R?;F5pkclBAY1Cdx4WVvv`MF?7VEC>iG6
zf5IB*|D*bKxB?Ya>!w7II-YIsdT-DxRRzoX#l}}RzqoVjtH0}K
zcmADd-=7|Z?LaILcg$3Zc!GyT+f{E~>ll^
zNp8L5Edg)eid+?YW%FAxVefBCN04BgClW|@n3$c^NFhuF_DU#
zVI@mDhU6JqC|{q4;&PQ4Z_()Zc@@6W5Wnc*Bmtmhu9FUDF6^YMS0dk+srMN}D6}1Jp8>!{myWJRf(o?
zX@F4E9b5sJZ()^O{2V13VxQRl+DKsvMWMJvdocnka0T5`Jq{0HAnWGRW9ZxxL<0!+
zG4VQ2x6FCZVNJE{i3>X51c{qj9;9w(>k|N|os61iyRb%lqVu-%^!dx(PlOlKD)5ORmbxkPIAv2f
zeC%m0S`Nu?acz!Gd>2vurg~qaoy&Hv>v)F3WG@_NtziDXFED?9_tk%T=dS?q$Di5Q
z2Y<8_8wE;x5$B)`&+OLHm5EVsnJSlqA!Prw%H{FqN=3)0<
z9{tX>AKm`_>+$TWmlNhmVfm`{65*%2xJ}9sMxI}B6vd{l0OChTQ&ba~;Bt7h_wzId
z;};2Z5H7V>1oFEc1b-C(bFP;H`OOBg%U{y2S{Xr&RtQmKx{~x4@x_hnqe(Bmelz-`
zKN5T*{*`|Z1cEVO$casS{icTklPeq4BrL8kr+XzYgU`SE%0>tvd3cx^##<8h#;-C`2Kihp9_7oNWLc=ao-BssGf|5g<-Z;;|+T
zybOL`Dauqy!{RQ5M!)zX!{)268E7Vj=UF&(HAHRXsMH3RRpSVLRt-Vz<^t=^9E$AN
zgSa#=Gk2;Qpl-C#Vo9wtk-HWHrMb#&oXT?4t;oHy$<)gUAC|6yemM&&ESFqC(&}`R
z69e=4ZsUi|SvBEw=P{C|jNM%6s!28%_o#dueUD(t{^8p1KHdM_YuETQTYRW3eWnYk
zrOU_(cQ0F~NY&*40tC`3Q(aWxV+=i6M#bqM#q5rqo6I~?m@AprnpNOqf;>}!kGXW3
zLP$=BW4h!r;;O*MPLsC8U(q{(nGz*|8l!B+%{MX9GCiSR0nZ*9aG8J=K3_=R#AFAz
zA~-LMkx>(FK1eOvXWq2kK^vK%ofjB%{+j=*0w06$HrphFEMIS&A&OF7jseOFeC$fl
zKbFOjw{00rz(IUwbg!+4t>|f)DU;oPfoWjUMYbAHgENtocS-=lg2Ij|v-I>}`P4T7
z1iGGejL)YBT!D}I>2Z@5=9%*^OXscv9}9^s&;R*`|E5W<0v|Ix$7fgC(?3k`u|K}-
zMWMnQyY^rFm%sR!W)b&qdDXIA;3|kQo}U%OSQCMA@RtL+UJzmK0@*2TsH2vkE9;QwodKi2aCJr6YJLU1
zHWC{HPeP)crDqxly#kDTxK6e;Sv8%CTyc3{cfOGJ)Q8tr5MvpLDohbe;Y2aOd;~#U
z({_`W3-DE4?zZx)q5+{8gC-CUEg&n3S58wa{I|IdN>7klFQi6%)I*x%&V|d&Epeg=
zbGdgC(3Y|5CepPtL91Ki0;*ezh-$dl_Yw3CI@ILn5`5Z%{SuFu&b1BL7qrG95dNzk
z1$_|5H5UV|O^S2_Gz)mhAKNF#0*IpkG(3q?3A#rf`7!g8_P|Kskk654AIQ~jCO%yS
zF-D4TPJS|16~q{VrAg^$6Hu
zl${Gs?S(5Ik)6F*5pQ5HYr@3tJNwfj~!{dF)?PnHDeg$bwrKjx_P_2eq
zh?9YK53@?CNAfM|m=*WctR|H87NZkI4$fptB;^YFFU73^;yM$0L3Vx(WY>5^ar)Ef
z6xy&(+)mDLOX=XY0zDyMTX`iQFH}pDfdLJ0xxoU-EppON;nU9>04hEKm_u|p5o;JA
zUn41qVpuDSe$lp@(dh+D-~9q1!6y?mgedkg(!Op*fA95n?eSXe!KXm`yHN}NsG$F3
zx73%}bja%2Me-Kh8gHZ%_|0O~MsWvrM?m|;t)$t%h1+f%w<_qr3i{7oY+IuNG$;Uw
zhHpwc0Y4B5N|1mV+cR?MFhE(jqF=|}?!-t%0Y)KaLSx^6b|IrtCXrWzD#DMdqD%lI
z!-w9&3t{!>0IAu*@_S%3lQeomn7iP=_P24K!*A?m1B
z06Voj!AOe;M$Af+29SOkDvbe5>F$0E?VK}=QRw37PgVf){^65tvWO<+vwqEBgE|gr
zE*pZYPFihbuFP}Y+jhSh%s~e>Wk;owtn1)1=jRjn^I(WXiXP$Q6um1HtuJ3Zb==Z{
zvZ$6AD{9rlBLZ{vwwd$@xG+6EzOqHk$X5C2hXen&EkW}U5;}=m9dl-Zhde<<*$#oR
z4Q4OomZ|YuaJ~UOi9%nqCDAeq-SI?V3`nXBLzT2!op@|UT#;JQhS$9-6-dD9V!z8H
zRLT$Ba!UiC1&Y1M_Jrdv(4MmgWz8%@XyIXB;uo{)u*GJf89mxJrTF}M
z1g&fS(2kO^vX=QZWjuIJr(Wstke}{MHP2BYT{|vx
z1Gy6NTqoL2Q#esdFyGT=|71d*yTe+_d&H5`SAuo>l25|D$-i9_FzZnSvDM?7>2LY8_&uMwI{XCj
zA^*+T3Ni}^+8_e2i;JM&x(K$N$ikY;Bd#i-8t?K>_K;<+g)F8*5U_icWRr+v|PL2j@z}no%Qa6&HH!PZ+Gvl+{%9s>9#Xz
zkNNqtq&*r?f3piQ9Et8n+qeS&A!L#kKjQ6&UqFdD;gP)uYgZ5cc(|y>FQr3RrPx
z+lueqYqxLT@3z*~@3c1K2Y2suI`_I5=>5*^?&iJj+MV{j*1hiSPW$ftLZ$GE?45B4
z0DIhd@M!n$ot^cE_wU`=ytBLh;K7~E-8(zCw;w*Zz58HuYRVvf(ciEwQ{ZUqWKchI
z^9Le3TkW313h-w2Pm%TR&0goDI~#ZJuDedS#T&(M6DlFmk&U%ATNxX68x+ulR)w9s
z*L`sBL3^!J+j!8uUE7TB->W@{JKfstcIW<`&2FdJ-DtVGWnE}=jFD*DJ#-BQat6!o
zDMUOquS!Qq<;N~DW{=w(qzc*6*);@D;bEm*GQNI^
z>V$(WQ|X;cSGqh{@Xl51{;h)xo`(bcO~d|@p8xRg|3&Q;5P$hIo1T}#!83Z!gY)_m
zWp?F{FF`E%%5h$Tdt3_n_m^K=V=kKW;;iQfS*z84{6WC}kix^9uH`T{%->hC@$;y^
z3Tt^)%-@yFOWs4Aiu(vySt;hPl$ryhsWTgQ9ERjoE1L;(D=4=*=x-f7^aOz#rQoq}
zhH(S-9x*Fhenv+z5=68G`wa71^UuoxHYt+N#;Hw)Z#P|AAxiD7C2ECBGL#t0W4MB;
zVm)1JSLtnqs>>_moSBQKRztaAy#*NeHw~s6bMtRoY0dpj7;2(pPkj)5^ig!(fS^nE
zh?S=&kp#iJ`WDph%P&_webpdwH4s_fE3~k_Hfs#wN7_vE<(J_grwZ&h_ZN=z5|b#|
z--79zv16vD+>KBbV9Q}2&#&80_t#%_IEne%mw^8zcbebxaJs*S`4FF#JRiACttA^k
zudOcP&dq?4|7#5H`-1TNJ%VEXC&#Z>{!du8`7>LhTfKykr3S6yg{91Re*f~d%4I00
zxpkU5(Z%N^H51OvE21-K<8lUIVrX#!BV}GQ?kdyEG*lk?+F6uBTb(QFZ2)uHHaG3C
zT^>K>ZJR{gkfFXu7aqavi-`MZ8~T+Bj@fC7bE{N<0p2zE_`D@Tl8JJ;+=`pRufdp3
z(TWvpr8|=m<4Orp6SGXdx+&iaYQ@T`DRgdsDR&3p?~F>#YrZxXShi~<&?UNdgkt$Y
zhSpCvZIE!Ov|6G*)9&S~bf3HGxTjE;8E&5FU$Rl56~l|%LSNq&XKx0~;g*MxS#_#4
zucID)^N_L)GBwo3gfMDjJkn7H(aS;ip&9C<(r70_`#{e{#V$f|2LP_46O(Lvr2o~(
za_`mzG%7?4pbz4LC1KK8i3*Mxyz1cXCVh{Q4+h>Wc``_bvM!DaaO=7&4+;xTdSE?w
zXVp_ip%ol+=0Ccn2;dbQvr$*Z{wp}<@F?QJ$bWfRMxW__-BxuBJbYKSYb!YB3XXZo
zVDcxIzbaIK%u};?8Lhuv<0?pIvbGA6xq@W2xLwsih*TgBC%94|mIs$J4Z|?#9z^{T
z00GFQ7I;CFAr!UOr*UscXj25Yz~#Y*3Nf7cvH6wwn}~X=j3#{v+QW5%7YR6e*!_Yi
z*$4%mz^x6THO&s=WL%&y1C`KdUyS;I3bC8WR1<=x%96MT@e;&43B_&>YfJH;mWq=t
z1lh2ox#_Y$MObjL>9}qIH`$MgPVCtgOQ(^6)~+hSNd}ZeEPvli1uAd`~nO
z_n4)j);_jCe+1R|2wFrH;x-Gjoj_vxr1Kv}&xp;+$X%$np+D$H$F*a-a(o!=4jeCgP%v=%%Rqlg&2F&%(NZcPfyhR_Zgx4R_xyM-$rSwyGeR_qtdL
zTRm_?`Y%S0?1Q%i$yDR&0LW%
zrWN47W3Qwu_2^><04k>`A@!jdidKjY7`xKxMIX&U*^LM0_u0n=j=B@Z7G@_|xKr5C
z%We~D1MM1%9SI6iKU7+#2BR~aVgusDXD$-QJX4$4`JYb`07j?^Q3hB+GDEiq*&th+
zcr+S}>VSghW4|zG&2js*G3fU$8sdjNgMHD&p>k3M$()Ik%st`crV5f7e$4>=2Pi0}
zMD{Jz@AzG_Mi`79-)T&Afj?y;DGvo@X8yEDz*kJvh6$gnfGs%$G`UCzGA%@GVDnfV
zM_ivNR;XbB$6z%KrtBQU^u&V4DoiJMpp}Yg9Dq{TBk*|71B66_7Uc%iuYs
z=+Oc!?UYPV3!P`@n~_!@cbX9a=^&<7z_-wv0RS9VaiC(ojfwRm6GqA2Ii8_}-e)d!
z28|~X9QBxRemH7bN6l5h178IIHT|D6A(h;Nu+>8>A+DP4al7mTtejvi^cQF$#N`C;
z#Q+cN!fD6k6qXaw)|iHJN6A2E@Ipw&-0V%zB`E=>s@zpk*b%ap0Zjr9kN^R}VR)q^(;R08RvY-T8_
zHrIQneqQxD6LV%+x3U747pw@0h_iHVj
zORbA>e3QiyNd)~qj%pl}6)rHW84yX`F(dL2S53|u9Ql(Gjx<;!0b>0wN-r?WXPUMJ
z3R}bhN1smsg-XRo)ES)7CL$l+c>K%VeVl1H7R}&l(vnR%PCXhiMBc!9;2eg#H+4QL
z)?kq+Bv9)tV9gP$bC)rpDK8VqUu<*HnOETg6Z)bdBB$B3oVQninxWgYsL6E#m`pYh
zWtW<7sMj>Zj#3Teqvn`9*l?K{*fansO@+zCEM8mtPGgK!mmLjN1`d6BOxOI)q)RMmf9*E(YBX$dx@=G~@~w_-n@n{`#Oq
z|LR}d7W$By>cUdla
zNPuOhRGrt!&LC}cfLYRx8-@`*Yvj9wG}@Jt(Lr;3n(wYZ<=o&qBj|^$n|kiKnP>gs
zLCL?}R{&^-dcr>Ai?SuyW!2GBDe8K`vf7NhmGcSzxvGtM=)-vxAA!rvuhvybh?j;Q
zz;hOaZduWx2zRd9>7M#3UCi^m3SF6ebyE~m9*}2ryk~Z|vT1XjF-e3|R<;iN5G3+l
z2j0m_OSTXdk8hBn+!*&kK&$JvlfdUL$1zOs`z>wqwg^#
z;|AOa(HjOzHcUSiGbI%Nl}*M0KVtfG`v{3kM5*QMn{J*<$1oW&)4;siwM4$>WwQ;r
zABvSme{u#mpg9#DO1WrX$}LeX_|v@F7PBwiCJoPxXU(H-lt`&G-!V6J1b6wH|LlMK
zoBzk}T)W1f*(b^7B~B8o_hK|e?N$n}%kJQP&=7O=OihJHL!2sx3nB$}<<(m*$vbdb
z>ZdJ*>w60@HwT{Q2^#ErDKNiZ?>u?FZ*!l17cmdt$|2mK1bJ1|!x>e$xf+LnhRUb?
z*~W#kFw3K`*f))Ps9m=G=Q?U?Z~*n$3&&wDnr8&n)_>OB1CQ$G-&m*f=!?!lYYRzQ
zLR3a*u+JM*DimMjSmB@4eC-i9xC0UtkU?iRf%n(MunUz*@nWLlfHOhCeFN42=qp5L
zPc;WFjz2`u!?pkW*FX9*03PyZHsrv+HO<5Z?Q|Jffq$p`%NLKfcb`3~pLIOA(@!FU
z2-v3o7)&leaQg8FuZs^eL`VlMI9LT468|t=)kifPe_F$;r~`4GlvG~4=ZeQZj8PEs
zQYQPswXxTO_lz|T$E=e9u90TNd4`~UoT#1`zJMZY)WP9PPh>IPL8&zypmyjvkY~9!
zA-Z;yN9Uzw?2tIF5GRPDoS7L<&W9g9a*S8`@rNH`DyJWQ@WGebpXf`hOo}joq3rE1Bi@{%
zFF*JaSaJRbg);;fAC-x$b|&(Wr~49y!Jo7`Fg7c%N>aE+*J`XG2qaW%_jAerDjcSe?K*g;TEe
zpQBIL{VS6eIZ|a;rh?Pda$}$o&}r
zym-U5u;=Io9AfF{8NWkbHE4xx!aL?51Iq)VD~LcCH3@0U&I-c;+hUYe;C|^`BH1mw
zj|4rF{=m5L`NXAC2W5>Gb;g2lwnR($kQl?NWz=9M>^q_j1J<^@Oe1i=FQzuO#3&YD?>e%1L(6Zf24{PhKmQGvw#V<24cd`7V%OXcVU
zs)^r-u$j<-s{>ievBc(uN|KyfcF$A-WNjqW6fRI;hs<{gLH#WdzwE;n7&;z7-b7`R
zR})&TZWA(cJ?z7If`iAMY08ClTS#)wWBWv{L6-^`n@tiJU;NJXzdXk9*iU{KVJIv<
z%U#GL%SRc0h&G!RMwAU9txd|18&5RvmiaZEWV65SBIBZxc1D}q$=C0tr`;|2A=
zEQuF^H%m!PJmg9BKYZ7gITLP+SSS$$<>Ae@5XTpN%u6#Qz|jRck_nWeeHy|r;@DZO
zWw6Y~pEd=*maM8|Z3@k=X%~P8iNi
z6+`%S#t`!Et-{0A;s=Gefss^(
z!i9i}3M&sz?X^t-w4*8%kjNBVBRu+rr`CNW355yO=~#eicQAo+7r`bwkS$K2Vo}AY
zX}VOXm9qh_RS}dz0gOw83pSD6I3rrcx%<23kD$BFi(n99C)};Lgs^}F85J5%E
zOdsxixG}keM)cLRNCH>&7UXJ%BOFH;qN58`HE0xqliU}xs0B*gZ;|rH^bmS%VP@Vp
z1W@PKR|jP^V@zB#BFD=X;XMF0bKGll(~c=fnVVXVLd-4n^e_QQSdc%f-8Y<|veo7V
z1kNdVw@)REov!v&RBY&$YQRjxHk`D2h|IwXQ`606AwWByGklNe4N{`@O2Y*#Dh97^
zMG`B|QgDYQcXmC%ggS$h`o<#W<}_);dzqD^p!Nc;v1nRAexf~c_0U_Enl9pzIGdPU
z@&z=FiQaD(&kR*y6CS){>7z=_uA}_Cd@?~dka{6@W9vA*qiQt$
zBw~d{gJ@DX{UD$PboW4-4*agmq$e?*9A`S&FubmyFm;MgNMD1tfc-+}rV}MGNX1HJ
zQtNG8ThZ^Z-YbUf!OV^o_!dL#b+DK6Ce^0>={=-;ib7*3#qcI~qIqRtw?hoX+_z&hKwIhOTV5
zfFmE2n%^>9
z;3i!Ns34C~uG7#;`xo=87@Whtn)~)SpUnRV>h8>GG57Ie>f-1{22-MxUrq3oiGjFc
zG6b!f3N4p{=op!f>I1rixvym8(c_U$nHumI#Xb5LR+LDt|1TqAXPlyvmVf$F@qMQK{QKmae4eS%?
zVHi({ho)xL;UImND_6jupDuYfC>bKm|i3>=5Jl{A6pKo_l63j9PLgg2w#Z{ks3hBHAnoQu5$pGP6RsER1hQ2aWld)!gk8k%&t(FF#w%*v;ABxoN9lXF&G!8h}TmC
z^6zvFW(GgbsM>6IFTah@M(1Y)x`BXx9X!8-Ov=;|i4MVz3g|>A`Ei}0Fv&rTsh%Sz
z2=j1(SBx{$g47S-J&4i38iLaydPDOsbPxkLv9Tr82^An*a->OUzEGzqs2GF*tsh!7
zGwLjYaD-U07VgzDG+J;=5i0rKgeH~|lO}<~o4HYlc+Xg!jG_2+D|jP&;^V>Sjf6`@
z`!S%fM{h)-R$L7cJk04&r3xsSrgM80I-2y6;0JD#;t{mRKg2JnSUGfRb^24*85M>q
z7&sHj?`BG)YK{dUy?|;>pT<*+3Z~E_mkdS<3LD|MW*0bh+Esm=go}}2aR&l#qR9}s
zfp9T`WH^Svj0-L6(Pp5P?q8>3uIVuSL{Z2_z;*{BZMof`-IM)NHpD@V->F2$z1Q84%ju|YcKCM5=Qlrb3IxC5S0I&=G+ndsBJj!?5{dN
zp~V9mvNJ~P$`}U~w?)p2ZxNPORNfpxy>He9D4iXgm`VX)qPzrPFG17IwQgbcV=N`%
z=sEegH~^)})UCc|>xrmDMU-E`Qd*bMo#{r5PD-lxHvw0JGh7Fa9dW|d(kry0fpCiKTtNjZw&Hj^Mcn*
zCLad#K{71<7bYWYsRZmO9=GM1p$Dfr?h5oUrcG7M@URkKuM8K1^XU8*ii1+2v2J&;
zM#mE7VR&#T@AD3PC}L&gQ|X0VrSLViMZv^Cqo?We@QlC9L1CYehfX)LPXP^&!>P0n
zFw1a454x34dsotg&3$1UM~sRsZ^9knafb#z&-vb}Tm4TW7g^9lJV7jBE;+Y(uDN%ehvEe6Hq;4_;wrCs_|d?6i`0Pm
zW4ZF0ue|2P9l*?v=2ZWENbyqOF**ukgyeiqj`72*yyh#f`J}xfvX;m{=K3I#1#=&W
zW1U&~J>KML6TlTLE?J9I3c*GBnB@wIOQ1`syykKELPKI=E$*G_!6G+f%J#SdaprO!
z>y_91tjs)>*F5OwDp^x-IN*K`LAnqQQn^x}Rj$;D
zXR<#Yf-+aQU}1ChO}Pfm2HjBM$VL?mF65%3K0A7PDAzE4)$S#D9kmJNZN@S6>4Zmx
z>EongYEClW0x3>!R?&P*D4IIr1+lDp9z(lh8atC;5kdt&QE1~&fWV0xrgQ?W6P_G>
z^p_y{9O@n>Az>l!Dq5h4EnbE#oe9TVxl(^C=~pUOYEo
zEN*UjquQ5Z6_;kp{QLOXLf2vT(X5)jtulM2@0!8}HU`}W0O26e2BT6qQ}}TJ0}Zd(
zS=z9fH=1xsB~`$Sh3@#kruArrrS-u*gyjNM!Qi`(vFqT}#TDjiaVoIpOOsewE^Ww7aP1Qk^Ltx1cZR|41
z{%cZl<$5pr5t*3E_1-fb0Y7;n{t1=qJrET-$nM8XjGg3!{-(fPqdkY3wLnOP)fK6A
z5g8$O@JT;SPMF2lIC>oj+X%QqEIVv!QV_*pElT5I(wV>VAHa(&ii0a*
z=9TOH56$(y;3QkQ*h=t0!7VqqnD~3k_sPZ9!L_S9ZsltWS-3)|hIzk2sHWvnfP`=@
zf-i+B>MMlm-g)x^u*+lqmlsBHrKFF31`DE-WB}~y3_=43JT-8sV_+m~Ade9&#&~(D
zL(6DfiG}GSF2olRw=p`cAPmSq6!3qfD%V@*XhPtstV5POv3T#4hU%VER|wVO5o>O;
zxVi&zPW(M(B2^WzA`G$ewOv~yC_fRK2@XBOB{6g)=3TQws8&#G7@845S|L;e+4cL0
zP+j@jR=&0kZ``bWZ6icT6TMOu*OjlWi@2$LZKFYJ3`b=cN(AXMhw6*Kq{`PekoYUu
z;tIAHUNVaH3Yl8Z758^8x&V@OdEPPx6=;$#!6PBoFC2!65-%z5@wXsxX6d~IzrlMK
zs}~>A{>g65d`V&E1fhbl2ajMap%Y35WGAF7=mEfskgI|1dR~kjdasR&m)|p5pwk2{
zCxo{E4hG86^n!aWYr&=ZY)Fg?K)vApJDqw#q1v1SEN~(U?t|!Dd(y*9NymWMgK+P^EV(T%}A8p-P7U
z#6juHU3UwJm>NMU7Zo=t){&@!$u0r7(8&zZ7ZCx3MfF%NTs19Ju>RYZ6~H!mLItoL
zg8yGcr^rx9AY8J&iD)#$nvJHPXY%G0Lr9CL}!s8_yNG87^;Ir6W+0j2i5oj)j^`b
zDast&5(McOWQL`s*lXxd|AgRfO#j846;N(7_C;_pTjGTk`MeOaO(0FgO+-G*ABcjy
z$gs?uz#tK!6O0b}ciUTT{5byG%9>;07j1hoBu&BZ|ZS^<6jrU;QYRED}DzB0I<(n4HCJd2xG-hpl&+uaMty9`h=>$m7lD#6H5=Qz5^@
zP<%tq-UMRD{aOpD%32rW_$Fl(FDOAup$`C*8?Prr$P$zlK8;Q*_jB_rp^PXv6f#Yq
zE9fgAb&$fsJXk8}U}7ouWayZWf4RG#cbhNq%B+yzE9Cca9gf}=^1H*ztdQRkm}-9i
zM+U8^VK~{P>z&24%;Z1jR~1PGy#$wuE!YQ
znJ%B;;=G_(QdhaV3{WrAs^dAZdw9`ZbQqT~y2|~$azBTb*#}Y=oY%#skwIV6n8ZgE
zj`@3q@Ek_fUJ>CLAk&i`khjgglg~X1t&#DX^a8mx&O~VeEpOt|p@}p}4wI`S0-!$>
zX_})5nkK5XU~O^i;8ZXj>p4vYjyQ=1d3mzClllstLyJ|=)6`xKaX34*j?=o8pFY8-0ZC~;Rm9}
zPhwWRnj28VP>z`7_H=yq`j=8^VbEEbPj9M~P0f`KFrCUKO)i_~gt?aLZ6r%i6(o&J
zmHJg&UGfhFjHEc{DHMU!1L{i6n2q!EbL6KO;Vgk@vD$u{rmHs#W}bX^RCVbRqp>gH
zlhTd|O+Z`v7KT394J|1O!d3;d1u22bzM9eB_S?9AmW+`Xj{R*S8Nqn9+x%Qsq4yKK
zMa=(rbkPVpl{U;0{dxyk2{47P0{X@RO0>kIcgWg8?eEU3N8yODa`P4^Xr``iRa2RL
zW=@}=_LQahDSR=B8_L{r9lro1ejM$B>*cs#`L_+&)KejzaO_zX(F=KBR5Ii%i-8yc
zwjf8lQlaAoYQP0?k9hZi?Hv0~WQTkO<@>R0Mdwd?(tO**s^o{Vhllg~&(9hu^r9oG
z@XNlB4(;uNiUczsl<&rkjn1ukV{cb(&SZazt^s{801ojA6b_8ffbO8@C7r@d4Xpis
zyEl=o5g7!3p<=5{r?s%nue48?x37_4V_?4|otsNJ*uy!laTn+X4c
zZx32fbIB9~2&BbZjvJ^41NL}wqV5$Q9NNtaC@eRX^H&SKK(4K+^?o6b=YN_)VrJGw
z=#yZQd
zI5)+(0~%8|6p}1>z(XE?WcgrdZ5mF*e4*?&fJh#suN-XOtInIKN=!pswCbfY;Q
zH`{N}?>6%2a3Nqri{GILvVI^nHbOjrGp6f8-G)F1&`k!E4O0&+ZumW`4P3peO9k9g
z)*(m(+;mz6wqeqOHL>!E(m?pT(TxIjc#uMQX^hOoP|f>}P*&QC7g*i8au35iA$X+9zU)TX{M-XVRT#a*M)m9NEf~
zwCm9gdB6pVULIN&
zBV^sJVM4ml6NZ`yW}0H)HJl<-ayu%ykm(1~l+e-yp%xep)UBjCa66$6vWFqOryx?s
z%`=?Bl50qYj#ORDH2AnoeCxmM)ceTmRzDfM6`8E2R<=}xm-z>WpHkh){?F3g%-twM
zQ0!bW<*BS7`FxN`iJJo=);Rf%P!a}o0-=(-a}@I`ElXx67!Le-OxHQymouIXhdw}!w)Ifjfj9OqIde?
zhouic0K<5k#FFlEH_KUxfr)Ab{G?W^`5zPxya|!W3_{py=5EKqi1ihF1h_1Hyah3f
zmz`;UDbDE!CH{u;DReL1Nzp6fNm=4nkhMUsN%I2KUCdWiR+$u+Kb`Q7IcCw>^OR?+
zXEb0x%;AJ{t%clu0e-bJvKRM~xIxxKM>#K$jPweFZG4^=>_I^tSRa}n6EzWP*ngh?h8%aiE{~m
z#0So~uVJciIO(jJ7)^^}muI-jv;
z?oN#)B$o^T_9v){T6X35GI|6JJhH3!6LTA4_&7Q&JzN^FXwFX@HNh-kcLvMTv*&PDV6R`-7{>Z
z?US_M9KvgxO4Iy@?geKhL`lwnKHYO|Ht24sW{5{4XiE_`m!iXLl7B;;D1Wo1G8>6-
zm%5CwN)x3LA{@-BG*ROsO;l;3s?hboCrK>E*e^~+P=&5nq3c!XdNC@y3SIX)^eS|n
z_ZpalaY>_DnjQ-<(S)Au)SpxJGKxQ+!1+o51RxG0u_XB{Rar!&6D77N6Zq7U2=O6Z
zNqcmN7c*ot>I|UYLK%et3_qU|#u-pohnh~ZU_nwma_9?cCxN<04KZ-DLJ%i0@1;v^
ze1^b6=^C_bw8VQAdKP3UM))up7tNdrLNlqiciq$a9YzGK41>0Wl|aJQi4xGmVx=m*
zx{O{yy>ywC+p5JuN_Q2sK@3b7k;uG&Yn0SdIzFsP6@U(+dbD$hNLEchSOuWNnn{&*
zfa>vsPD{r9QH8ozp{{UULOep>I}wO_Fc-wYFbN!C+Zx%wizADEPXG-VoHcPmK>4sA
zk0sTSJ>e;(cA2M1fAS7Y8Am{_O82Q|WVQyL?rtAA|Dh>&Fp1Uh0i2RC$;`Y@h%QuR
zT7nZ0{48O&%g+=Hnh6q(nM-6C7!2Db-bDM8vlip;@`iM+1Tz~ba`K8TJrN<
zWm>92U2iZp6%K%4h*hX7qb~z*f3O$f(+EQh9LC6XJi4l|6ny1#K%%VueglXmr*z@O
zZ3({7x8T9qN}7G#ghp{(g}PRut~~}8RiUnd03fj@=8uUpThD8H(^a9aqc1u2_JaEzfxIaeytC{dXM
zc(5`2%Beenrl>iD(HrjAxcvKVqs_oWwttl3pipu-nce-hzM^0B9n3O%y!xfp=jxiBu9}
z^q9TY)thsOM<9lL3(Xv2Wun6;+Ztp<7yVJ(Lp)dbWnLI|73R;g;2d-QY_1?i84{Cw
zY_jx$j$1W+f4Jzfw`a^opAqewDpm@-FkoX}8bn-htyt-)5dYcss+fr?ev9Jfzzf2c
zhy-QyR?hQnsRrNvTA%YQypSGOZErOuch9@#W6nWr;FW&i@lV}oxgBtjir87
zW!20cEPJ-(V9%Pf=l)r9$*D&rvpa)Ymh8)LPG1g|?F%ZI-51odWM4*UXZFOrNIOf;
z46B*l9o93eKNsy&c(IoVGn5DC2r}pJGaQ_!2n*MUqHOB}(9^ux>M`B4L(llBI3(vD
zzny)BxFvoS_BdqnOEnDH1xTXfKx9~|WjOBfv-fJcEFfU1#utVLEH!e^beC(hlncyl
zC>>r}?xi&99&bP^E0#yS9?*_w=FF#(XKqYq`!S6Y4?GDVr
z?Kkh$pI@>DkqN$*4lPG+Iu+&T>&(^m-nRywpYh3=OYS{zpAGs6ED$re=gcOPLGx|k
zFuO#Hd-x*on!Rj;h`YT6liY{kensZUhAzdK*w)oKk~Ft)he{il+nIxYLxX-Uw@lCb
zFitU6=sng77v5fjHqpy94Iq%7xKS)>dMeIW5L9sIv@yO;}j}oWao44C|NcV!*a_oD1CIX3;9uy
zPpnbkZNjUs*P>t{+Oc@iSVmBn3#1P87<2s5h#@R{fUeEU7o2$D*^OI{IIq;>A;K^S
z?G4v$ynW>U38hr2jeU$VlAY)vPxW^_7%3PhA?%@(wDX*@(KO+mQ9a`fZ40|tOk)lX`w
z33a$aNhqz@i29S|HAYGy1sx8%qA#Guajv^k#?s8&M8=&dL7XzFAoDUdE;vttnp%%v8PR18HG6wwJx
zq==&etV#>$JL15ol|yBGY-tY2o*m2!j#(lQAU^=N4|IqUton?>YE>93rr_Lp&KOdH
zWQQ0E>JZ?iIFW?Cslr%6qu|Jwk7_m!yZ!wPW9`Im5jI*k1H`WURciOD65d`i-nEJv
z#GQrdTnwHnp`1hE$pmF*r94)7BQ
zk`XH-u+m%?pjOS<7a=mT0U0HnC1Eh@8;TQJ33`UEDnQoJ(?f{_54zQk5d&bRHnQf!LAsMgl2%cJRn%ax-7-_Xl5G_=SVawv-E{#PjD7mD7-O?bgq#GB
z%v673`k5*LX^Cr+-q&zOR#9A46c=QKDvHZ1KTD;#A9NI##f9cssy!6vK~caIRfv0C
z%~Wl+H_F?3P^ZXP1^iDHJ|T&=WB3$-QEQEw(z-W+0Usp>)HsOM#bisAYepwfdG}oc
z=^GMWwGEFk&?(#qnd#C5NUhPUn@s8zK~!$3ayp>jTCV7kq&%<+VS@;-bG-8C@MuLc
zKHv;}@?`7mEb>9LjPkKkwY582Yilcj`^;;R#XXn`JD-^1%jh|Bm*FM_+OW%6_`b9P
zMrEaaRQ<$pXPQ_n-Erwbqq0{#l}Qpbhy
z%Bfq0u!TXiRS27E2JN&d<KQI4(_TDBot}IIvQ_Z;1Z8gSl
z0}aE#)Zz`t9x2mekg3d6X3}k=n50yqD@Cc2lyb_|&Z)W59sDm_aWL4B(9y18=-E25_%!7+!c`V^#wjnB`#L?>pz*`|f-3;zyK}m6>&k
zQWhC;|K5G~o_p>&-}#OOket~^&W;T|*d?y|jfR*YH%C=*0>dUiCIG#f$)h{T5naPb
z6l8~`b|zttF@$YijbX2W8f2A-%{_*&#SpgdMhM$TLkL@-M;akJ3;Z#N$f0o)UK#ft
z0+l<)zo0zi^tdp*ZdUMe#UuG=sV@EU<_k&Un;dlJP@3<~`ePj6J^UvdUp?5)dPDq5
z26QINBM!}b)e@I6Ptji4Z|EE%t@pKNqZW6VqZqDBRJ+tO$sZK{etST)zQrioXNi0!
zbm{;SNxBd|h1IObCw96;K0rL&1V`8OP|J?2rm{#m&8fJM3+b@WQHCDZ4dSogTT
z;L>M~L61Pe+9Z@lkIjM}@gfEFQVrYXf(Snm{s{-)v>LVd>Kn=m=#ulcZ4b6o19<9E
z(G_B~mb7JU9P_ZSCFLrVCR=PXTw^s5n@ClS^RAc2?bpM4xuVntYsgk?RRnU0#P1{e
zbCLm=iWaRe8hQb0n9Q)Qk$@UW4l?jT30r_zc#$6uahBX7Q*^Gsk`@pf2)5xuGP4Qx
zf?xBI;Knn~K%g=>&?+2|#m=m6*<@!>g9$eb?Y{_a#{uc0h93b-;xYg&RK}wNU2VWN
zSf7y>50rvB|GppUkxp9&Oap*#nS2@z#%WJ3!F56ChKT2+ct9#4%maWU`giqxt*VP`
zTM)OFB<7?s7{Zt{g+S=&8S#!l(nx|lPL?@B?;bt7`iSx0`2PoTQ(<{-4apeUGS%Z5
z#g!YKeuMtKY<$Bg;F|^$dMU@bcs+^gt1gqIzQ7U*x)65pm@2`cFe0oCxL~vez&mhC
zTgDjxdxH80Ox$=eQ$RP%#o&vSiLfbOEat(Mr({Q>(?`3poXWK~(>#
zZ69^YLdJm}7w2lv&Qu>L!V^NvXkt8z?m#oXi16tWoVYTEr4qj~g#8?szWTW)9R+dd
z=5KQ6jeZRgA6_V^%G9C-P~sHBE?xER=#M$Xyf-`sUqF>C02`q0wNI9k36(r7N<^@^
zuUY~llTtW*kzEJH7`z1wgDAa;usqSk0*#0Zv68>5Ga$tgltnczi-MamRkP+-670lv
z$5JqJpNUqkfiE0`_{EtX33_h~zF^|GcNmNFJrBOfikGcUA1-!S7O<2ne5{A~GTGNJ
zc~dAUS?i*dtssfev@JyI@N=9nr;xiI;(~??4X$`EQ7_Cj#E(F+RkWQs9cx)S{T!E*
zQ(TRj`mrk*w%a$!k)na5&VgRd%?>5=Vt(
zCj3uE7ZI^`qv0oKA9zne-Lzda@>PL9>vBFflYtQ=Az09bcjA
zmv8QiP3maakE>>3KO5CNpN%vJwN2$C_xDD%$Gxmw3}m979ULVm{M9`OMpI_Lwuh`C
zOQ;`IKC<^OZ>Hh303((T(5}>z-`6Y{x&NCUGC@R09}7c1TUSrGlC3ABRPG>$`vngs
zvuyLNH9eyiZ|CQ2!~i2DIinca5`YZ@u%3~Gnd?0G(u`7lxvVzK8u<0hIB#22x-LIm
zSl;HC%#n+|+-c@6<%h;^v2MHhA)=8vtVJ*syC=ei)lVu)AlGqS?(tn2v7&wz%z+%Y
z_SB0F!JXmf?Sy|+Uz)de$o4Vlnn^JT1Vp3GVO;_|&N>KZDMr7==(n~fBvz2A+-u56
zCoH{vrmj?#)7xER^cy#=%vFqj>yy^OIXanh2b|!To{6NR4samypoV++U^f6vh=XGHg6lU5@P0%b6X2P2r-?NVU#kUzH+aN6g30^}*F8Wn
zsB*;UH@*KrD=1Cs0hd9HeiIIfkU%R&zX^SDbfs#)c;L^eca60IZYAn|%
zG6%OfnZw2d03$JBY^(qW(>wq^xxwLBrux@l*skh8`$5)-(^1a2|3L4B9{T8F&P7re=
zOc&!EXHrJHzon;YJVp>4Si;oJwN^4HxUYncbApuQ1Z0mc8e4MidV1(_e#vPXqu-!z
ze1)8CF@f86A%R;APPut-%5MdW--w2n%yBoy!b|OlgjZvv;@e5d2^Voh!Y45efgn!g
z-Yxf7qhD2!H-V~1#Yr@Q1#8*YF%1FZ0U{C}Mi^LPhMkwN(H6-02aqySzyNKQozKNU
zW6@y_03{e_mu1sibkCS@?Nv(?>zsjr4Nlo%3j5Bi;9oAb=}cnDMZ*lB&K4l(4Y_bK
z0L{SU7BV(V2rGDX)?&U_{<{`5wv18X0$U;wv)-1cVs^#l`&=~LyOu?Ws7%&_a+0U>?&df!D3QIFnC`C
zT1MR+5WWfqZ+&}NDZb}Ocuhml8vry5Ae{k{5BO*O4y@4SRv4-6D+HOBSQlU6gQjME9L_{Z2{xB0G$f*2Ow7S|!nYx5NRV6t_U2A+
z0wzRKlnfjjeSx4}f&5Z-!d*6pBz;Br6oPu81-OuEUiCZ4-C^EER`2(Gf5}r6c}iOZ
zQT{4Y9mxlhNnsgc)pKD2ZPrJN!PxFzPN(ByZ)XQ%PX~kmw>Ykp1Rpytr@6S^cV^kk
zY>NNtQ|^55;QsFJ$DeJNjbX6b0X%&e(f+7E$un%gb)!NAKuVf^1hL`K2M8!9l^ebWXFq!E^RzVCdm8FF08^O#BOloUE`
z4&NM+*AaO=1s&oP)_fd?lhn+ouxFFx4XkXxM9wYc<^EN2nZD}u!AXjgx}bl#Alwjc
za2}xED&kDWn&5;;!VwJT#zA7tDj?9F^+?@JUTi5SK{jyBg1f`0Kbt6L398x|1s}~P_)XtLFRU6U?j)+_LxE!5i6hb@5aeT
z;i})uRaxfva$QIsi8;^E6U`|xPc-KRmI-*%fhM>IS3?(!^!K2VrD?Z-^JZQCixLX&>B}zL|&Utgn2So?{mUFaNUY|N4(d4*`{#|u|bD)Uv08R
zBl24Ha%5vMptT9Dh`fd)0^VkXq=Kh!O0sixSE%t2xX;lYkf}4bhq9tDWdMu=4A3;B
z)Hol{j8EO!4eF~Iby^_tB8=)A(7atFPvs95^W0VudHuadUYizhBj7cT_XxTEVMDHI
zKa0%C5ih!%^kBL{)>XiuZ~`Dm8-SY8v>m#+!nHyzI^snmUR0T?-6dil`CXs_izSuD
z1O^ondB}@}Sn92~OLRh_+y&0KWDBZEu_eg5Eg;B&dM&nE$ydzgMQ%8P;)HG<=-6Zn
z`O9E|u+qhRgs!Hn09>7PJ4!nfLs5qtC#Fwb&$ghY3aBoLo}m$zr)T!U~JUMms)mxC;efk1j(+My2G&S>r5Anjm(2o3DxF@>5!8BdXnKj
zx_Z@XH(`a>>TWoc9<%9um?7_<5LmD4v8m2$bt+uVvcL3k2OSWRU#?s-prr!8^Fp1?
z7mN}_FEr3vwOp2Uy76L}A-x4R1g!`8XfR(hv(IbAUuRN@Rwsdp46Zprvi91@82wRo
zYF%^BW?jhrE5BN}zC0Z96p?{Z
zrXn&heg|ZD4(=1*`xfBisYew
zvTRK0t0}_5(|+5mV{M%HLMLL!=~J{|MF1QdOET#%w8-l=*@h`NQ{zB5z9p@rTUVML
z!4i$sP7W4~$$TexCKJaC$~`~--r@`{_dbti>
z2!Fux;&L%ZHw&}p?(>@fZ2TP^jx3-XC$plJzCw&Y9b6(RPG}H=Q34DDRsbu71vs$K
zDl0Olp}FA5O&S_I#;b08#)hV7M_|ISWdmb8`)f5OMu}CeVLH&?f<7`G59N|L0DOqN{XPZR(ZW*wL|%E*;R(s%1D3T*OFNOOQ<<5R&mQ97~U$q
zFhZ>qYE^Y&l*##I-mB)SB^D}q1JaChg*3I|zFXDEcNO*(F;OQ#Ui1EP0=lB{RFb#W
zC4~XQ%57My6KqCb1_$nR-n)dsRdOtga?#2`G6NxVDqn!92g#RJ>v)PU*sDLR7wZ<&
zj2^1Rx+nOesjkxQ{Nmv8(_=>h!}aVaRzSZ~e@^Svo}neQ0A-iotjMr3@wI!lY%YGnyl!QbIr?8zACYxGoAPa7Kd#h4ZXo
zI#*G@u{f!>)6USPa&IPpV^`8R-cLvY_gkZXqh1@)T@l?C(Osi6wZ%_Be+PCsAnutr
zPOxc0j3*aLV$FbK(_;j;s;|f-gj6(>IpwMG$qi?NX$C?(6z;?5Q6$^jX7wL}r4Le=
z=Q*)$#Q+KDrhvxvv-5K}>Y+4{1HlvtsVAZDI+8((`>e#{8CC+}E5DvWsWGO$qIa1_
zbXOhSRpWPpR<<9rEfWgy2xv|7H6@uwoyc6pY|Am*@-QoeDQ!(AXP@iO)2h98Qs)A4
z(|SQhF6!lA<6TG`4XIly?+|ymF=o)YU?n>vU0EC0;f|
zrLKu;AT@7T293aRES(@A+5=F~P!&tyTe<9w12oZ5ksLlgc;>J~%zRxN&w`P<($WAN
zw5hsEpl^JmdWmdLX-3+XGTflhZcv2#r}T|9wB{4CTXWnm+=W47L6H^B!RH2*Mn;AE
z=Fu~UHjy3ZTg2zSIVJb0f=B!a9lYWza@iZMf@1^cGnnk5xQRYQT!p=lrSD(@HiJn^
zN1hyVJ~*1bd@O?#66Jwnu$MfbwNZKHK~%ltI!%V_#@Fj4A4=Iq3RR2&*6pcq4mdbjZ4y;C;JC}Ypr-i
zL%4f8aQwjXD-^ir!JRKV!$d_+tNVmlOq*arOqCz)O>_
zjvgH)UqX42UA%O%rN1t-p=&SlD@dGTcI4BDgxQrE}T<(Zv*$$l-dbw!CyN%8=K-@{^Nw%YRg~y^6qh@zv4s
z37qVrG<2p@Bm;J9ymF|A$kH3Zq$5z%oa%yGq}EWs=!ov@p_W4QR-WvS=}?oZcE+!+
z9f6u&DU)f9Kur(Kia^cpAW-v%2XlwDtOfKRUrKw5wSo#f|JOQcJ-0bu5D1_WwohgUyGtQi=-TS>xEy#GEh)Ij<|
z=N7+X@&5abAKnJa>yfxfnd2$6cycy*bKl12{mS`bGCdS{pX8>|EJH+vEQPn$GB5kD7mX2zVE
zME+V*Y-S7vJ^;8GxXW>@>&F$SN>YKB0hAW;b8=^2jh}OwB_V#?ML!>jkK~+5xQT>5
zz@`5J76GMVRC7b2nvUo{_*$(42(!&`I~l+bFo0?#y{}0p=ej>DjRo4)Ru{o$-C6G?
z@YY*Y$%2Nm6rk?_Ig6|p9`6Cn)|ny$UDJC|wwN^KESb|#LS4>5$I&U1mh%#kQzv6F
z;Kv!94C*wU5QTl?iV7m3A{DC!>ZmW&dZMNE3^C@H8PeLKq&UV!jRWGr4Wr&1Z?%(2
z$8{shohqUj2wcR-$5NSgOhJ+3{wEK|IRY%`oR5Nu_E>jUhZ9uwM(dnVuhpQW3Oq?a
z72bOcONz#vnKo6tKr~M#)=kWr`F-JydkInXHe}o-f<<^;dmSOizR#HP338J4w_W8r
z+*#5tQJPTT1x8_!q`EC3VHrLM`O8}$G16VItzHna)&qp8r?^XibTrJhaF9RU|5d3e
zhp3f+*iuOcXcr~oEGsS{DbvZ+NgT<2q5RPH5k;Dd*TaD260D7w3C|&f^idEKf6XUB
z<{Qq4bS%Rv0)rNiMtwj%rRg~|;yECo5R5OT?;=!1vlH
zQ!PDam1!*I%vAfNGgru*2k`@lZz&xSK7t_|^#-#(j4NPB7^)|laD5B&MAQkd2Bd$BFrr2%$&A>Jv0B7qyc~e@|fsi
zkib4wx0ig}c)Xx0nChlfrkeB?|DEP7CHy_d6=v22eeaA{nNdH#rs~$THe=4r6QF9u
zKsAO53O5^QtNqp7kfm#4L5Fl-iGga;xn}qQj2KXS1PtD6fWiC_;-s>a2GK*0bwvI)P0O-IO%U
z6V>A@H-dGCal>Mo;Z^`4i|`|{RjRP$VIEB-|5>kZ$S*~i2NI75QU=fAr3RYu^L%f}s
zKT=G;4hGFNbtHI1H?l?Nq^lhUyq@u*`G}VvZeEkD+sR?
z3NF`z>j|6F52Y?1TwlT;UuX!|Gn;cEpXX=GDjDyvD=&XSon|_9Fd&+P$oJmPavzBmG2>l3y(&V4{qn-LxMyY%Ln!yvGbb#UhE~4G4@D*{PN;nf}8&J
zy=24>E>iqwG?R~i-C6p8xI!?YA2ww98jw0&KjW%TJo#oPFDN>Brq%
zzOYDNpN2dP9IJKK9(H~WAzOCoDnH@p9OlZ(85qu+D)aMomEm|{uzW-HFZG*x0|o@P
zD^b!v_31s@1kLz(vY(1MwqP@teu2*ygEqa@^n)unKtXu$kh3!D%S0
zj`H`aE^Kl83U8kV61g!jqAy_CguQ
zb=TTI&tPGfnj&MheL}r)QBC3h@B
zvnlQ@;doB@N&WmPE0h{l*@dY*^-4IeW1j9T=IM@kx+4;uw?nx$ez5zx%fVFp{g|ga
zGP%~SRaGdt1DvB!6-(~E-~knp=zwR81-^l6Ebb$upL7OHy`D(2SQ7WusGLF|39lH`
z_IiVi@t643c>Wr(OOuF1k4W^0M2D%B=3(CDVI-(P?dht13rwyKC=Ed;W?fubBNF`w
zi$w1so|1;CZ_McE{x&PV-p6S*ZR985GE`d=!!l{zf}K!q_5z&1-vZ4ktxU3_RK8UdM3SIp7S^qRg*nFX`&
z*^Qs)C5@`&vnaz=<$1)ZCsou)qBCr95qMV_08TQIwGj+~m;^V5_9j({znmm)`tet%
zn+=%x4c6wDX$mmzSff@ILB+9Hz=2FzkFEh8(X~k;0t@u0!q5naZ}67NhFK^dNY8W8_0%$994R#z8@^J0}Ttwr2RHGeW@_*xMkm
zoe7j2ha_$1LP9HZ8*X;zvAhIsFb90u_)-RW{!+mbQ}{LalCyGwpCy0#CqA%AMQ8XC
zHnoJJ09p~auyp0e$Oj0FTD+KC79;?HGaVxz;OM&K^2fjL@Z#~$=wHn^pBKUu}63QaTtO)*(;QzWKLl#B^{|lsF0RIvEzYrTN
zYs6^md08QaJpiT?L_-sgbqcu+0j-!|7|%dcp%#=42sdG+oXLb!s|U2_tbC(3BYCOmq<~rnDt*JmjHhD5zsh9+!V4L6Y+}h
z$*QT(Aa~jk?t@U&W+O{JVYsChSmq@x5YPi15sKjsQKaLJ$3=9K%Q-*<&B?UQB}qqQ
z6+{n^ByU0PPAHL^oJXnPU?;Fc0`>JODdvbA8|u|Bg8ye3@V+Is+#}UO|FJAdfXb_g
z%g0=ufTIVp{S15x26Ek&VjlnW;2cn{%!p#7aiEwN|
za8Xko07wV9r81{VNupQ1iXzM!Fzk3`xRpFp>?5$$2<1s$k`N3Qt9+a?w2X305Nz5d
zXfM!a1pi|nFdkcvAB29djl`>h7-fk^@c$1D{Lggetsbbmh;M}?9VIVj1E6lz+z6f+
z?4~|KJ)y@G4A4xz=z!V)CQ1abpi*6;N^=5OdabsO#3YGLzkmmq2H`<`{Wiax!B+QW
zDhWwp^IhJB!*mM}yzR~)@E}@*5HzT8+mw0r6gloHm^S6{{w@fhVmOhISe{6XI)pk0
z{1>$%U<>onwn4i4WzFgqbOWs(>A_L%6f9Q|uQXH%+{boqKC@s0`?IMeCZ73RF@4lF
zu=dA%^Ds=8Up)Wv3)gMoxSquc08wupB2osAc-6@U^gP#>j2o39Jx(oB%6+W%a%bVto$uSC`_=fS|ub7#(jw)s-g5`^*z(?R;;~RV~c=1X{QmDCsjew*~gKm
zNZt~YC$%2wck6nWf$t}5j*Ja<->?{NIYQ-iLg(+{fR)u+dWyQ5@kV?`LK6Y3IUa(f
zpYE<94HGfY2kD4p>eBUs^`Yj~+A5XjvNd_ii&JoOkhaj2Cz
z5j8oKb4W#o!NCI71!Gx|S=xDj>e5kA1e(AR7BtYYyheDB=U{n+v-WeqOb8~yd425y
z&Aa#vZ8!I6XZOLZm;xIT9^X194^D~^H3A0#VL6Z`fKgKO{oRYGAy@*rTj7!)GKaBY
zOekg52oxHLK_`!eC;|64Wn;<$-h*Pwf|#-(rYwjl3u4NGeK|%KSwUi;2z0eGJ5B|-
z<+W|~t6Fe54^~mXC0khx6yfP=s#$K_F`)ATnONIlhg(SP50pUoS4D=+tUg+n5
z9H4O{FOmu{%wc#!-s)lj_y}sM6S8zvu-;18nIeF3A;aAZUrLY=Ztt|{rV~1l*o%AW
zimMK8IuHSa;Yj(1NkkwZS?dDO0e~{gF>ebrBA7RAOiJt1!vRtC4<<2Xfh<1cW)Kr=
zU`7B&oOITF!Mbc0L&bF!#XymmvcRrdB68p`mxbZXE{>845-5j_T|##mNhCK^xU0w)
z4al)n!TIW{!JZ~-}dCZ${2
z;#m{rUumhOY{>icbHgtadg-){7_|WXH>NBYjt4kSaW8P3a^fSXkkJw}hVy%$38B*D
zFvCGEDZu;r5Emfo5Xb5C^CN%-?Gvs+1v=^ESpd{D`V6G(rPNz0nmxn8AS{e*jP0e
zC+D*}$w74?`93B+CX|vW7s-Wb;FB1&P)waC%>i*$?hy$RQx;5KN{)MKtxRZ;9E-YI
zJyiwTXaF&=m=k%^&wBup!PcVG8@Mhn;M}v(c;=`6h<`}Vi2B~gWv&%d7DQ}i05J8q
z$&xVryN9g=yi>rGE%09D!yHL#pf?ysa^HQ##U3*BS(WY}@4akW#sjPKIX_EIAo^L!
zv(#ISem0rT+X$C!D`AaQ!u=EQ<+I^%Y?4@l>?cgfs1)?VT1@c@>
zFInA3O}cI;xaGDq!3Vx}75QoMg{1vptarDUl8RQ4@gr>+`51^sibOw(XZQ-K
zu`&K<`V~jhupAiTjEZfh01ImCr;@{k6-ykp>zVnykgtKcDkzKFW^;onryK&yBu{)9
z1V4*iPWh0U#xk2oLZPw+{b0%5BUl1zM|(6IcF~WobRr)o$MW&As?>7I8cP0
za!_0rguU+SwEm6T&wlp%f6)1tkN#q~_t$Rm-?N|n^?&V;Z}I0J{^ifUl3(mUKfd*^
z-_l$L+qBnIvZC`RVW7`q77fcqd)n#NS!d#1x5Y3woG0Y3%)t8|zHQ
zn>6^rYc(iV@1oxBA2dwd-c8yS%W!Kx9QbM77BKA|w20dYqG>e10Fj)?m8f|173v0R
zP`>Or@pIcXRsqNOQljSIFMY;6{FWrHhIG#lDnodPaKI_N1p5wzBX#P%hV3|FRx7xo
zHCM7#Y18&&Wo&jBu5a>%1s+sdG|}wmMrRmBbm~@3NUgI2O1y8y)qVN&kSnX6LSmxlGV7E+{dq#
zt#fDJSX#i+h`8Ai4mjacQ1-$B@4vWR(C{Fks_-?nZcFb7l$V;V_ifudCs7!CuQBxq
zBZ6(MoQyx4;fx(2OpkzL3^D4sqEZ4bxbGU}4F!HQE;BzWIOuoBz#!{a@gs#DB|Y;nSPULfWf8edSTV*_PLN
z2(7r07u)Ek31F6jrvxD2f7EEGuWF?R-fB^I0C)7M-8?}XRjn$0rvP|WA0rKtrG8WJ
zj&}Rq35JzfSe;@HMJP@8k~<~cZmDgFmcLzHaP}5%ka{k7DSaq*pweR^_#SeSf;=zj
z^d_4H%laYfEjvt!hp*~uzi9=%ZcwcZeB;2{+W6!~vB{{G2Hi^cZZZEb18-|{W(WKx
zvv!JWfs&FKa^CHI2c%~s-?z}*+H~*{@X^ZYFg0XhDs*@2Rw?zGl}*_WKZV#7Ev$l?
zc#|+*S;#KQu)iRljR1~()lv}p8PJZPyq^o;{IUZxK5NmZz<<|*b(NDr;jmjG(%*5;H+lZg(>W;9rE9ah
zsR>rbXHP|$%%cZ36C@nZNHHaxd)@pBusxnlFep3
z!A+NbBr(f;tJ&dJFCIK&`fByEIrB3eE*dVTZ+qeRfxPz8*)Wxy%$3(v-QS6y@kR$jlKY{9dE^<$-r`3Q4{MSu^CU26m%3Ycvf
zhruE1(OJHB|e8E84?(7n*ZdN``eFpw?F&UpWXlSyW7DZ@BP`w_x}9f
zLD5alRN86n6jrICmR2kYI?fc#>e?MS^-F5_L3in$y}l
zO)m)H!Wn?&`)iI4Em69NMD6&;mcSD;F&E|f4IX;KxfE}eo)rEvfpc$+5oF*hM3xsM
z;mOC$4#Y{2Q&aVzA5uiMylx`AKpIX|KlvI(rqh=Pcs*Y0$f)~phy{rOae0*>yW!~<
zCn5(~%d!GWm^5m_Q^2qld;xYrdvP*_e7B`D;CCddTBaJe`!|WKmNrg#<}OB8%XjZE
z!dlx$@Ug_EpTXS8fh>vOcHC5DAp7eCbNj9s=WIPeqq78h3tieds=^RU3pzOi*X1-#
zFv8jNvW-)^Big4$PcO8}QizMxQjAXlScn~N7;TLq>%lFfs7LGL+fC%VyQO~{x%+gE
zb+j%j{0v8hp>uTKZgoN1*qy=6Hif=|Elfdfr3F13hz`WpW&_?gsA7*?)R}8~59%n$ebn1j`8R14n`3jtq3_675(X#@-^agp6LMf9v5JGs}7T?AR#*I(q
z3Q9^eqA1$Mtm}s1G?TDN#6Wi@laA|3vdPK*q6!bpk$>Rds49bLD9DH_bH{mNP6s{?
z)}cQngGs6_4L6hx*TgX{I8JzS0h?JhA#2`uH+oxE*KaX`yEf-GaT`wg8*jtci5ixf
zvL(!PV`t3Pfm?+j)bk{scF=V&6xi&<7&Vl$H&#WsZa`t??1AGuwJzy`KdYseT<
zWWQoiKa}X<+7jfu-EjSdTVA7aA!IP`T*dTA0LQ^MDUrppd>{%W8RYjTy0|tu`ji_^
zPjDcV#5F!eM9tv>9roMLmnJV|AK7!pQ^~mP!=`ynBd4aY;dE#jMfy)9A*F)s!ir}+
zbawWK$dfVYcZOSt;O=z069AB*(%dxqxHjKzKKFV5B7aE#{uk_JHpE2G=TdF6%<
z0YxLR(U~eR^&Yh`cZ`U_L<=ohNFc~)rG@IG>1;=UdF3Ml!?b1ZH{)f)d6#Deu8}-N
z&V-Iu9=!HY>-}brIV0KFS<8SE!=tdNJ;lOpVg{2o0$Z3ilE}^Icgpm|x8HgvHm~Dl
z+u{2dj9Xn{Tx{z$9pVx#BiG$x)`O-+PNY7r9QWV?>1Le~u3ZS?=oY|PUPHymuZzH}
zE3X9+xZ1?pzUtC`O>(a4)1VtI|JvPf9!fQp(#q_Y+>vslLf{B5ja4){gK$uQKYF>Y
z<>y)$-bV9XpMx>(raZP2oqqa+S3^FEnCz
zmwfYRSD7woi=1PutnWjfu7$VA$yqn23wn#Qnu|Rk$S=3hx)og4fpc=(6-@RS>Ldx3
zlkY>cZ1ur6nbVULS49|Zyf#6K{%#6S!E9VRIyG6CpF;tEHT#hsF_cTf?d&=V#~STO
zjO&IXVOLom0le)Xoshu7dHdloq#$=S+2R~#-66+Wpf3@48kdK?O1B13=}@rY6?gVQ
z+YZ_lEPkUqq?kjvxZGnqWKoiiAaE59;I0}vM3GG8^Aje=VYT>Beg;;%w3QtPz7M?^
z!+mT)#_$}TgCCTwn^R_p;q&Rkt2UBw;`H4n2oR1PTqr=a!!mNSe}#jhVZi!u?p5NF
zG|u6JVgFZIdQElB&9UA6x9~UIBeViek}WuE`1{&{xd%ZV$W=tK;7)VXfmTLXpDEvZ
z^Ux8jFzRpJOSZt0>3^rwX#%)|J<==tOCRbOkO{nCnD+4GuAHg10yX3O_+AmMhz>dv
z*hCc`fRdhLPcdW&rJ!mKeHh}L@4AbZ%-w@{a(RIO7i3uUs;>K%0c+q$IsZI+MG#vM%A!^Ijn(ccY@tPmfNX2{GA=XGnySP9!qc&<>M8
zi?)~FLQJl@kT%>7M>+*hPmYvUME9A`K*2?OY#Zc@&YS`DjI)4jK$HakTcka#`3%wm
zkRRDPry?t$L74qXyq|a`y-@+`A$DZ))lPcYMe>l&{aJ2p_dJ^j%P;6z#cr~VU$S2!
zzfF=d$*=6-vT^3UX_y}hw>@RmYys%Pdyg+wS9cszS6jyVggZJdZBDQrr2@hI@BjY)
z_E&%W@7=n^f6F1b|Nc!NxT>Z#VvqwALW}Zhi87`S92Q<#(7hAcqlhCZXQvdo+N3K9
zjFE)J@hz4ykpyV}PyguO`ak~?uw?#QJ}(bmYhG{_&(854DpMk)rF+SAGD~jdsXC@qc1_%y;@h9&QL>)Z{F5XG&R419AaTOxW-txiOqj2_b
zz5nCmKl;(FTl}|t_CI;8+4nKU)#(?^JD)=)Tpwtg=X|lPv3^j%dzbmBjo{(!_vICp
zrE%AA-`&Q|3u0o_o8!?hZv)!XV>uevv{Bg(07qAMBmvTd;SV~f_h7fU&9_}lSw*cS
zd_~&8wnqFGV2G??to6;K%K0Eor)~eFE{i2bgh1^NQD8E|gW$DiT|~DVZNMHKRs}Z;
z7ARy&zg&$HXo>R)p~cj|e8YNZr6b1ei4q6{4!%e3f!RoM??T-;&n{+);-Ksk>(u_2
z&k)@QKt+KG&R-(`?@L&2poW2Xc+}T3T@)=1l5B~D`m^rU<$sHHz<;_Huq79Q(l-wR
zN4!iuSi7mg&4a+%pvt;>yG=12n+Jgh?Fvw$vTmJx7t@w16%xi1gTR-BURCC(8m0as
z27%WjfnZNVq!g%RCK)Jbk9n(teBjTb6n9HePBJT1nQb3u9fQCd_b4@>7z7@Jz+(_N
z?>A6FVh}hb0&KEMj%hNrS^Dx*CxHX08`KFtjX~hSyp;21w@OZ>`&pbc2_OznLRWP0
zM0DS{_fp!C-8cOIC0*3C5m%$R7uQ1!0*B=IT@L~eE)2iJLEynG#2|30>%KB%4s&F-`q1n%d|4){%G?bN)u+!AVbk+(&!f&3{`?*L7>^3K%>D(QC#
zwJK4Fnv2C)9kecCt#D6{;Khe$0cNpB@D38T1hfn1Wxz7ZJBl27f(#ME*lZ
z-X$~zHkw&HqS(m@brgprlYhh@
zaH9BqCLRed=VI6-pR=sY7z8dM+c5~-MUw$j4_iD%4IH2vjRI^&2Smw$Rh(I%`I#Q(
zOBauLLwN4cwcX4ea7IxeG4?SC{JR_kZc0iJcB@WwRru(siSfcNNP69=Xmh#Gh*&*x
zJrFy_3&(h2z?z`pyn`&va?%5w7UP9AW~|F_a@bZ8dEV4Jo3k!JKfN7QV
zrhrP3O~{2A%9SJt@tq?I5t(%m^E0>n&Fo
zc#IbY1zL<3&d$%%3DiDN;E=mO3>cGqAa^X1-iUeTG98Qo-0A~S0{Sx0qJZA%Qh3mm
zG>))e-l%B!Kuf@uUw~AGykfxd0$oi&HDbjmV8bOC5+=?t
z1D=`&G)2`Alo;cMW4v&T7lwTTr^J{Fn;yZUIrTFq@P`6ux-G5
z!GnrBDd6dV)1o&8=_y0!5bFhcv>I
zcMZg%@;q8vMRRj1QE!YF4sItRi8k>j$9Unl9xwb|jw<}W{*7<`F#UIL-QvIH@mrfm
z6$Y3tjkIZug^|^WqOG1!X`{!ZkV81AWLb*IW5IwHghg6#x?a6~!KH*5wQ@D&a{Xwo
zm0ogy*Gow@&~|>_?jg3Wj0!c4%jYQcgVn5}tbiCcLciKZwwO;gsJ+Q_Snjn<84z*0
zPKMWD@M)(bhIW2X|K3o!0g{h_oUt=;C!Y9A{`~UR6{LiuL
z_-}dm)L!{Tyr@H@S9
zN_m&W6J0piV6AiXEEIAyTMtP@VdWAKX%xtAA&;khG>--eGK?X@Jp}CFe!g^!^7_l+
zX>;WRv9#-!zq;t_F}6M8E6fN1$%^3y!O0F%xEmv{2?%bzAknv7M_-B_%-8v^{iGKG9rScb?2kKptN
z4?g+ilTSbW^s~=Clm47S)wx0v*iJVafT6kl8_-qTXx{d0?g#xO?1!`B?7evZT<1i-
z+1gSkb?^YQVjG!er`sPW4~QGSL(smvWpE_9Y>?@tWWJZNx@~6jh8)NWP}GJ=uQD>?1Tox!tGJ>n71Xirod@#fY9LmRa%FfKGGw
zubjr|eXykTvzg|hbt84$H1BAU9tYE4CTo(a72z4qq}Ap~LOE7l
zgRov-q_5Gz5zBK=lE#RuN#B>>UH)!G?kvKMn3LF&Zyy97EmIBd_(BSM*E65ETgEn$9BRlL1Rz<@9fRUPhQAoXP0l>c(}_J0RJZKiIC02Xq*{r1qj7Ik?L^fA
zWd`$)1U7wesS$-wxk^JN)gb#o;E~jOyDYi&AQuqJ+b8lzas{188osOCcPU
zs}3+)uMI3PA#m7;+wjC;Tc5v`Tzg1pwWwvr_
zR0y<##kBA|zCdMzali|_+~r)6>(A!Z6ySw+Ljze;%soiIuRf~seplLm@D|#Cu&jNk
z&9Bw`W~Zo38k%0#YoMf8Ci^rbu)QI9tyj7c<_P{!@GdUyOnT8OF3u#rY_2$V441}TnSH4NulS|
z`9%%MwVbDVU2$E9y{J~FWN_hVYJLZP#h=Q<%AlS;e3Co~=vCZsSbA|t{L~E#7`t>}
z56jP&w9Qhh8+8rldW~`YZt|E^yPQpC$r!$Kj49rA!~yfCGI2M>XJ}Jy?y3^5d}qNS
zve
z>`eOfYuTe{!Hw2w<`*}6S**xU>wB4>xt?n;j$c)tQ}%MCqk(2{@a%bVpw8ZK6>-KE
zUo1a$Q@pXrlxe=1%>2I5(cJ%k{=fg~U;W#+Zt>r8AMK+Xc#3qf?|e^4Y1|s2)4}B@
z=W2o=&_xCPh3Nh=IeBe=9tNqvS);tLhfVT#ME>8XRjb?FFvW+2W#6c2U%PBv!(f)c
z>}${d@QNW44yf;@^3G3aS;C|Z$GjF)q?y+6-*X@9G~*$aqxzrpI{)~`f9=*S{#(8<
z|HGRv%*}X$9s;#G1T<_AxJmRPg{!AH6qCE4=b&Rkk|}HM73TlJ_we)hNa5aPhkV>F
zmoi`-B*ugxxQjrWAVAUOP34sEwKxWt)D5J)F&B&(D$KMGq;0!|wQYZyaOsP)JBF%gu`5`7LxYm2h+XVOnkQ`=IgPR8N5==P_
z@t{g6#itoLB1J-^NLa^PAPE@Ga8-dXFH{Fai?(1Kry9T;56F+$yVFpA?WlEnM~nx@1^D2DD)q)33S!$cIn11Z(@a??YSFFvlBrade!
z-QmTAVcZH-lhWb@R`yKE4F-xo91fy;34jBCOa9U-Z>C%WbPq#m)P&hMK*arCUXKWI
zklakcN6_bt!_$T*`&|YGpWLJ)yI$I%N{CpWiwv2p%A`VY>>wFEJt;*toyi)Eq0rz2
zYMBeK!KBH2Dj5mKUQV`DQFT^l8W0eM-Qyi)Q;r35SQ~+5JJY$Bs_@O>=yk6Fe;G=R
zXuFqbib(yj{TN^%JgJ%|
z%#EzCt@ai-zIUHGvxkZh|JpheCL?6vtV}l(iPEsZX-9e{yh5EvH62h|I7Fyy^Rsff
zoiURkL*B6;YEsGx0_@_vC)tvLP=Jq@`+ynb>Wx+wXxOe#Ue|-E6;L%9a=;#pr_!BT
zbgtz)KW8F&)b2si+6R~wwlnPaqL>K}2KcOK6oOJX!YXtkKnz8Nqf+f%A_;VE(JXkF
zGIh`tQeZC$XCwKOT`7K27uO^mE7btROoBAkLY9NWrGqqM*?{81t18&{JXHjr
zV~Ab|Lcqu&32=|bk>8*7sD!$et5Wfpu?JE@lel6`BVyYnBnjG(+2x!V7bz>)dEnUX
z2*io!^Dg2JRkEW8Qc>)amUgdnDBm%Hsl~%Os_#dlnt#K4mN?Nr&nr
zy%9fmunC7_CJMDZc^8wVkD=2j&*#-qKYSB|_84+nL-MOyS!y07*E`dQ%KYiAP+IMB
z0hlaTO&1CKaQqCy*R|2h5{=1T(?lQp(QG0MqI`1vh6Bg+QByI6=9uS3QRF?Q--Z2D
zttc%4o_I_MMZ7&8eo^I-Z1!xld`iMdfTx`RGApx(BS!yU)w?r&e^iF{C=qeEaX|v}
zYNc3Tk5TGPX3h!j*ho|7CLSajg`Cde31U_J0kXz`TRv0cE2~^Ka9Vr)9MCmvIX=42
zYYhFuLLu-B76aB9@LDoAHO~NN$;rIHGn9?NJ)z1#E=j4NeF*sGI@8BX0G#WkV@cO1
zm82W(1Uq{|Zv-`Pq!@+RV1acKi
zM3mWO6Yh%snJijL`~6dg9FzuO7p
z-xdKxMaX$eDORi9A&douvLX<8s?~5sU(E(I>1Y68f+Y2jh=qs_EP3iyxJkRsvTbsv
zm)zx<>yP=vw43qhMas$NClBRZu(Q5i5I1DvNLcg{a*1CeZ**VYKVGzr}98;w>#6KbvYgW
z^5@cM?V-yuzj{x^wy5c{!(yIxYVSmNe)T
zeYFqZ^yhI0(`I9>B~OA7@76Gz;w0vi$W?gfyz{lZw87tI061+dbEKR0P~D%BPeD<$Vsf3jaoIY(dvy4o3u05A66o*~xvyafcWRqT
z-WPRLr|t4WIjg2xvWBfOij)P3bffh`J*%BzfneQa{r5IrAV-J4TC#oCn+*4%X_+~9
z>Bb1`IrrQyQS&+0es-a@eIL;1rXN~ebs;PnBb?f#xb3Y)qVU~{+PFmWX!c;-4*O8E
zmvmO(@_=Dk`Ex7veq=~$i;QX<^0^W@N-40n%TV42}os$xYn;3?`L2&lmAVM6=D
zq%(p+?Luz%TVLeYTlbQ!ClV}--?;6!9>d1AB{O;O;^ZW`y5HJG5)~Xgl&esR6~cvE
zy%Sqz3JCj{N*7#}+Qx@y1I&q7qVO1@5nRoL#olZKWg&M;%9HB7TE2whO;l-Lh6oHR
zE;XXCKRWvI(NDiC8zARUfK&ed6vl>nea`KJY1RnEjO-CdX41q#57_9kO>tMW_r%XlMH9)
z)Mf||djS=KXDN6uut@Z+ywyjvb-Az$$er}}{@K6y=YMhc)-C>94u9OgIs8%dl%m4p
zE-9WODq#}m{hmmkwoj(PlX0$!at|O)9Vm4w8ix;yF)w%D9)eCIMzvl
z>c|ec)1)okO%7w~3^i=t_d845aKt#^f2G%2t4Os3v185}*Je-`TOT%=y<`g%Fj;RZ
z&9GyZ$`1#YVEqVU>@Y*o)6h8ES
zgHa}5h83!BDSZA6gdR;ZeiTGy?Zbfs5ePT1%}56SBLu|$Ae~G>EkZLc-l^FH-OM!2
zHhXKk9sAnd+NDFgJ+WQ1{uM)fflH;Sw`WkScOJn|ojeUuT~PnltB6IyO!w=1SAj;U
z+%$r93;RUQ9}{imdYoET4ma25gS?|p=oXGp7c}*_(W4!fdb0@2Q}QFNe^xW!GvU!ZbzmW
zBt8)I9ITB=Hl8MjRbZHB%eiF^W}N
zYTC1cS6|s00qvU(jnllcF`c+m6k9*E73;0`sJ8r?n{?9#7)vqDdTsG++$tlk5|f4EfmHE33Jli&19`??9uFshM1PKTpY^OJr=m^TmA&N8{#;g^eeYYaYJ3YkvC&SuQ?zXhl!3SG2C&Pvb=KBZ
zp*3tJvoHHPtOs7i3*aHrHVhP3FkXMKd;g=LhFf6arsGzI)q;KoNEmw*zJpuu|M>Wi
z!0N|;%iqC&aD#X7#@voqDYzXII3Lov5=?pW4mo%F<819Z
z!CS&RsM-*}UsY4xLy6SL6
zO9eZhHjd?irI_}W=s*x}U`g98ZgVZ_6RNd>3rHK-hD8J|7BG6CnV+y_!MfbJt?Lrs
z0al()+x`u-ZO>wV<$(XHS)Eey|xS*wQOm
zWx<)n+fO)p(QWOtGvyzBhjQ;259iEek(&~VFZiwxP80z4zA@^!paEh|^05RYAqyu#
zu((3Qtc&YO7idj!Rq=LNhV9dNB^SHo5;g=xDJeg;++-ZfG~8scq2tB`INVgiz^0v-
zNM)8hW>XYqr0VVsW*|d%{6Y5;OPGOsF7Se*6zH-;WFCP@(61$Y6uBwY4(yJ~#goD9
zGbLe^*Y9_D8L3!%QWyggtP&p7}&x1Y^005Xi
z3gE+JO_r@jZc2*is)I%*Epk(;o)Wn!#iA{1B63s8X2E})011SR9d^yT2`rL_rE}Ju
zpDeq0hVoO_e&nWX5KWj&z^FVrYV+Bw`qntl!TZ}w7UB-9d{a_MR_4#*>vONp>6W%G
zw4ifTvucQ^;oq(zsltQBv{XH4fQ&c{D9bI^UH-7=W{&ageryf`(UT
zJAfqC+nf67?JTH^`ifjPIF+;AYQX3Mc+zfs$_rz*180O
zA(SIBRRWGB*+{sRjnqRRXWZK(NA4k;60u%j{O(L=pcTS~l)(8jfkpL6@vCGXs%#*5
z9@QtLOAw|lv%6{n69lD#X2qx&J&}>U6unb|#0%s{7>-eevKNHFGh%=}ISvTXMFXcs
zjyNx1&a{nFJW#DG5;H)uB*|Gh{*_FUG81rH+=M<->Ym|p$$OdG#aYx{+2;G2QSOb+F
zT)lme&&aVghnWEsyCjNXY@a*QpyW)UOhV(l7kn6*Dw~#{aq&f_%3%tg!^l)A7Cb%6
zB2#56GF3*VN@t+B1V%72RaR!h;0-HHGz(CU$W&=0bI^LA`k2iMCd{Ne$vaG{0s7Dh
zXnqHvfCkYCsMWj;l%;^VLAr-KxTp40*h9gyBY{kBf8(?G|n3B##2?8}7{vXEj>7
z(y%A{#%Me@wC6>pO8RRo&ZqFciD~B|AmT1(7@rfSv~nA|dn*(w&t!=>soWWU4G_x=50C
z7?~;~Q>FOK9q(Q9q4NV}s(k#$C`i%xBVnZj6!+g2VP(C+NHJOR+DD4XL8O=@|5~J&
z)N46;>2S9yV~fmo#*c#g)Si%{1_YSL0Mn}Zr+&c?8;cZ^`D~2o)uYa_$0@MvcY|W`
z7ysaIJ^QQQzjcfMmeU&^++3N6Op^$l38{Cuqu+pO^6=)b!m|=qg03_f0@uDWHk!0S
z{8X{6VaNRx>orlIM((mwn`1G1@EM>`>kT0WaDis
z_dOt>{16lI+a;j<3Tq+1F66EFtQMOvQ2veLuV4H}V4vi_x6eR%f45E!NkYgvIpj?l
zDABqe1ockdCIe;Ji3X_5hlA&*zjy0LAO7K;)ZGjs10`_aO5-CT1y3aDWEaWfxh*0C
zB}L?>3~rHuGBQx&K6NyLuFp&o0A>W_MSh#v(d(%bv+WP=fB4bI4?g+yv)xX&hb$qx
zrWlxZZ0)sz`$%M2E2*kKn+iV>PfM&R1RogW`9
zBd5OO3pwUK@`n5Db&S6XeMmv1l}nCQ(&qu^iD_0X$9-jp!ynk%7`B
z2<0jXB-x&l^)J`^S-!fL-#r6m>3fL`lr+SEg$W#X!xn#6qD*}wu*}d}Jasu4AxSH*
z_K-##tt$o{q0V$7IBb|wq!@RCRQIpbw69%S8#MO)hsr=%uFuFo85t-?5;_->BZ`fu
zi@Yk4fs(#pT0@i&EHY3Uv8B@JfymkZSvBCr!-o;2`*&rX?VEJpMz
zGT})gSqazdO<>JShDbD;jlr}GFi6$|d)@XnXlt?_c-ugq0ZC4VHU@GQgY4pR3YM^v
zN+Y1olzL*v($OGBl=*w6>4m2AX7J~)IXbi?u7%!ZI_!`cP!gA$w^9i`Xo%E1b!4E7
z43u0mkO94PG6jhw33DO?|EC4J94xPwADJCnuv40@hA_Jw%
zE*TjpfzYTJZ5)$_TQQM=5~8)Ak?xO)K|xP5uF~Qj&S^;%s0UvD=x(o-@61Z
zB1eP-bj|^;J%c=d2?m{)bkJuYH9z}_uXC3Ci9Z-sq6eR#iIym;{k%2O}z1D7Bk%98`P1heu{BN-QA_L{r
z@eD==N(YCE43uitb1TCiAPxz;L@D4NR_mM{aUr{#Y6?6RWP0!5F5;C4pLoJ0mf^qd@uB3T#H*HU|LL0<^|5sva#YlviqRhB)x;t{M
z7a1t)ThVS;k%5vYv2CcxK&c56le?GG>A2Y2+4*|b8O)1|S!dF3>F+HVDt5lUPP>=s
zV7zmlx5xQp+8OMSK^1iM7b%e{JC%U>wpmzdj=h`?fBAE1)JJK9`4#MEWtm^S2SJyF
zX??^Mhyxzy94YW6uYfw$D*d#aC3l^mJf#n25VAo!b*$1}QuK1M6)S;g#gtr5(e?Fp
z>pYv_!~&LYr*~BpJA8n~@m2cVWR!tHq8a;A7)pGqr{bJLV=A`BuHLzA<0X&zR0h)?j>7K
z(tb7@;y2_jNwyxtPPdidzLOlhI5|nK?zeU&l2YVq$_8Lfr2WqEgL*(k*#~3maMSZ`
ze26v>frq=@TpS24D$lHd+7S!6a8QgoAL(sOzNF#tdPL@M3=v#ExYYE?{Qc=ec#x$n1E_3r?)bNCV3w*_i42risblA9-`~COX;?Jox58HBP^QAp
z6&&Y#$*GVOB^C}@-HAt%%CibLb}d!jg@2i=!j5H=h~ogo`BNFkv1}0-45~x$!l3qX
zdY+A>E!|Yk;P39FY~GDDGEj0hs&6rzpR98QNV5sMrdM+mlMyua&o+{i$QD_w_NKN8`>K!WT7${4SfG|OF+
zXQ*VLyua(sFq<$?{%4(gpS(i`$`9(~kd#kvje+umZ-ar-cOpkosP(}vIS4f82
zPaUgBRjHwf+>}r&GEhba%E&V-pafp#?Z~glKnbwS
zo(n_~y2;2uX%1AuzTRNgPm@c)
zNv;w8b1wm5;}p(C$Lfr@hQl18e3NqXGSmT{x}VLu>132n(aI=?74LNkS1X3U$Uqr-
zYc^JkkIB$!4#AStQ3LGhx0GXDZpy=Sh}UIQs8qZIU*SF;?J_9|$Ru3U;GiYP=)14%TY0;Zx5}&bo`6YyvCI}5y(EF3)QUb2AjXJK|SMVzN{
zix|jf^Jfi_Ov|2Fm*GhQcobN-e-mJ;IK*{NRN{`b^ty+#@|;%~-8T6_gvjI(f~tTohsEYmHb^BKA+P)5LR{b5IG9F
ziN=7_pom*5fcDe81%i`a;o$I*fs&axn&)z#?@{0R2$Lt=F&4Lwb-}YqJHR*}&yXn#
z3c4(aGkt|w|IFg^h0V{?9BL>X?n}KiyJ8)npVhP}>MBIU7OQ76Lz;@VU~K#jq`
zx+4!BDv>{t0GuG8M+U@Y*&Adi!2xlZqH*O4sBxi8((?hVi!yFw=TQ45;5=>!E_fuc
zV9M@r8wsXLEUgimk+ER1%F!WYgjcg2YOSh0hlkpt3Mxh0+@NOUMu$QY8+wkpNR
z1DF8@j&|+IVBRa|Tc-&&QkzqITCkJCq>jCQL0UF_+Q>kO1%V~HjWE;79O^pJnT!mS
zIzN$t60*bx7e@w4h|}u~e9Slw@@qy3f_%)!Z>w>LVzkJi8ki`OFy(VpfV3`Yn#-7P
z-WybPkP3dX{dL0G>zmIhs}vb1K?G+n2P)kn%XMU+j0}{$?0jyD1zC@%lF0U?9f53XH0)^S+Mse!Nqpmqxuu$lP
zfr|nz>OMspJL%z+m;lSb(PCa0af=Zfkp*OC$u%$8V?)kGMi7&xo|4r~i1q;jii-@)
zQXp;2dk7(hqoI{3>6Bd5>Wx+;A!ycoyL8CmMdehp=|z$u3vY#3Z}?QIb`~(WSLO`e
zjqu*7{!?L%43t1RLwO}NUiK~|9&eu5*0=}41C?Ijf;++AU}MA0fDjZUsjZ6>KE*l-R@MV6LSJkQlE)*1Edy&}%&YvB$?km`!|<|gs7}(GSqOtb8Z#nLChNUaX01yKQj_IsKgeMx
zqlOKiv@Cus)ALR?psbezhYbV|sGHOs{?Ow4Ggt+5CqJ4^WJ{D!j^C*7+mKcNzw7{@
z#dD)5@}4pi+U!=yD=LqNR|=bw40JBaMER67CRL;g-me;m#E5dH?@tbFiVz%bsK6ZT
zR*LoYxWky7ImgpI4uM7l@3Al-gN*~k8}$urRbFQgtF@rP)?2zfIcL+=p~
zBh%U_9MUl{;sZPbtPWiJk%7`s8+%D)pd|ke4OR{W$*VFLYJPrr4B^3Dpjx+a-l&4j
z?G8u4MDKi|9&dI+l^RsYC*mhyb51B+l7SODLGR@97k^#1Hx}?Ik%2NYP&#(SB|e78
zK*>#K_N~Z385t-CRFAsKiWwOwcg{Os3vKA&Z}-5uMH|b!9RR+Hwk00=g
zx&!kRhcq=>iU7@pgKQ_byO7TgQ;&y;43zMX=d%fDx|UM225Np}pbWR`JUNUE
zl#zi_eDaPK&)rBWLJ)?JkrHewzCtN5MbwLxj;R>NlMKf5siDIs>2olGjvuBmX+b7u9;
zo)7ZQw6bu7fuQNdZlJanVHA@{xzlVqs4dl|*IObdIkf63HQ?p3L?pN;A|>MbRWnaJ
zE{37f=0=b53skOlF~~<3Fb=4#N#6w~N+;3<;54b{;tm~6+kKop&%bvrrO?u)G*uG!b_-)?iePvYD-NoRb1{(gYvD3PkzIpahg{)
zCed>sD;{q!v=!^k4^G>Aq06uNY28|g43u0kx)Iz;pfd4`fAF`S{nhW^y2XFXm5CcO
zP<{{@D97Is2Fee<^9+<9nDC&A^wt?DKZp#JVrYTN0gKCPFi?KrjYgX=Q2y`#!~gh`
zcgR3_|D7^W-v2fjD19f2wx16N&rg5v){j2?!#k-vtRe$tWT1Ro3~rHuGBQv`2FkZY
zhZq?s2Mo!)R(1<_T)`fy{vTd3jD;yOP%hrL_({!lax{b%z;Hbx&gce{qaWxk;z@hB
zCc8N{c<C~WK0Hw9DLl&Tq+FN;bm87+tf(ZW!Czu(+e_}_
z*NRo|&c0{%bJ^B}na6OPf`Oe$tZumjK`3?=F&Q$IAAenxFu`?9JvS{R{92qD#V^+*A5ZRNq
zvG1;+Bz&-Y-w`ubMF7_WMTnbxPIN%;dBngl;|K6?_sBrWjp1}F`i*Q`EbgAB-3R*2
ztH?kZ87SeB+{7!Cr^Cwfa*i`D!O(fezn$i>F`Zgupyagi$4y-z9&OtBZSd)y5?_NW
z@-Q+`Hc7m4E+YdakJi0}>R7Otbkf3o%q3Re%lynON;VTTz^@ipWMrU(Y8x3Sxj5u!
z$qH%I`&ps7m%jxDO7DA#43xlhLW}x)zGcr&{2Fl1lNy@;;Kxs%gSfyZ&
zQp+U_BMk2bpd&I+u8%x2s*L@}Kp7b*TY|c2XZmtcEIK)jN-_L23I)J8M`
z%U*+X0KZSJGt%FJ@NJc(Lhe`!1((IVdx0epC(Y98
zIB?rhw1T72hJ|QtM`dUs%i|dW$qKwtyl0FI5zHid$1fJ54*n#{ToIl{ayM;Vv`C{x
zsx^ECzNX0pU*lKdv?@6vv0wQVJfoGPCNfacK_3|?Va^5%pNI}FMm?t^1EmXEew3wy
zzGXlKy&xIyu{SA4A_HZWD^5ikR7K;+6OA8YM^*G1@4pf-L;gx>v3M_Ef4o9rWXh*?8YD2lVh1$%qr*(`Bl$a^MSxU{L2GXP4i42sI)@F|)Br;HvZvH*w
zcA0|UGM9XQq{rn>rs+jx@;>y#@l-Oq@P_akiX5f6#Lk961lt?pIUn(ELQu78m0J&I
z%qy_7KP$l)_o<*m$RSrTG*JG-?6vvS~)4#FGDxddjM+#UFAqC3eueWJHP
z1_t`xfhM&DWtzVpvJ?PJ^L%y(x50i27E&}PfNh)>qy)xokyZoZ!Eu#*Mebz$DTjoZ
z22B65BZW1<$nTGpR`P5B$ToO+kvCvgBriwc1V?TF41L6&(59q2(k`K&pv_zoj^wD6
zQ8nl*9X*F!omWoIhI1MjC}|)!(O2HoryXSH@&w!E4C8aclsLhAuGSK6&r>WQXFIS}
z2>Spno7oggMbi+#O2vg%C3xzbpQAt_Z(dx?Kp)l8-&@!;J6~U?T~f*K
zoab#4;B^K&T)&{JzetHx*{M8G+l;r|UYFD1FMlqL)*iYnBgBN3Izq27!x_|VOaX7n
zpuiW)u&($@KO1Mx;j8HlK-~>L3i>trzQq?287LzIWp$Y@*(Q;J@?uAMH%rD+hCsA4
zP?UnXH0!^&F-7Uo;jjFGR^8s~O@{j*xQh&wOB8vZfFoVY^mX_61&B_O7vTy7s6|4_
zpTYZ#)DTD?K>sc53rIzRv>z9eykzT({CewNvh@Vyg0mrhBk}CkV`Pfil0eae7bhpl
z)&16P!qXw4Tus@)1saF9#%VInj~(oK4!shiC&D7i2Xunuua{o*^R6c@oP)
z?vxbqu3DXZ3FVDh&Y`zqhzJ6J*;R5fJv#dGs^*~L_3se*Dy-w*G2pO?tPDf6m_MD43u^safFeO=lrSMB432G(UE~ts8bgvX(jQc
z(WEQ!<%x-9m2~wR3LAET5;!4e1LbF|y^?3ph<6?#7CCu3n?lX^*rAQM4M}phzIPG*
zEuI2Riy|^mZZL(Bfif~sdfP*|vkiCKw6P)s<%-F92vYzuswevb-+r-*o%35@pu8U$
zC`03#oQd$vBJTywX0X-lAy3{cz0Fr~>-`@e|Iv?b-QvIHWT1yPWfs3*s(cllPOq4R
zvqA?2M<2^OQHQ|+w{{Kz=%2+Xh`8X4;lenHqA7Y3Sbe{lc9k3N3z$)}&~cDg|^<;-5PL@Vh&^KT5p@TDl$+;21;!BpXNC;TptYbnZ<~?HJFi6QsLlSe^u8y
zKdD)%A_FCIB*G;!$%pV^zz+kI4YP1i^6TU|+7z`$JN;T6=5=YghMH?LinQmV%)8JU
zKv}cKcl-|J-f@_UDaI*1IE$TIer=Q|fBU45GL
z`x0=HYk2SOB_M1>IMo0bUpZ5O8avE;NSs`*C5r&~*{qvRMlb;odxgu}>n``oeb3gb
zY99SovaebQmjX2rLbW=B>&_f_AX(YKvcYRfl#zil0f{3V`>>%D4p!-8ZZ^JhRGXX4Q)TyxKp{iqM=RQYP*t$k9COX>M+VBs
zKp7b*D|c8=(pS|qsicS6CjWMuooW|NyY6RkuK{NLISaWPHA^;K1IjjoHrBO#7#S#6
z&t+twq}~@9C@}@S@hsR*i(8xJI)ZSdP*vl=mMWT51{$j{>BEN7l)
zh3a1Z78oeK?hjqm=qcm
zi5iIvl#@bppH(%9TF`f7poFzI!-0>v(ralL9+@enqM%U_{g0(JQfL~j$7Jb41hnwg
z^fh{Sc>2YO#G5e0us6u?b<#^G_>X!Bl-8znGfTq^hH-9k)M9aZF(fEB;9)#dOib24
zGkyx#qGiQnT!@!M)MW26g-IO&FBcs;&DAr4<}~;*1%-h=j@h>bgT_Lm?;>9pBZ$-m7m_mSQaJ-5qs-zNZbqkg<-t3W>yy2yelFgOslxu`y;Q@V17+7ju#I?AK#{s!Db-x)H5N4fj0}_%_5H{|$%P>@
zMPoiGVu(h-$%XSne4=`oDc2n$N=cXq*_lmAZ-6I+J9ajZ-ji
zr1;A)Ydjxcrs+7DjrEjO53JlrBLgL0gfU)nrA7uy%?YWdUR7(>hm*UAX)I`vZx6A~
zxT@WXCl>`GqJ8W!d2c4bGH}|H0*lzrR$1mEEx_wBq3$P&!&wP(2bq>?dMG7blqa>L
zq6J@E-s{aK6Hsg?|37`-%UznZ_mum
z=yrPMrh9iloQ_plRoUHnQ&m})S=l|c$AfLaHekUJe^@^V3xZ)0&>ulCV8Avgz!YHv
zh5%Hl!$cV^@H{N(ZpI1Sr
z5Z9hnh)i5fN1;~CG4&2m$j{u7*AW$N*^YRFQ0f90gP*T?S*$Kc9=;qu+
zt+pH?AW#A$#4uH$Von$#Drq>t<0dE%nWngJ`^sgQ8*#53=kDE#Ha>#B88NJ$V%dPfvu}5w@)66cre0>VX8)n5=3is3G}{f
zJk3fVNyv<%+hF|q8v3_9wARn`s&l*q(%`%7t#+6D?AnEjLU
z6%Z(mL=q4vu@D7R499sjg)*Cr=G_@mL7L!f3*d!5AX~-K85-L0zjFPr2G=?C;*g~e
zJV$X&)EvVI!0^CI_${vwAQnL!n?T8#M2Jg$We^L&+$aPhxD=9~;O~Gv3?ozcTOPdq
z@Z0wf!91WH#c~rFe0jD5kRTt2*q;lG97X}FLS=MTixHkk=E^1nGtPyfu{%Fyq_G+t
zbKNQ|tS&-%C&|d!<6*yyf%|g-@i+&cY>WU{M{R%UVJtRYK%lhS8xSamytAPMQ%57n
zCZKewW>JBg!VWRbiKVNzyfJ|5oed-Vqz6$7tB`U(h?(QSdG
zB=mpu+0hQeFNZKiOm-l=oS^cbAGb}xhOppL2~Z6uu=En4Su7MKWFG)`!hB5NPGsQ$
z)f2{Gq~=Uf#|&~(5+g7s9^@H{Sy5=Z$Z~|^w?jft&WD`|q?XQUb}l&2J19w*r-K5h
zh(&P+G(e(4nM(g6>nQG91;Vt_Oh(Fd7@)1xNw1N-o|p#A1SG@)Nbk@&V1|c)2jlt7
zmUGFIQ)C^|+LI?JWC`Jqp&d8+ijW_WibhtJ7#b7A+2GGTWANZ`0c{Rey%Wg(P248
zX0_EmHUset2$TVVG9XayORRM4<_F9i1eOCnId6A&mxAp_b7+%<5WC`KCN#!u4Ik~OZN?Lit5m(mMG
zq$e)uk6#}G<*Qe(6M+)FtIpFL$C`K)DC(
zO)NDW?KO?iSI>YOeL6vWXctH49Hz3jckfv|oSJIr&>XAOAYP=Fj;;RZpfUpjrCIXY
zDn3zcF^SBxdhW_)oZaitLRgNaH!HrIYDl>m;--)MA!9*|T|rO29k3Ib!>NHAkOLqN
z#1{lc`vMTvccat6R8HhDJw=tK5kl;%N*su8?QP2;-VpIqhPTpsLklYd+nhHyU*~hR_3D&?{T8fs<+#!rszoI;|7a
z!uz-eiv%1HD6I~%**0^Rxed#3HF@mKZqye07@w0eget_Pen7q477ztmwO9vCswX$x
zY2tixl)i)szzW@hM{qu-Qje1y5GVrzrI4KE2LXW+1+ajasg`sT@Q%28B!(ib01?Vk
z2L3MWW=Ya7ASRhwPj{@oMSi__fAdqj#AMaxnDgV>QD2DgXJZaBJF}9TaXN24o^RJ$
zHm2;<`7g`@z|M^-G!dtTf!rSK!0^SzJQ9d=}l@yoxronEZTH
zl`O^O=il~0ieujUFFx4zu-`#rtWJ!KI^syoE4`5VNhi*LkF`C})zxQzUE$q=7w
zfWc;?*bxE(CCq`WPi@UiD;D@EoB7MzzJYdWVen4lQFkKo9v+!3*}fxbZo)&BkMjBv
zC@bGfK%k^Mql?@r#A|l=?;>H4k?uPzGXN==%ve(o@tc(VYFm4s-V}Y-B13eL9Y>zA
zCm-03`AIR2y#V6NbnTw5I+whf&Nv&E5&_jD)7mT_2!4mQt$L^x1Z=#QK0(kC!Dt|<
z>IhgMtrGb=gZS_N{GZs`;_vd<%Lmu?4F&|tfIt}#C<6jzK%lf{BH{c6S+ZU;C`ou*;F)$!d4k4n%vl2lHARD(ND8W#S+b8DfP|fDJ;Q8AoCgG5Zrm
z&g&o>r${q4eH^1fV<@!#-1sX
zx9|oUhPB;KPf^|uD6g|(o4nWS3_(D(EGJloPzDdj2boYH>_*pnaF`RJuNTeJWHiLt
z8jbWw(ZU30FdxH7GtCev1gsp%N|i;?1A(PM1VfR)8K4eiIhC
zffC>Zl%K@82@DT`G_=r%%9`ry91ti^9UfmmpsXwWCfoK9>b#Z5jLpDZat_MSM21Yu
z{wOUNdpSmU8u$_#kjwGVvJV1bAoNegy6AS&Iqfi35DbG~0go%s@iqP_m{tLSa*(G0
z;3j*QC2L+k0f7>iQ4XJ@K*oaB^qwvN5L8<;IG88K!A$q^5TUIwcHz7iMLFh;1YwQ%
zoN}vaG_bP=IRS5QmS>X;v`OeSTuq}adud#cxXc)&`NTSABxoAggjEkgFgpN{M^RC#OaNKn1Yvy$$?O-*GKRNOVxCa{ECEjJD*h{W0#^d>D_n
z353$`=gGP5vu$>CynTl_xFDiFvk&@6i83V%2aq$ndCVrz9NLXN!F2
zSq{`p@Mgo5aceZwmQBZ|GqRM0gK&wr4hWP1fpS~D5!;W_)3a^rJJG@CM<`5sud^G;
z#Up@-z(S|dkUl^w$ygc0g0i6roo*-(;re(7eZXS|5}ivfFjOf5bYqk1I3~)6weD0s>_LPodb)_SPaJ2Lwvk
z3-XR@Thh@XxOs<=8DUjRv&ORtW9?jJ(Az@XGb-u`eSv&7_W@__rOR1wE!;h?GJ^V
z_^rMS0-pE=GIh$fR?vL|S+#hL$zZ-0y|X)hqnJ+ye2RV~?OUYZz37(4``B0!g)|r<
zfD#YBzgxUPI@Q-MCnSK=2xAc?baJgv-s|0lq9pR+m^10s0WT%
zXSYK9h$7+1BCPm+DZ}n`XalV3T`S=~p74Y6s1VvKbxmAV>p6hIpwu#3SgU
zf>ETA`oY0Hh4r9~VG+@h&Kn+U^%Ci{2ufAKhj6-JdI4V&?Cqw(<^sOt=mudL_sDX%2`Q;v(y{+JonF2b%e8=j{Q`nx}_LKJOr@pzm&)3r
zXu#$vScDY|ypNWN2Dc7uBLpvKmJcL5NyOoZRE;Pf5YS7UYE>SUbtu?d8UcFZzXx;U
zbsg{}5e6bW{N}IhL&l#NPej0%ltpHio2Z5XUlL+NP5MVAX=s&3@<1iGeU(BOFhWU0
zV`(qqd0{-^cX|9RzOWo=f(!#slW|xmLJfYP$!In7a7rs}whGJm0=^{qBG$WxVn>p_
zg@D<8=1#)pgYculEXx7ko{hoHshu4rGl6OH%6)76!Kdk@eAUvYeN-cO>_Ws{r)<5tWFV%g(mxMXAURr@iZ54AY;qP;YskS{wk{+%i
z6%So>hG>s|0?>hSYL!P7B1hTeRQAboTmV14^r7Zz{R&yVur0`B*gW7%)>hC#@aYQs
zi>bo0nrXSWcG3G~IeK7P9K@wP->+%|Zr;C|(wB7|
z@Fl7EY`&Vt0>5-Qk@N&r3Kmrp1Z~;}d`S{@Mf8iy$Zx%)uonpr6WQqVfG-(6i6`X=
zFgW0#xdamA*ArjzSFhr336PR>u~_6s{yRWQ?nMs-gwnZQc@OAqO((p#DmR0a{O~Fy
zxduhjyX~zx2w0sjVKL-1sh{m3mq|bHIH!9BtDZG*37+XA(!oMMM(e9fER7Bx5xQ(j
z!zJ|BJTVdA(Pz&;wbLxJli3B$3KFLbt=LQx2~{T%Vh-s;(W1unw{V@Udk2%wb!@;&
z>?+_flSyOJ(2UtsOqQmRN%z8&cNuWa%wt$V6q(63QNKA-lCj3FCKDW?`4l-}!|6*z
zO(Q+^;%+qI2d4@CGb!cc@5REM>#xPt-0+R|O_m!HTHEciB7qVVtuRRtw8p0NAB~WY
zWEWcHnTOaPV*(JP51Yc@3+S@w=+Qnm3%Q)xWCxyO=H}I&uD^kdYNHP}d=-f>z}{aO
zJ1YQR)Kk=TQ;)HUnwl>rVl1#IE6l8B(wNxxkvgf=1GAt2tia+&$Ovr4iOqAb!08^#%dF`_taPZ9b0uG)@
zA!pu0Z*67aI)7&b;n6LKOct;g=NlI+YLJ;L$EucaR>q^b~?eWi}bv~phTrg
zh$;$1Ba%k5Qxy~j2F=aump)FpDF^Y?01^<>;U^N6?f^nVHdZ7TAuzxVFvY;inAirM
z6>T71Vk2LkV!yH38EHVDQ0M~lHDMCOiF_gz${ccKtn$=te(06=kFiCBQ-^$8?-qE(z!3s$w!18oL?
zwC`S6P6Cwc)eFs)auYIz*_u3I6J^yHWR*2}OW`l8kwG_H*?kh95`^QvV7F6%KO)~y
zV5BU17o}{zgvWnXI2Nr4E2y4vV}FOoJppbpo>3{7WP|fB#Dq1*Gby;0?Nb#inhJ%g
z;t~Tv?J=MMzD5rDU1l*DrD(x_a%s_dt2PG1#t5!|dBVV!>EZ?OcUiffGHp3i6-ajg
zf0vj)sG^9@k4TIXvB%q0`E+lb76JUd3R)EUK{#c_(^~0jL!NZVtH@lATyxmVb=kpT
zoCFl$lq>9Kvj67Nn}yqO$wg394qDxn(`*XU5D_2ik|6@CoZ;Sy;1ER#*#%|FA`tpq
zJ04N*oExyf0CWg`B8Z0Gu3ZJ_(CA&CL2i+o*?_Y3%w-5^(O^}jUuX-!zSZ62uxVx1
zQp_&;c?SCcjnzpGxX+Om!6c*>C<)TP-th=tfQEbvQsgkfMUG3J)hR_X1pXZG%}F$@
zH~@X+6>!A(r(E#?v5qGM>->|5ShrBvl=U|(N?mmlsDyOSmk6FUMs1Gfn36jWcr(McT~8#^iw-hTM)`-gx_g)kam
zITbMQ=3qIQsQMS5eE!S7`3qZH{9T@M{YzKz{>nACF?x<9&yqSA?EQE+p<03-jClyj
zC}5Q!A0H0}+!CB`7(I9e5KT$!eJ(ky#mAJ2Mh@4K{
zW-)71vCN<*<*-!!T&TVg(qoYh;
zOIpvrKeb99U)P_}?%TVxZ)$2y1E=65p_dOY?Ij`U3aug+)Tlj&W6Z2oy*(%BlbHV+
z{RBwhX_j|E?I|pb9V|KOgqeO8UhM_^Z`nlwxKN#D^s#w9dZN!qNAkRVS$3e4@z>Cw
zK$^wpT_Bhnc!tZ4pFTYSm}wI2AT5{wk{ArRHKeObWOki_Pyod*W
zX@6>mae>0Pvt|m>1L-DeoG9B*JE8GgI}Okokn(5Oo(EQx{ak$_1;YMu&hqOo$&u~p
z8k1=rc`n)Jo3eP~`F#6k*o`1v71Q~(>FWCHXl4<8dF$wAu)sMtTSsAg9>ZQ_{_JPf
z>7+>9EpQ8VuD_njgdY+ZocHS0sS;r$gO@iut1oYlbyco%QYNW?8DD;Hufch3nhU@V
zsO&R9?nt4?ugiz8M`p|C_2q2viur7Cq%BKCpaO8Y23;|_;yBm0+CRSb32}n+Y}a`8
z1MMdg7Z6k%D~c^LWZRF0K{GsLMQ^rcy-#9N!51u#+dfx_$Mp#|?(+I9ZEvFY1C*#^
zE^rK0pXGFFs^CaG7i3sQZ@NXavS+Qk8NxJ2>8oX3ny)wMmWu5^_&5K~H%@I&@OQhY3)f+KU)>-CVW{NEZSe*oX#4ZE0=GM(FT$B@VaBjHB%#P
z%N^xfsj*jGUkm*|%m%1I04IGFRK@$CopXma2gx2k%XfcgF8mnwz9d{S3jc^m>TDEIUTYwM^0yiqk5!&dDh1oFSxaD
zuu%$#U|Kza9zkU7NM%6!7^kHK0NJ>-&Kt6D0doe6`xD87hx?Hb%XMEpO#GK7ZxkmVS9oz3D7I*!HmB
zf#(L}$NX7*C&|Y5Jz?6g?O@q&>;&uAkNtMZ5RDtiwysMh_ES5;U|L>l1rQZVlabd4
zM_8QU!L!ez18wVXDjTn!Ak<@*!taf;ID#zm6R)*D&gwC~Y6<_}{G)IF!S8)zYm2|j
z%@ChnS9$n~B>&Se^M`-#Z~fM9LQCWC@)g+}wOh8BT)$ZH@89KdL!Y5r$?AFDt}N
z8d#2rA^inp
zs1_A-@z<}Fb~-!`=`Rov_NL?#H`i&aRf4zyUJxiO@Dja?>6y(7a8bj?!IFDy*TA*u>HB}2
z%rgYQ@fqX9DNq_@a3=FJZ^d2X8Y2`9$O9=6F(hiZpPd6CgpbMqc$1zPlNXGw;fTm&
zW`*Xd7<^qdnKz>+%*y9_*v;(i^o-E=W^|aLdI~a24fM#{ySvc3*x8IjA?t!>l=-L86i3cmjyJ%
zdFXmVCY?)0rmPUH+>@<3lPDp2ifidoQrBuzx|;&a_yY
z-WEK!)Z@6;mB>|7(KcN2Yahda2pA9nn)u2jw{%IOqkJ5>mSL^eo}a0X_gz2c(Dqv@!Gt%bS+m0L-$F^moE5Pl#yI>vBw
zJL#OFatkzb$aK_}kkV-cDeckOK#cS!0vQjaaxlzY+cg(QKfTQHRPG&;?|FMYdbBql
zSHO%+L)V?!-r0R`Z+Cb5PIJBKDq&f`bu0cOOhK;d#Z;OB1867@#b77nz6BKb)D>hD
zPa>PyBxhu?uFY#NYg0t^sy0|ulKh^;^K|sR)-AMAN*NPU9Tx?d;@%NQ4E84r_om6&
zL?DBmlR8h2E5!$UWDaoP4*gthwveSYfoQHo
z{T2XMolelDpta(NMMtHiS+Wq6G(xLN=twlw}lO)nZa!@#9)u9n0LC_WHj%Z
z?>yqf^!V4MCpQJ84^QyT;Wf0glFtGt4b^SLfWYzsLNfsKi$qp4oNr3W#?7hrfK?=X
zNq?yEG*^s?!if}IwXUL^!Z+Bru~?EBn`>Bo6{GYe?(f;X&NvyS4KS}eS4d3RjUZ&SQ@!M~;>LhgR*}J>Rlr|s
zH6GDKuyjx$czwbdCJthIt4TwS3qvoQxL_YZLbpC-uJn&NY><)qj`)6Ht`jYP)&WYO?n=fhf(dMql{URHcGuHN~=q7oU49XedGS!t!dt98KNU%?%k$I_(dG#(|-7OhxkHZ0CYn$Tce%mXX
zo?yebuYSW*tU7iRT*7ZrrsHka1U#$g!oH_`TAamiuj|9m#WQ1skYkN!qKNxOg_S&1
zi-+VH>I#ev@#hFJ8KY8*6g0U3X~9mM6IeHAJ6RvH+CD$^RFF0fcyz|2ss}iyH3jBl
zbCO}YzUjA-E;o54vkiwHV=*aup8W~i;KC)jTj9l*=f@||U!cdeMKQ0En?#t7mRW}*Ki`)9xjQJWn+E_n%GU1tj9
zVt!!Ji|YY5{HABd7kQBiHE$K)poJJE@MBwchc~{B{abh#uMbnTiSU5*JjkYi2Uj1f
z8;7@K&#+?nUl9T#RDowrb#skg<%fW}(tOE{gjo~rK&FaSGQ-*qux<4orPVr$fBekq
zx~@Oe8AbHVZApp2THycR_f!xQ1}jN1Dh@1a)6aMk?DV9&ijSD*d9S&-wH>EVS@r~d
z7!GCpKa?tBU@B9;R#$*~ZG6rcCY@8o*K|#i4dEqCYl#DcR3hrU>lF6d1e{#kShgS+
zT)hdyssGpQzxu!Z_jk9p_`5uu`jf3cv!xkrJG-6T&U+ueW%58ZUhFNogmIk4Z!HO@
zmixXP%+1n;7w7M$*<2pi7GN_FHoAPp<&AYmYddJH4N|%6Xa4Ws_#b|VD02QTfAx>A
z{OT}=g>-+rgXGnu%WI_jA6$7S9C_CAqxFPul=`nZ0*3mQqX5*J`G5fL?2ZE>Km!p#
zY-c>2YUndIR#vf?A`S;8LK|(X7EB)#;Dg`q{Tu%o@BsL$Cl^O}>$m^zw_fo7?a$jA
z(+ktex}vi+Q}x+bv)|2Y8G8LH18jERh6J#Gm1&#q#rswxa(fK~5C8}}$k%=C&^7@C
zfULeL-|!PlidGWgXWpgn;dXvqKtKZs0M#TDu{lf-J_{ahRMy4^)cyaF>H#|RW66k6}}q*tZfE(Xlwt3i|c-d@J$3*
zsY4S+e>L8GtAyzbh9&eeL1uT+x#fgQn`EqvwhrwZKmg!%d&JFrk>xLCr6P-=cIfoq
zRV*P(##m|os9I!Ko1geA&c7`ifq1=Hy09ebdyQ2cXIFMOUr6PrZV0CLn~CxB8n==c
z4j=%q2D=rq>lQ!&e6lCy@Tacv>u363yKa>e$p3bc>LdaF^U7E0w{9QBju1cqAOwCr
zK>#+l(JZPZU%UMOU%7@76;l7nsto*qO&@gd0wMLE!l74qTXpWQO)1lm`i~nz_jHMM
zxpp5Lx7D!;$eOIYy$m>W?
zObn1PujCco<%l?8oRsGKs5#~Zldo-*mn|soVlOOg#?Fp07LMaNt#_OQgT;zbdU`g4
z@2Dzv?qL=b5uTHaYNd0%a>V>DvuG!6)5XJ@0RGU-P
zPk6>mH0i*~R}kE0LJq!UrEq%gU>oEdX#rZ$!^mJ=bXcYZ64FM5?=f^GPGZH*G9M{9
z(0JgbAi9oBQjDBe5QM%Ca#b(*Hpm2G(mb-%QMN?sw#xTDgD8tqL>;DD&Lx%~c+@%6
zO;7YhxnknAX2_ANnjFG`@qRpEHJhYNyAx9XMd%Ny|FOo{!LCUo8Vb82p&@#F-)8GS
zD2X@o*8Z5$<->Tq4PG4g`+0JnO8ACJ>VI%_ynTnH7E=F1>VHW6PXt6&Z2^pA>UeoK
zOY8s=GLnYW|B(6*F-encZa@6?{X_6uvQ_=W<=#-@qy!)-R08eb3$`lOK%!xjDp``<
z*_0NcO4z168s$INS*uW)L-Y1S>i;mL{tJCUJfNwRvb+|Ih2)760?_k}2;a{$B&CSdSr!nX@~=@&pl6MH@l7H~KSz{{{ONe+r$eZm3Ft
zk;VB0(r8_LLMM8LqNR}CVco@%iCz*m87GL@1RM!Mi{O0fkT5EsPtpBD>c7C1hSYyh
zIw;YovNQ;M9aH~*T+&~
z(+f<@U?H^JmwKbhBgiP3bxA3%nawe=F_+q`EV{IbxmJ~k=yhf?e7#b~t(_qTYs@lO
z*6FsoQ`@?`Jn+Js0<0^`3oXm5oPl@G&VVP*;;pNPCLkqHapH4C{u3j?wQhZ_wCHj*
zS2r4EuT3V5^Xb
z^A$~&h;ZH(Dul=CDQTN-cG8^!_yV94h?-daM0Rpg!;EO%LL(?-6P%t+2*eGJ)^m?O
zS{LUMr?LQyh}*?CNSpnKgkS$Aw5!v;X8hLPjFm;kKEwa_cFW||hlJl*
z6smqV@Qof^UePfs$=5F3_j2YKUx5nAzGUqo*%wAo#4R#fw5K|CI_#m)lOVx_WM8U-
zaE~GQ&_qsZc^)`W;a1i4LVyCiXXa}LG_qbUP(_iVW5cy0){b}xkZo4aK=2}i9SNAq
zIuAfw6*n!yxaldD62^>QkS&R$vl7xD;vV6kfg1r}q%a(7l?ytLlZ2tZ4oPTX2oFJ4
z;wWiZqHx343dz0$)X?@Sm+5v=cEJkOMVLlflR+S{F#!5tV_7Q+XJuD5jT&38UVai1
zV`UjA6Ow&Hvagm{@0j!eN0}fIa*v2Z`Yb<8=QRm
z7>u`^q)5PxP-Y&<3m~AJjGdL`=?|BL2md=s=VcHUvaA6>ZBupu-8X_XDFvud+p3^n
zS?+Kg(>ZwiD_qnR2^fxL1OOf8_BiW9G`Qo&`)iY@X!DeDT9hm_-qF^IKzcEP%piYI
zSU`@(5M6o`zkN2FO^dy^-ooUQ5uMTS3BERJ5YUe9sZ{%^;y5>Rv)UPe)lFAI|Nn
zfA$%^afxJ@aABh126r?r$2*vn1PrG6}>DXI-%ZYUTe_%cdYaphHIRFS9Z04Z}Q2x$5s&uI(=ty5uK
zd(csM-$CKukuZDD0-&9myCUN4b!=L?I-kU4{g9B#kn^8N?WEhXi&)
zDP(P`f_Vu4hmsj2fYK
zeH0SdpEh&+jq5(tuFtax>rGYKiHI1RL`a0%^+OaDhLh03G^j!&R@G`bf&SM4kYmze
zVRh%)U*f9#aZX_G9{+oP@X_t9E&eXg9sSiS$8E~GElFQjFYRCy7gZi_wS*e!WV~pe
zH?C#1YfVq`6wXzoaP!l3jW=mCRe8*HWm9i$M6{VAJf>~Q{9AwU{GTF4kH5Li%LcX7+)$f$WojiqkeK`Zzxiwb&EG~+
zE`OIN=I(Az4^ZK|Oa*Qx&$eaeesG0um60}kZ%fU+1haONHoa>+WXR10Hfk}6r|`@g
zyNnGhwY;A>FP8sT@uK|HyQ%h~2e{j2=^)xCjDGZaz5HD>6hv>aP>h$WXxH0{1N_9U
zH!j+oh%5Z5t+vbb4Y|1?H#ZdHZ95{gJVzlnH{|9rEX-tT0^;!FG98()Bjv00yGcK*
zIIzcc4UsMIVj(p2d_UyoR_kW8O}m`!izZ2~C
za&sHGxeu?dlzi=yb1wnY)l{KEcJ5avJC`B0qWMY^Xvp1Tr^dA$G5QL8#brN$u9j!ipCBIK=LS*u9^q*ge>HzPz$4
zJcL!*KBh4l^9Pxplwt0wS4&gotc_%ryt2*%<$tdwoXkum1R{NDfk=$I_+NhR>F>Py
zvs+vIT^@I_e|5u$5?H6rVXEmM8XIz20${mAE6I79&j15pa?FZyI?eJ~XMM4O#oh)v
z5QKnw5RbI?WI~vsst$tnR9d=U--E$3a)QD79){z%O4`5DTbu#2CqGY%EKgV&eUJmS_J)y$yI6XC$->=q_
z)IbtS(YcLclz}+A!YXSWg2kRLzs6;9l5)2Rk(EtG^DDg=5gk~8!jMgJip8FHrWp`D
z=7yvg2h94_!8leob9(@=B~;1IOLYGV5G7TxVUxqjELtAp#$S3Y?)=rB^6I`c$yH`Jn~sSJ
z1JoM4nVVPZ%dqJ%Jx!L?dQ_5jy{-#&bPd-X5@}dJ7wd|v%;tkLKvlqelum>QIvGF=
z-0KP6yFE6GZ4qX3y0WdAaYsU&Tub{NjgD<&nuLAsVVhI9c>EXt%!hyYr?$5EyIi=q
zL`0$UB!sBWn~mzc1k|eAgKLL%qNn8{o%pgA&UyAmF`o>msIbt1Dl8&f?nSrszCk@e
z9O7hn3vC$oG>YeY(fhl_8vtp-7kos)u!xssH68&rf^0QIH^0iB!IQ?*TW@p;fWbxp
zk4a`-_pY|w)?V~>XSeeX8sJv%#zpsK+K(r3SMUBkD1D=XtPO;U<22lhW_g*sQS&n&
zGYi;ttcVK9q<~N*x$_Lq1d67^(8NJoQfcK8*6J-Nnk&n!{44+X-~RvpCL%fcyF8k6
z^MWXo1bKJ)%dRP|){MGri|O2)$eNw2644x^EwXcS7wwWULVTwS#tiYDxY)X63OLBh
zQ#ABc0)s;Bm0Hy=D<0VUzh%W-@aZ5&0h`TYeN~LX`m3gKnrGz{f3=ydgq1IBQ>eWX
zYOmC;UEY=d6W&3IKVSa8qFm?jl
zl>fhYIzxOXSk%F@&!Pi0WYJyY|J1E+_8YszP&vwzSe)Cr_u!IcM%0RH?T@p1jO=2P
zY|!~rHru?{rXkF}*^;RrNj>N2upIYSjY3PrH~;9HfAD+X*xKUna!bUg8@oA{C=Xw|
zD9`)XU6By$8Dc$O!J;yPQ6rt868bQSdXv+1@~RULP$s14-Hm$ikipz?mXz`rQq!jy
zZ1KG)nGHG-F?kte7-_Kp+D3rfTY=A>q%$q?BA**%g0uKMk*8pY2h8>?x)AJHf$~(`
z*KOn*f`1IQ1-P8PaTCd?nB<+PXS^5~8XbgK&k*ZL)cg?Z`DS#OMJ&D!JXjpLN%Z#a
zF3Sbv5IK;&3yDKLCOl4XXux$D>NIRr&LqTo+JHgfyc@@QD!CSlC3N#E7
z_*L{t^l5F(a%kvdNGM}oMo?w!;N{_x*Ij?J|@Ir1|tBu2(&%X($Tr7
zUbbFWK)@d)Ig6eUw%TottTNzN36aJ{oY{XVRAJRG42eoA
zJQ#A^Sg*hwF;maH$G*k2C$|$`ptaZ93|QGEg#Za~eAB+>Xp8$ODj{PE{h$;Kr)+qV
zWD7Ou%JHUV;DXAV){E(yVW!C&?R@Ld3$hNVv9K18X!R6DBScO^<0HG80+MsMMCx`cqGk0<*F^-dz;
zCIFaIpEyf`K;skM@ciLH^ug}C_jr*O<*7RS0U{HFmuKK8v*@;{fho}FKiui#-1g@)
zl%GQLJTaj=KOv~GA@bZHyey>u7#C%TJpWQ7&;RW2{r>;{&;9wWE&eVy$$oNO1Ee}5
zTI0`!(V6&_4kFIuD(ta&H`kha=4i*_Bxk}};Oni=2Gh+#SM5}Wd}4&!Zb=t{5(>^$
z^D@GKiWiH+=tEYVa+6#06wK~860Wsy>$VZHF{CutZ1oc5DY|5GaHWf_n1yLw0in22
zR;;T&M2OMVIF|Kg(x>=(Zj4Rd1SZOJRLQGWX_JQxquFerQ>@iRJa>(kZA0tL+_GJG
zzIOk%HbMT+2v(cR(dPwfJa!vIvvN5`>Eva%n4+Mwn-UF35DHo*HI4_a)yiH`CoGK-
zZNkq}xHr!QxmeR?FW6es}ur*BFp54hXW#}~uJ+6yCw@(yhAKs)cWR=ZEFd@UP
zacfYs?fiTcPdb}Y%muXF%TfZKDALnOJnAA#WdPyQ&C4zm-EaTsKmX)+CqKQl#oy(;
z{^Kk2`VbC$v*Ex8SKbL1&sw{2i>w53Fq{_Up^{fN_!bb+#f}M7*Z=Dp$Eu-Uga=0v
z%Gc&5UYE444>NyJV|vv|yaSs86Bq2a`l($0d(n373P`6cZ)zV?3*q!E$8}qOSoQIj
zm@#^gRE2E@@Jb-Dz6R7A2IMy;?T0PDv-@KSL;D^U;LDF&KGYE6Xn%+>2Y3?>kUdkg
zt$2{Mk@X5f%_K)j|J%{d;h)&r;_vcs=FRE2$WCU2#05YtjW$U6!N0KSqfwGK
6 zoB!&@CuZeHDy=pLYzuTgy3ql}MpZkq_HLHT!;^UTqIyK7t-EY%2&2L@4FUD=5!)GJ z@(K3ZmEl|~8+fEIZ<&LN1~NR)YHbR2(AdWgm#;o5AG0IdSY~tbSM+9E@-6tIecD@= zpV&UDYo4F3=<@S`YTHEmA(HA_0tj6fimu}*~{fo zwHQO6MrsW+UB#9^i(e*_j=Y~NL=~O_SN4!s!QIG++HhPTr*o3Prg%Rayks3zB)!pN zk(;8I-zpJ-2GIpUE)!(h79Hjw>GG~(Zj7cZs8RE$wys?ENWvgngWT#n$EWS?rPK3w zmv$IXZ9~*^K((dH&!77F*o` zXOZWHsAs!2m%0%6Q2kQaJnH$^Zd8-_+J!)W`$m^1#6y!#5s@<*&23DTamd0!eUj#o zdzf+QMR73lLIbI)hSPMKz^ZJNhUdxmOSnl8Kf*%f60U{*P0SVb3e_cR3EuX+7_UT) z6B%H?2h%gii#fztSpE@+h2C?GEMPp4)GN82o*+~U@g`z?x}!RbBzC7mh=L}T4AGIy zO^@P14uKCZBbp3k$38+wybzXQCIX~alTP*W#7+d!NqC$3L2nNY`D~KHZg$CuKhQ|+ zJ&C#g7@+|Sw#K_&WF?lhpWuH87f40j)+N>XZ9J<3*zB^gY=;fe&>rM&(RHKxz|Ju= zy#50Om}1~lxRVgslSTMbpFoTNW@f%VOGeX^68m%_o1f@=NM+cE@DFj?P60vxh#xXo zJdCrW{!nm0Q7gD5adcL~q>PP%9g+cnMKVQvD=#oc5=`L80I@j*WMK%6SLgJyF?AoR zA{80x{P~I-?&UGu6s^mZ7%C(|MDYmTBSb~a_+R%<@nq;}R=SL=nTvOpc@VI6h}bw( zkc9!1qqw)J+UWk90k9jc2|x}qE;>u_x(}_U=N7uQ$VQiHE(c#>-EtT+%ED6kq*&Qx zHaR87!gI(oNJvJj1C7l=_7ao{x*0=J#IgdJ0VJ74^me2tx`Jxfw(|ieiIoAEb5yC6 zA>$z-u&STO!86V^MlLvPzbVdq#(+R5`RCBQNqapmsH9$KVC)$!3qwUe0#7CvMg9g4 zrL+3K89f1qk=m4YGkZHdVJ=a0mB4i~1xK0a6$cEc0MVv7#sB=vidxctoZ&hk@fXo}^#MJ((gv5q?Kx(_r1m zuH*S#5b;n}k-eDI8N1}gfcF|!=^`?2ZS!CsONx&W$dAr6JSJp3T#aztmS385CJ_jQr-&Uep$8qzqcf=Fyej8<@_QPy zVZZJ{NHjs;+TV6RJ%!SZGd9E3hADZSrEuGb;%ivPT@V;!<3t*BNkX>kJxETHz8uYE z_Pl`YVb0;^7M~Z`f@ucTp8%V{T~)nRX_p$}C@T`&-|`HZMP}2Hc%dRWTKNiEN;a1` z*AOvgr=hPc>+HIuik#=M9ZG7EsC0?RAWF-wo?U({LxKEjJ9|;P0beHzE+FAZ-geLU zVgB{Sc7o1o(U=0TWuBBDAmHmuJU#*6)k$DJj2DWgWq*_wXCMY(u!=zd!Vzdmgd$8E z0uDWWhKJrxI;R~hG`EFc-HjwCkpH}+8ig5;tl#FwAu4e|bxxOAItQ1L9;v-!Xsf(4 zhXgkWEK%7QUPM{|Xe)r)g3pZo3A-nz9Ve~f?bMhdmkZfBka$b1C*?y>SVpOzJwbv) zq7*XO-ECnf%a&Xr{{NoNY@z7R>LtJSF+598u?e$FpF_q@^~82l;G~|O?bw5?DIGMY zDC@bPsmJcBpXkUHvzs9%h2l!TG_6z*Ujy znf_5i*_hX0CL98woIE0#!|(vIt{7*4xy3z!+3Ce((BPGs<822CaOAN1+A9_ndAg$# z=n`mA@m{meXotWAF(exPq8wu%nmN{j+7kFgPYFhQbf^zpS%_q^Xgr8+%e7r|arDy- zm&fDY6)AWz5LSGYiGc$-l+r4*(jsf{t1rmJ{4-=t2Ku%}p^uK{1=*+TthfU!AQ@aH zjymo;$>bs}jFEjGjCDE_bEq3e&#{;?_OQ61eC!x(`^bWfbhzyYB`=+~_Q!x`&4=-L z8*3c*`#Es_afuIIv!mnfJKR6q0goQ-jmH&r1Ha$4+Sz??Z+CZF?Cd^2v=dsl;tQ!j zez~7&6D2Uk|7u;op%PHL9gJZt)p1b^yE4y^kIB0#3 zgBXsQ1u4)NzzR-N-00xlyb5@6dG{`Ou_S&{G@jt1qk$e>n)HKCbX1B&2)?fkg*P#+qgquP}ZC=EzOE$Zu-i%5$c2$Th(@fP&NVS>W|Mj<*Eh?puG^hj|p36rQ> ziOe~Y&;cWW@d@}joeb$hrY(VGrNSvj<>qMS^DLOYl(mWV5FT)L{j zjnbFc^w~W?@eI>)+!NfD^D!4$M17;`@Hrz?Cpi^iXR;M`C9-Etibeb`ms-616IBnA z2?BJp2}61t%eu*$9*J#9SsdRtqJOcUz*bvM8{L%IBitB3mQi(- zGB)f;TqwN0i11iCC=k>tp{NNYp1swiAx|AeaqG5svOQL8$m~@TA#Nm^hA>%#JVU^S z0~HWA{&CQuV1}ODqSA;1BzkO2Jx68){V|iHVX0iFD9Uj4{%GCdv^spLb!7T19=wF2 z2J=%}eNCuY{I=tNyROIkRZ6hEcx*R#R2h{0z}t^?-5xW-NS4n$EFs|%xPXKoiEn`v z0h?17;s?2Z-tYBbFrazFB zn?SW^c0n$)Wvp+6z637AL-Md)wUs~e)_X59T>scG5c?cnmS`TBr{S!=B5mJ7&j+5o z8{r~V+XT1^S%htZXdI9Z3=wiTY<$IDluvPphSQfY_Cck*xEoFQ!D)j3OiKCqd$Hsr z)k$R&{_xDKam7LFeN>;X+__J2@sMJb~G^o;|sdw&7)ldLz zvq9^L4A$h3MBYh+%Y+HVImJKpV=>8P@O**s?(>D+8Rj=z^xeXnhug6+8XUe_94 z1HwcswCCpj!+-c+&7YxAhy?$evu+>n6n@ow@wp0O@6mlT@7l>gzjY`yvOhd+xg z;qUTod3H0~a@}lfo2%-QVlR`By*#tp9uZ}n+x7~}m*rP4PQyL&6-c&z2gmbEOSTqE z0xPJh*~3_zU@@TTA`Ul$wyffz<_&6!^&kK7^MCNKBE6cw%Tug3FY07>(Mz$$_1(;M zZcDD-9EE(z7<%b6hiXf!esZ0I$Ja4KiNB)tmXj-~COg%WHA6x*&Wo_nO7;iBn`Vwj z`x18ld1X&w%ccOP7rfSLa(CmZL`-umy2DbVyxV5bNLjvbnyS)e=WsI0VrI{JiBD?d z4P~UFBQ5)M3_-uXXjaJem#vbn`DyLAG&W)*S_oyNVD^L6S4?6dp&B;Cdex9R2k{9p zBvebmH7Z52q4)p#KMyAm>nbFz8u&_1Gt?dgLj5n|b0W6K8EdT|H%sT%@W^(=I2 zf0p#kR;xR;9lA0`IygNSJ&a@{hKra zNnKhuz*9{rkhZHwu(P*F38v>uEM+Jo6%wkUF@HVFNL>q>$I-HDgVBCa!xO@gTe_c||umV@}$0?|U?#O1gT_#91;j zM)>BBIQ!mB1gu&)5xC1n`S&4-8Y{)X6>MC_T9yNcO5T&qSA+!BFmsq0LPTXnvSB1h zmC&aA=mn#V1dExZW1wtYei-OV00?$=5T=q2kVuRC6Eg?WXE8$l&kTO2DwBn|cjl%k zB0MJ%QhJdf!ikYBNb*yAJmcrS$Jv>vDnT%a?b9|gNCGLm;1%zs9RXQebNf{$-UaoP zIq)9fOoT#kdi?2o2}#tU5L_q(r-kFdqR3;#V(P)uih6OSLU5irxC*Ib^c?;dlBh!x zwGFd8goI{qJ)NOx|_&zO=E@8EF@8fBx=$HMD&nEttmn-(IO;K zuQdBDBqR9=9lVC9w(n^Uk^j|(I#}&)(_}`3&sXqDlB**I?r|~(?7m)n4{HfTljw!! zv8hryumB6Bcs>s$W}kp8Npv5$u>+QSv5AxD2X$!#df!W>RAiV>(@FWNrOT@Jt~bD^ z_xGQTt z?5)NO?Xw%s(ZJ2}DPYd(?DhfrVW*D$VoseguOq-8h6E%XA~{Y>p)@ZMd;;k$>+`&# z$mD;Z6b(68NTP;XZZdj95_JXR8j`3BSc;b?^hy?ORc~^MWo&`lha~DTKxRS`bx5LK zQq=s|dONl2m&Nz@^UI-2F>Vg|I$=Bkn^nLgJ%Ue7`jbx5L~Ut~GZ^DMaD zS0;)2@Po%hRiWkkY+GrhTT`n3Lh{F-8RTl>C&qSm9g%Vk#Oe=SZbtY7+ z4%MndqP6CnheYcNz+NM?qI6o1$5GR`PbiNIAomPr zB@h~k9I2%i1hBE;4>`%Q8H{fj^_GEYEcPP6Qa=%wR6juk49#ifWWq8MnbaVEaBxqc zB2kZg7@Z`rBP0bAVq-Pir6>kLqoAt3IxYIC2wppj0Ujh%lJ;>Q;Wp~88N;fFc*ag+ zaEweWb=1eolQHIL&9aQsDbk_7o{rHzn;7w``8kSRxR*e&46cbhxr=!GRsXcxEN%R;W zayD4eJW^OuG?Xc%fQID~^2fwi?M3gu|NaLbeDL9iAAa=FNAjIp#`8EG#r<@Y&gR`O zfVFR)yy?~4_r{4h4p+s3+hYGo=iULaxuos|%3>$MS=@PhP@BFWXaULj^^w72DZB%! ze|+D1M`f<|m^D{A-Ff@oJMX^t{s$j^v>W#a2rk}jpRutEa+_{?vE7_G#`0NP8nCb8 z<=Ef!jGib{lH<61LLR}+?sdk=FfBD<*v@pCXXhaE{528jp|@Om^6h{fi@mGHNG+8U zU%+1ye}TKsdfxV@{ppA1)@4T$c!A%g1 z;yrFI0o*u1hSu9II!i`V^pUG{qGAD4HiuQm2uR4YF{Fn%?_@#I*zEFbUYZ!jGXA!$ z-R#0NSlDjC9Uyjnk6$C-^Qle53OUgM-HLgFA5Ve%HiDKj+r zNdH<&j{EM0wCO5%mpGDSp?Cz67*ER?CClmr$Ps3-F^<%E)6!LI^h!EALmmu-N|e^K zvZQg}LuR!1v@NG`7Eh2tzf}VGev-@}R83IxzSvM!bmU&+QHEaSHV1Zl z^!jky+r&_ND2P^2*gK#$KaxZwfc!^D2*dImmKE;*sxBSM{_Bt}Zuy6-DgaOsfUYNr z)7B|47hDt(57tNqXf>JzUT6iDVV3B~Eu`U%rR60GkikA^L z7y7O1ZLOW3zuOFhsb+otzS+0y^uK_eWBUiUx>Wa@-J){p(e<*o@`Uu-dK~*sVL53B zG={iJ95fa{&oW`JHBFpPj?$Mf0a&41j0fjqD)oHEFC*fvcZ7h{jd-%&O>m3^}N7VwQ0 z0@9v7coIFqg*sBHh>N#sTQXH+Y!hpy;X}TuhJV{dr`Tm}GW@)@nL_hFe)vYNPy{E; zpW37`Uu_WGF3Q1K1p3R9AH5aVsNL$?)a?@VOSt_&Dg~6s zSiI0`@e}Eff}WmnY@QCv_8Uc&n+s;*v?&)^huY1@QlPsooneBdh3V#bM`Lkl19L?(taS>Wu*4cwk z;Fp1&TZ3a7UGKq%hz%-w(Og4zs{O^Fh~D92SYFc%8;l~ih-l~_Ck{87?h7qhqpV1< zk6y%&8HvQ&gARR`LX}5L@$`x6S(JVIhWgs|E@Kc|p2v2mixiZH*<}};40Kw%dPZO7 zGW-Z}9Lx?u7G@%ivEAwJP)vJ^;u~Jt&s`R;%}JVrVDZ=xsem|NirXh1Zu~8VylFa3 zMhr9pc{2CVU*{o?A>2GO^-oqpq*4_^p}dc<^63C8CMS+zO+t4vF~suZ*h-#r`Z-CD zSq=v~uXuek8T;`Bf-9z5r0^oiiIZp~-rA@O>m<|yH9@gCNZVdK&m@#28m1>!B5S|{ zV1k2^QDQO)7|OsP`oKP?!BJMDP`9pkJ7dvgj_SGM+^fZwMym+ z;*LjX2)wF%9cS?b8LgJ7|K!599$QsS545E}vL{sh24$IWJt%rycIu+gcH#N=7Z&k{ z<`9^}+pCVM&mS8+!yZeV;%p$5so_wK9<$&$d}P@|r!~Ih_e+m~+?2E;*{DlBBXWE! zD~bwO1bL|Hd_bv!j81g{2Iv$;iJ1LUPz;>WW3XiWq2Y=iYp_bs8N%{1q*ED|G|IA< z#y0{6w-@=V5&g2o;xuI6t3JUHP@9usuX#f37n>ZB0|*UZdpuxPACQAl->-nf8*q4k zG&sEbxZNPy@^Wz87wmQl5jX8ajHW+unoW66^1ShM_LN}LVb2I*2E-PD(fr!@FY;uN zKwiT$a+)DM(@{B%*(u~DiyUbBR5TwAgB)@%(blWR;;KF}qz?uBWV4cC?!gVPb_v0z47=TL3RKA}Wbdf&+QG zDxdC+(?V9U2OrMy(lZeaGl^<~5!Nm_1Rp;GKFazOkF7MkWT*ni$c%(@$_Omndke?V z$O5vXlo!nrGonC`eRmn-$k#x|ThZEUZ3dJ@VI1RtrhV-wR#rHnA4G08Z^i~)xeIcM zrOb$thu-DL$-*+P%MK3XBp@T4Ps{!&Etq35hSUS1Mgz*1)cwe3aP9Lg3=g`UbWS^r z!iV0;ukJ=kp5tr$^NxxSW;~}ZVjVU3b8hrV=^Q(*%M9}&hNdQCW=QD>tPfU2$yk7@ z%n%-`UB4y8yM52PJU#DNP2?D12B)Wr`OkU_;01VWt+1f`iHD)#x0H<#Xgx8ag| zs$QiH7`~6O>yjZ}(MeeqiQ5oBer1vYDy|)msCUjI-2fAE6&=kB?vLvX`hd!pnOy%6 zXeAlqA}tIN?_=ktGr2?DFgl1_VSu8?9Rm|CB|Qcb>u}o-N~-N|?T;b8<->Tqjm?hx z{X98OMTfS{j*hqQkXk@Pj~?xf$CZf7P(9OXXZO9m>mXr05Q+oY6gVB;uJL2U$IHiV z*Mx6)KqT#Y*JnoK>j9cXj2`A<2CW%0NBV{8gtT7hO>VAf*t9Y^FgPouy?&m-J|Og) z5BSy+4?)Wg<^<_qTOm#Y>h3KZxM2baU|ixtytsu)>o}0q?`diI3L<_OCiJj`U11vY zNJ7WJ%8*iF&*D1bJ)*tjFAt zK=(A19GpYjuUqVeO}u$nBl?*?`{sY~pZv35*xKUnazFDgU&+rb2cu}MJKs`kcRo0S z3St7wkC0u9L_HEK8Eut;ZUYti@co{Rlu~ zw>~02as9Bq2(Pj(0NRD@8;<>|!_STnl)J3z4}q6t5&Ws0;Hn!qOz*w-e)OnnxO{db zv(>#Fl2e){%lnbEiq#z*GaG1qPnG9(#VdYZ542i7FWz^nr*%}0K@)Q+sTq;CuAibL zie9o;+%E|1~@d#$Uwl}`ihzIOt{a`Q*+`#KSrz`)t3;9_0wsr^T(Z9wH zRHsnJUpFdA+>VT@I77%NQ1#muy3z4NZG5RsgzX4P(HnIBTpDh$Qw8Lo9DcvmeIA)s z(UDj%))N4nS<99|m^}9gZVWT(^25IYQ<7cUlrwn;YrbTgq`z~&p-aoN$J&Z@{@!0C z^mwmcM(O&6G^{V-$ta8USxZWNdq>rl$np~o?B96)M7&#%A1}FKWGepk$F__6z)$Uz zAU}(Q>$Z(wuIm1oKF~tpd~)?*{>HBxr?&a+UE6ms+_`GB$%-z2;Y;z(MNU#p!>1^I zYUexfxHdnpE%&8HuW@d6wR-)14t~9XS26I#dDs^(q&hu_U#Dre$tQZ-RGep%S$9}! z^hnzoJc8i@S88;mMepyMru9>}koRJHrZuFk*Mkzd#xRq^8kDe2y*qv?PuYnslhhiM z+e};&GgsTBTyJ6r+i+@J<&~Z3x*elg{Uv?EwePt?{&SPl{#FWswmXCl;5r#}#oUQW zuBQlhU~9+af%X&a(H{UYvti;V|% z3(eTti?%NyuVxp;QfxDhY}y1sGuSYZf@Pqq7@L`%nk$EHlMCd$MK5$cqod=;pF~Fo z`_JITpmZ;`b`9S;{zwi#AIwSC{ru<4aeJBp104%lWQ z?J%846uW?J2GXiohXS_QRnAzzHXF?XwpjxTGhmw$R(lOJ+h&sTBWCFZY%_XJ_K=;o z%n=i?&8*`A*IKK{RO$GLe@+;oVt;D4pwL^uHp`rKs9LvxZB`eUlvIwQfNdrT_I2-x zRb)Mv@AC5&u+4DE1#B}*AT7sCD5MqBm=D!eWV(ho!#4ZmD$XL~)CmY@a11-pH2ymv zoS{CpKqgR1LwL$~N})uFlV0>oAe{ZmH7GOSoEd-#i_V2mE(J|J0KpsUxkCbrGJUZJ1p(XIu<}y219R%61`4kC0!|6-p z3nFRk;%+qI2d4@CGb!cc@5K_}tXhDb771&^HwrjsSml6o#)4n{gh^zs;)uyUBg_wi z!T=AW8F-Qu)<9b_>D|)8CB!Ri4?=DWz!{H{9DrJ6fu_s|@_}=dHPMe$LxWLY6UB8X z*HI(0UUTwcs};x&Bp?zYOr~f0ukuKdlRE?$pWyM#VJko?E#Z|ImgsOva>OqoQy`n* zpt%oCqAuS(&wyEjTx32i=p#}}r9@RQKpp? z;E-{Lm13SJk`?*RdTMn=1I}5%IRhO<0p~2>oDrX_LP{bhk)luDN4Vhw&RM`YgT{$U z8N8SoRVl&S0p|?Yxz>JD{c4RwZxu3=3U6@s0?t{$Ijch_QtXq`Gbetj8UclT2yg?f z$!iJ*YMio-aYhn1FZO~l7mP3vXqGrSE1~s4Is_~Zp{a^w8f%gcAz&s+g0izLYo#Ef z3qvU49$Fe{(;~sBNU4Fp#=^SMF))fPC#nw{)zwlo3M)3Krps#>bx?NwPP0*+8%js8mu%bLFe6&{OG{2r5-AIcZKvDIidl=$B&% z(RhGXqRCR=GP8xGfJ68J2f=|XmgJNTnhnKC6H=`@i{SS zR*IZJJ)jCfE56q9^TEuju4J?Puh#V&aL$^Bk zXlH`^Ah%8hhZNAxswl&Nb{5diq`=)GT2S*=RC5je`tE951(VYbic+0IL4;a2D#Oie zY-2z>vnvtM&f3_z5L7@r)Q3U5=HuvoV>TXQOhQG=a?8@YmkGY@a5b z=Ck9U-ukI`zHuvAjwHA_Ycta|U5i(CQv;O%&PC-U1%4pvUJUTs2qaExIOFYlXcAC5 z!64e#=F0%HU4)djlH;-@>VRfz9Tmdttyok=!tes9@ir%XUINW_CN^M=eU=a5Yy@TyGuKK{OtT)x-4<6 zqD}F76PY)*klpooj#WN5x z{6mKSYKFA@LLgPuSrRk+zxhYs{Da^7#?}^pm+K4%S5!y7BH8_1h(G*uf9tn?6RH@0 zmoLOGU2!4SB$Jz%k^9i}-=bKp`4tS36;lARAk))y!T?`ol#)eFeHbm660Z*>ub>|f z7zHe)2i@bSnd&m2@??suo$=szGo&f<8XwO@JFg;7gBAQn6aL5}%mJo?RmsD*5qF2;eO8bf) zpjrU3^!V&TvHWLtPLc4&xDd|egp!&ko=)zYHRa#NHamkNk}t63R|UIZ$gj9 zV4KP_NJu6r0yH)U#{ydv3LM8TVOa#HWYu0&g9grCdZLLshVw}(p{B7bdwihj8cfX| zjLIS6@F(EfuR59_-@6<2kc5d`{w9d63iO;}$3CO)|8X+Uklw^+jMu107&$2enz!N^=NiM(feil? zXFlU)gCgbUfc)U2G63GBXRZ!jFgAu3<^tSa1VbPQL17iQH=`%uFj8FCZf0+%XT&nKWr=@Ac^%G^f#k^M~xlQ2wCB^~bt z{)u!m6wEdoz+M_lULY|C40wX^K!@kJ+{}Z0EGa(1dZ05Y2+dcBQA4B?d2_f(S!+3) z0-#}L>MQFZlANQSd88-#J&*|8#gCUA3MvGw{G%f3$Ag!A^XdWFsHMb%cT8TbCYzpH zX`g6FOh0PEaTB>T=}aP=fLsEN$%2?-h??ngBD}p+!Y~%r5kWSz?7S?t($+RgNEh2e z2-^xAQfzmk7Z4?1O_4RGL|1_FhQnx^0%KxZ7xM|$3`BqrB#j=#f&(0#l=afj{z>6P zFZ-@E>=}lwl&bf#B=5a>y1rIw%vP!5Pq^biT1I;{*m!fWy*{J}~tLDEl|50)zap@@| z#L#+0Wg)*3Y4s2naNPjAiB^CyvVO@k6+TKg4I-Mzp4bO+kw`0^8=ge4swQ2zYhks} zWYs@IStnVUM`W}IkTOnT`1nGHe<&R>ql0;L z2H+1~taByDo)C4%e%*seX>20eUjP;Q(m{m|Jxc*e6Y79tC6M4%UNCCdwCp3<0X0sd zaR$*^M10bch)|HHAr6tU<(VS7opeq+kOd(16#VM0-lzQM9o0X~cw|y!VIm4ZaH8_3 z>G9IJ<&AV-VrYvf5uvy{GW21$%EkzJASb291|uK-BQ zqv@!G^@iFA)n(xqhKHbCEW|j83=dMSvJYJ!-BJGnFEQ7Q_UNoChWcb&9z$nX)^^P^ zte?8Gxxr1^l%lM{F4&6-;UTX9F6B)1U@ACRWK!00#jm~~qw~*@HA3jy8ht-HnipiT zuCw9}EC6JJ8OkhV6Jj`Gk@JhRFlPIGFyHA+aD3b_dX7bbML{!M-4pEC0M7!XM2Fjc zQ0Cb*d24?RZj}$?@ix{t?gQ!dJO#%Zx@Jem+jqEsxF;Sx+8d86{Vhd*rn8;h_x5&o zx9>F9+fHcRiZ7(M`WeDirwo+o_+PE-wLOQ9?S=g^C#p7h$PXyIAiXQTs zQyU~i_KB+uD`#XNm_YywBE|E0?9e_eJ}@8N$F(%T@qnsp#>yFEA+AL82}xBgl%KNH zD>{+mR*rDLX_xj8(FZnMkVlwsbzJlXxXiq7LAbaCM$ptP zYsX5#a>^I&aVS36BXdAl#}M~0tQk1h1_X%>SQ(`bf+RDv&u%!!M&&1&-9GLsJ9VrW zkC-voYi#6Q${4DLkQWgH6*9~i#lFF-1VL+}94wifr+GGE7^S|qF*ffB;EM^#LuX)b zB$XZ^wmS0S4QgEPw0Xo8NvHMb9d@-R@6wSlAe9yH&vr>c`gpQ`Q13))(Qy&<%GN`# z&dTQx526ot-@QkwF3MAtNdN@Su7A*9@ zzWNT>dy)?zH-0xd!;u(5eglbs6`T^10fGdt0uqQ(0hMZXAljQJh>N4iA6*iP7PjL~ zbX1De$P*(C)!b&F$aHJ~mCfNjoHW)P5TY%*S-1zAB z!*Aa|1ivL)6&ceaADbn|puWz%0NnGznsjOTl`%f*0p)2Sv@C4l&zvQDMlN1fXOQPbLfS4l8?}}vKzlV=Uh6vLZ7tq%*RbvVTgBJfko?1S zvE&7&5R-9rVs6Ir>mFFLJCr7I!F4Glxwe`b(^$tTg`6%l4GckPy=zPjo`r4M7-dc_ z@48*z@{@VZKbt~WbFo}jL#WEY^JLf5C)XBoV#FMa3qyC~7j16o&L z`tPigrxX8JPXD@?;UB5}M??Oe_i4!AwfyIK|0n+~{pXxNQ~i63pZcC~SLoB~{O6Zl z|8*-*8vw&Vtbq9p2IlGYf4l*F|93awZ!P8j+yN+DX7ZcDziIyGo|u1QTFie+j#&P@ z{flLo8K8vt9b^A9^oeu+O^B!H{J)Q%3LpLu)84`n>X-e~|8(!a5h<1@l=uIt;PqdO z3KbU6i`tra@R4)8u|bArE|@&c_yphlnfbS5<|C*5Gc%M^euLak`JYdL$Kc4rWIxv>s|El#y2#e|l%4ScmKdkn@ zDo%a%zhkwJHs=3b)rtf?GdoXK^J#*AH@g4jiGLQLY66x2wyG9(&W3C(_O|AKD_KL7 z6eLlR36Y_bph`;tRA68bLttRw-XI}Bd#>Uv)}e3DoKz%5Vai5`x1k^4%thoyU|=dE zQSOZ3p`TyaOKCg7z~DkH09@*4(kicyU|=3|r2!&p?go2{hgMmm_1!t<)=QDb`;FNf2 zz=D)_a(lt+aN#j>n&NbD{xEtffQwT+G36Kh)Es+9M$ill((GMaKF8(8@x?>?PIMe) z*eNL~F|o13zI=gmVZnTA8wmbAfTtGO+261GfQr;W|M&_MQ~6;9@_T^tQia-62eb=~ zcV>Qwu;(r_DL8m*03*F|wfbq^;9ye4w5it@EV>AGXj`Bnp^J*CzGaaTMA!X$JYeYq zkq$E>6BcxWvD17b{~I3HyDxm=&6xM)8Ho83sOd@JJDiXI_+O5MBKI_AYA$551Q!MKu$zzJuXKN(Jc6p zfLeGNU~qk41VB$OB}MUR_Oq5{^hxNuBCfDk2z0Fl8OI;TU=3;wl=8z+_-@gkqm?M< z%T+r%v9gJij7F6Ur$->H1SlVWKyE_!B&jWe&#=wBws)4&n1(4Sg<{xw8c5`cz%94MQ%QL z2OGNuPI68R2dLBR>X;6@l+jpN6ODlz3{rOzk3t2WbjY=Kx}8*=xbt5zz{ro;Ii;WA%R!0l6%Rt9Y%|NbE?bT=VDY|N-y6a?pS9~$6pFUZvLpXe4GhV{rpz_ltE z_FxYe*#3wnL~xtwJpyhmTqS!)N-Ag{#HAsBF#0 z)8|EMWpJ{xvJ35GSuF4+rKQIQ{B~<#VC47BJPh#nR1K zww6mVr+hN!H}y7MPAi6KH#gSM??LEM(a~Wy=Q|AjHq?(Ij`ugHu?*YPm$`O>1-|!9 z6}6R}-9ZFaif(58i7?qL|#=W#f)jqV@^X0|bST&^BeLFXPd3XNV{(P%;{oq=g)8}^v2VvvpBgSia%sUGuGYg#1H7a+m&aa5)e9H585v8x(6WJDl`L|48J(o3FF!jv(Q;-<@Jk z5%NKJygQAYeP*1gRcTzHQ_G-`&UdeeNafQql;spZ(%^8hXd+G)4C%M1QK zn0SG9ab>-O$Ig=y8~ge(6z@dV9XI~-8t{VTE10+ba380*X35S`J}5*uE;yg_FDL{?-~$#@-sg^t{P;CE zX94bcQqymnmrh&2zWwvhwCCH(usjG)lNKZ=az7U6@8B{qIiHHxJh*G2hw+cUXeNt` zK23Q=`rb^EC=8!hM}dglY7j2RAmxwzX)Nk#c!o@1)f1Du3p+#tfHmC327-0PfPhmXs}@1}i~w zcpc7QrtVtN#?8H{^ZUa{>8;p+_3xv+$IoxhTY&tZpCn?MLe?R{7&we#mAWe(s9mIB zHd*h+%JgWG%NHl89CJ0e!FXkLZs`&+Qe58RH>l2Fa&tC%JSIs-A${F1Rmh%eWMbnF z!ef0uM!7f?;g5g{2q)w+9ha;>To9o^L}b!#ffMQcC|twO%TND!<%zPiWR@vEMtNfN z`Ww@=_JPySWs%@;kl40L?t3${kW&cjYJR$}Xvk`BI1A&R7XIN&lF(=aY9phM&wxPS z-N{fn%`N2PR0;iE)6Kx)U02)vZN-OSFuVI)^X2Z~rMLNpA-ht9gF#-YOY)S(R866y z9%DmOlW0sqCt3SrNVABDJ0vwz=0@gSwsgnAqE{@iWWVzhH$sN!^@$^yQD)}Vd3`Rz z$S5)*8gb7O@L`}T@_cuC$l2@z(;1wANaj{;U&LAT(Tj`&X`+ zj@#izLGlUuoM40Jc~R#bww*Z^<_6+e%h`1Ghwt$R{(gr8 z59@7rJ66^+1;t!UzTKFtLoI@5J_{`bbPxjLoj=A{ns8S1)-9EU$qYYKO9YqByB5g) z3LeZblZo%jO84zsC~xm6Ko{1CUq?MAil_|_Ke5}}aMZcey$d>otekCEU)jtavg0Pk zC$*eYmssyl7Rq(G8G}zyj;yC&p()=wtXS&T?0}I2Jxvs*de)8<15YU>eO~G6%omt^ zWC%b&_`$6dKW2iIu+|$?2IZ8`qP_0g*!pcG`(M@I8^N@Bn*{ z!mvR_3TAFqZLNC$ORQmKh}t&0+0o5z`9S79Xn(TtqqU9A*9_?nNfV*2ORx`mc{H_h zs}2`|JF|KfcH4s|n$Xp#gj_k7haTF988Yt2xqF_GcEeF0%dz=Ns&mzGvM* z_=27Azh_v>$GeH1$Y%Sgw&>*`ojJ#SMl)`-~+KE<+Q-yLOT5+L?n zyjy3FLKv$lmYVMiCmL&XqSb41mfnQiU7yAQ<>Dn`Xu>y|poX~!C)MIb??}Skw)1tf zA_&hw4i$s@<1eYU9H;#`mzZZyvXhd*JvzpPl>;$|-UgF{gs74&aPnbcCXWSQk95!e$ zQrFSv57)RJ#XqbvTQ?NzoSJv@GtK|$*GAv^1JB=rrb&7&aBE=z@BXGOf+3C}ODVI4 zOxqUR$T*MuxHGgp2%g$mSirjHY;MHqJ%)1P)|0Nne33TjHtx9LJy96u+4hTMx(uw8 zf1>gI9z&amlVOKKB|1h~?m8&6z8;5i8q_& zgw*xD&RHQ<@Md%wBHVW$&^;U?Vt2pf^sld#X6Ugs4Lr^7dyZBt=5pBTY!^e{)iUCX z0met@2i@*C%tr>d*ZLLT_k|Hu)KrPChz8i-Oc3x2pB}HR8ao^=3G$Lc*BMVKzV7~E z75 zNuri>Vwewe^U5w44nviUWk-0!5)qL z>~w7Hr?7+}ib=7@VbgS5-pQ07w0||QLDVfhjjxNFcM+3KevD^0(uX(6RT0_Z|DXYJ znAl;jb2q&k16Y{_$fg}^`Cib?#j%!*$gd^YqubJ>PZpL42!sx_Gd|v-KEx}S;{%j5 z&)}K1lGCb{=Ie0Bvzo5k1m}h+7!i%?Zr z_O*M2gnzQpLlRCA?CDievf;hl@wwmjvm~5CzK@XpwHF$f)kM#g!|J)cz30J0e4da*~K*XF1VbvZn%iZqKElDGI>?{fHpp0u)*d2bOHJH~v4uOPwg zt?6D+flBVHz5RWqS{bu2vP(?Q^F0bf0qkAoN1uQuv!y2ku0+528Hs^qq^9T9%1U?8 zmHWbLZ(b9Iy*=yW_5oG48~+u@#U!qx0oz7WP3tcQ;_hO^pjy!?O)NFL%Ov(1zkG9Q z9>N!|lIIj7{CcvwHwa85mZu3mMKI;KH!9PTZ2Mm(3rU zX>h>u)o;QMAw-q=CbJtsQw>uaqC7THO`c?x#^dn3gt-*sln#N*a_Z|T2N@VYoJM)z z&{T_l9wqCAsuw@M^<0ZK!kl=x?%0nS`ov44u)-FOz6D3Nc%Jr?jlqGo5N2j(Rc<79#S!*5B!6-qzkmGo2+>iYKq8{ za%i69w9MhrO7;o(L{&KXweILE{fSWA0LW-^ctjiPAWYfgq}7%89QL*GL**Ln1oLTN zurO3S67jq3i*UEcv)R8BKHFMSpRzSLohHM-9Ka8|H;vZQbf%bW2EXHd;GwiLRPL{G zED(MX@rGoftj@9+L!bxLdG-d$B!9spu<0?$Ct<7{RHc zrJtZ=Yv&94k_W$-VRvFcAcJ{UgWI7{1hHV6S%dv?v|gI_{v4OX@h`Iy-FEs~`klRC z&<@1#+iEyBSVHPM?1T!?{uSWVCTp~8FE|5A?`W#0+Z~jH!+X?e#f4hH2wsn~;=IUDy3?B7^U6on)j`h=iML;#%SUP8SU8vl;* ze0lM>LG|?uPou$h#Ebp;AT(B&uiJam^<*ptEx}gPwI{+_2o}RlSSY02HO*^x%iyVx;r`#zk}(%JUK~h{rxzrKs^$U z9<1CZ;OCJ;pU)R-zT(LmI7WN5uBx|{1zNdv1m|WPgeOz)ybb2yF-iNtVfAuyU3|B? z4IlGCDORf`E4Wvvd81b{3dxSEThEAZF5d)35@(ML$h0i_9-Lu%U^3k~yx8=;rzYgG z{Pcl&uFz^Lc=H|so$%9U>D*c;tUe4M2j(QW(Fb;_9Q=i~J&6h;pME1;{8;^#JrU5afw#@L1XJ)(| z#No1mXH`^uNx%mMhYtHUK=JFKM5C3aHg`GZaje~(bk;U2ZkxH6;2-Icl9u46?GVmj zUnhTmzv>n^2FpbWfJ9CnGdF-)TN7`3qV1DYm)acaMk?oWafn$Y$!EHKVn1I$JXDg3-y8_6n&1TTqGF)?ZC?q?iE z&7qH~Pu2~TZTlvzrX99^8YQl%7pZ;gT$r?)GTLuK)rQLTqWY~E_vwSy2G{$*y&;Jj zv4c$wwME9CnX24pTNhQ{V&}e6NEs;}8-qAz=2JSQxcYaVs|SnZjkfs_B&N&S6E_%k zudm$Wd%e1aV~3#l!|qgJfZ;bLfU(LeC@MvMxw5$#m>?N>)JP!W@bvt8y5hu=6^$eM zxgE}xj!d%E{zx!r_3W&)H)6WJHg_4RUei|Khr$V;etYng40M*QC(lwscbhH;L$+?Y z9b9Y6j7!)wY!9gO3f4X}1BKzJnr~LpZ{09A)U;BQ$L8(dQBAKlxLoqR5*y02TwzP# zxI}a*{FpVn1;s%!tP_7#rL!rHzN#v$%gA^S1t28eYBDG7`@`F>&p5y#g1gU&o;7&) zl0i*Azxa4sTe@+^M;-r1`NTl6N75*HQ!-x1m%XyslIJ_>EBpGm)Uuuw3=D+2^#>gd zFJd-4wnJdfOXus&fCd{w*W^r0#E9q*jLBnI;eDw*9)zFkZHHXM$7hVmlIyJ{!wDyq zD~;i2=4S`Fkrn8-e*?)7O=(uvYr%7mOS-qXpSfY<4hN<)q<=cu%?B4>iVf?IsxDIWSU$r7h59bKU@0J*0X zsD0Je*3NXuMyT?_dSV*(BrcmDqXth5l+|xq`0zw3$}D0T1qF$t*4v}wV+{z@vRC$f z^&deCbgNfSk3Oa#0tyO>yH|XGdC01ioSX{eDg0qjU0M0<*=jO3Z06(%gz3-3o#bp! zC;V;7&$>4Ao`MShG-M2fkpFLbK%wfEA8U17LjRfk=_t(#S0^y|zb^6eEw}s=S^hS) zPjCJZ>i>0*mIclZ&)++KIv4{U0QvnYwxs9|`d=40(XnE?)pUOCJ9znroc|s>HZBGi zoPU63QV)2kHH5me-r+(SJ9=2EEiM4w634ZVeDs%l zdrm#y<#C7@V>1nAl!dX58by#CL!L;2xVW7O}`#kmh?Wm%Yy<{-b;xP zm8)7A5~xUwR;fV($%~rmvA>G0l~N1z%gd=|mf_JJI!;KCZ191U5z}VnC)d_;S=(4I zudfGFil-QvndP!j{9Py%+K1wp%KXQd;s#>ScH>0eYjI5d!*z)+xzMnz{eNB+mI6}+a4zWL(^xF!PylUlv6% zr*YDVsR}jrEdytr-T{bonST#za*cZb54XJ|TNfrbrVCrOe)e$~wr%9^brtLdYZ4Z^ zZpzTFFAP$&<>iEBq$EV6SrV)Z7xYHZnm}~4oCEa1igKT0Qe6Ux)P5++{mQD)f0$Un zk+%dP`e#=Goqp*}c9RBJJLCL5C_F{7BI{jjJ3dF7IE3gq+g!?81^Ymi3| z#;=#6#ic0s_2LSXqN+m#cpD>1?vC!Kc}Y)({ehp+abbw+VTFBQUwWd(YbexrHR@wu}1DS+D&)U=aN`q_OW$`L3cm_-FmXiz7Yo}&YZG!G0@kE)G__aIF zDNTm0G;UpUBuHRourI$p({<7cfiYVVm6Dc@u63@roevppPY4&*Ea{9$^@4^CY*P4q zaEHD<()*i=X0RXT_qJ282tC7N(d+AZl#idcoogZCXuBgcGFm}ub0cHaEEO>}o|A!B7$e+5O^2B zWySq|zD_^kcKGtjYrk(I<9J*lHu5`%pwD$M`)EkEq~f3zP4$o4Q8_(4sBKZKhZ3Mn znQqmduV_-`crPgwChF+86t5~Hv={SNHKh5T-b@6!O55=YT;&Cg!LU7>7R_Sw*yk-F z8k58UPMNMvnqrJ!9GsfjJ0A9NHrbVQnb3J24e*W0AaBJi~zvxf~G92|RkFGf1RZO}#f(Vm_M zq5nCV@og`LM+?=nC`aJRwv}nJ2xmJm%4c5daYo9Z?D!ctJ6SGa+n=_!wBPDJDM+~Bbo^j+*X+jG-t zZ}iXghs&XlTmW(Nmo)QpI@vzWQ|{;L!Yz+WN^tOq zL*$K8b`}&@^F(&&*4uL& zeUtOgglWw5#+mLvC;BXtBxWY>dheMyB(Yv^;d;L_xqCv57?po{81OwFD}tDp#VP`H zA95dhhGe|7%>hw4Wp*NDj=e3io>hTHj@jJP0)G_?Ki<(8XtVI6=-Bz_5%(5gIp!l}qHv63J@fbn-Rtw1&KPbZKqU)wqSotb7 z?#k$pD>xn8dy*9MHhUv1wSdnkrX-WmvH_RuoI543v#P3c%LLsM4np65!j}mF= zLEp;_(GcGM8k$rFHy2p<*7*ftwe3&8ivYQ+ctQ?^0QZXZgPb9b+8%ovmb0xVi_co_ zhm^I;%!GB~b(Z=DceH<%+bXwA*WmL#I-(wOpT0Ys6F**EE!Mh8;$A>WE~BH@AxLXt z)SB|c6)PMaHNJEi$3fwzyS+&8MA&7K7@Qj_pK=y2qn;vz%WuW-E9-f5-23jK z8Lti(iZuO5h$?ZsN_wOM z`zxz)9Z!c#GJUCh&;j!&md|Stc?v!NL*Y$LszsGHoV57kcTw*45olsTN=dCXi@dS% zP9Vg){5Abq$PR0!y_) zs`(?|eF&-if*dLx*h?uZv>KF*2)tvr^=mc08SZ6EYBg-dPY{mC`fAg_e$}ntkN&LB z=H33jGWy#Pdk5q5L&}85{?JKigr7!FA4Io(BRgd(WPfD1H}8gY(7RwtN-W?ENGq4C zcYI)B8R4~L;CrhO@50Ac9e$Ka(#PjlR*ft zj!9~BzV^I1({?G0;3=!Dx_-D#Uk08xF%5y@?<%FF#kAZTUeW=tCk5cZ?Lj{gjkI#t z>)n-?N8_wa$+bDD?|1Eh-)Tz6v9`7AZL1f8GEcEL632JRS)q9pE2R`vKXX+PXYbzr zwR#2lANYJxvLATpgY4X{^IbC&iHzq19`(9w4r=XBi_5Oe?6FcB2v{JBI! z+0_ec;g<@X;TfxPY&>>@+hrK z$9;?OJ};ujTCELlZkT#lUuSUTl?g{OUOMYXq&1R!em3lraed77(n15x(5^YfMq3a? z;_c2xqR%%CdUmjh`zQkK?Csmc|7a`qnGK9oi;Yq$Q_i8Lt zS{#4TO5~nt?!)R_pz%@?ma_7G71mk3Znvo9Rw71au(GDA?&#>P(BN`-5_PK5!hi-s zZ~$^I^4f4-?sBO>1E9l0t=Z8+vzO$s{vyieCq(V$Lq5pMJ!h)UTW`a=MY$;!@8Q7< zYp&jk%HJmnovdqQYRbZ1dBQ!F8%Xg1cwb6fXT3-bA(~U*j7%+%2FQh#Y2+i>yB*xU znkrj-?f-QXH3FFYgN*o%(l+e6>ee(Fe_L{-)$ga5?vPd;{0|d~Rx& zFf+3=S*rbb%K5JH&W9K5Q1tY*)mCU*Oz(}cFD)3);p#ivYx>)%>iX)K+G26}`)|xi zE1Sdb2$0-d9Rb%TLWAJ2Vf^5SB;bQtquj1x@pPuCw4xTH8TGIEwtW;wVG)r_)8R>I zM$5B7U-9-)%1`uu`{z58ec_*y-7yGhE_EkrgMUcUZZyO(Xms2jwxLQ& zO6oPON4oCoWP9_HHL@yqYrv(8H;IRD>Tp@*Ts(sY>%MFNOS)ne+rRo-IP!8}x=%yS z>%ot~7}SDU*Zb8F7P{*x@l92T0_#9hBPDrCfpoN)PQ5L23x_lL!h)XJ1GbZs>d4Ui z7FR55ax)v!QQ&pncsTZ!8AJ>#-s;4vz=Y-i5IeX(~>eIV8-e zs6pT8HyJ=X4<@_AUnjlrW204>oP_*}4y^=DXeWLR@om?xnJ;_t-EJ>PUV85OK$HK_ zp;4^7k>AkHlY^e+_kC*c74(TWy4$I)+AOK|M_saBp@I#E97<%ltyNXE&xiJ=+B>TR zP2`n=_~)~2wKcW0VEUhTnRd7>p#i;*AkxI@d8}Yi^zDq(bz4}robtu}*x-0o)oBlB;%^+e%qk z@sG!@{Ua@ER6^%cU6pT&=h5P(_SzFHxPaM^6Ku#rOBTPV$*Zql6Rc}W(%@AMPejjG z(YD$tVcIWFBsPpMEFNQo``VQBMh;KSFZ4TgbagTmQ?qzDs*;GO&RAI?iq?=9cAESx z%@?=^TJG>u8kC|5W304Y6=$aS2NKkSAIcu_(a~zlKE$~^i#=>Yad;nC_P6O%u z($8&f)iDW~9`j+(a{DQsn{rvIiRH>{tgNiCKyaMg#M}Wn)_yvQ6Sz2BCgN{oCoEIm z9Eiy!-h~iD(<-BP@#hra)}b+O(^5r2%%3F&t;la}X45Fht>lI_y%71ew731XDS7C?gi687MWw0CoFRnT9BS=tVibt8td5(X^gU0W=g#AD+x@H{jdS%S9gCas1PW zY&n~aY8{077wS3N^QaXe__43Ah;~?C4A(4o40|kV9-Y|E5t?2vysIHQwayGxVC9eY zN(e~e!@p9Fm{vd4se`gp*;|$hn1s%Y6Lktpz1e7a4PW}}e(Ns4V}vG&EBYaM1`7Y` z80r<7N)vq3)>@*^WQm=8G8%`$nc7Ao66LTp-b2L9h@%>BN8Dw6beww3dvse#g?T z*WGnsM!~X1Vf8$!JN=QPKzZR=yy)stcN8Lz_bz6{;>i5mL8BRujtPRY2{Y8B#j1e4 zs^FDa!@s++>PwV2H+eEDsu{qkMv?G=Docg*_KAJK?C zf$n)t7D73BQu7oy2a{##+}uo-h4S>vUC?zFuZ0y?g>@KG2~jaca@rP(_5{;NNrNPt zUfUk)sSMo2{eAg>2kD^wz9-B%C1L}Tk?UHn~~BGz|H8w?IY~uEP35sRIz5f zz!#L&Kg>Sb&YI#95YSuQqm#~{4<~Vb;{w5pedKgab9McAX<&dQvZc+D-#ImfkS#k7149ZkhW~T`8{7DCsifoFo z`&$cm2u$}?nsZ9%y&3nSN@}lP2Y*PPA6cLtrwX2{T)mUQ9?&sj60B^qlUJOLt*+NK zg2oFQaO=cNRm!9k#Y$Qn{9_5Bv*>SiWy|h_}e(IBb>oL!qV6 zz+4cnC?=xrUW>aT3s!BCxP7AoFSiS7cNmnlW%NYb+YkItFW26jrr*w-yHe{Z^&ytD zgqW3IFZV3Y5KnI5ur+}dgR(DLK#p6LXH8H%H+I(|{I}pfnOxEyoV=`JZ+Uj-OmyXq z@s(SDZFBHQcr?2+?0)NP5mWor&HnTk-L^3+Sjye!SUSwm?S%$zQ$?vojL%&Y~m_4-9ucm-wB5naf!Q$+EYYti+YvvV>t$! z`Hg?tnXiA%K*$|;Qi@ot&&2z1(10dvHXl=;wY-v2oe>k1jT$<$>!*{ot*fld&7ZZc zr_8860W(qvjaOwFg41TI-GrBjIbVu_38*0;@*MiadZLRZi&^j5Ls^?@xOgZ^J639C z-hk^8^?71QMu$v-Kw-CUc>bs_`SANn_ZXHv_f}fdYbxbaHMprw-)fk2-;3Nm?%5HA z=`kN@Rw*&RD>Bw2H!AS%7;moT4a>{#BTsO= z*Bt=+J7<9FFrvpox!sw{$CzCYuXyG79kmiIQlTX?wvU4l_EgGc#!X&c-p*=(Lo7?K z_d7htcawuSM)~V81uoV$X4L+9>GJ6z(u2IgIz3sl8xbUiJw@$P#wW1^3H+B{vlBID zq(FNROy2kWVHw`wJKaXl(vlU1=Z%yY!q?*jSI#@}Rhy*+@&=hH=p$+E2!$#3F;C$ZS@^Mu7}s(MUnaZqw5DldOQ#mdc>yAOwv|V3O-4R_B3} z8)=vMo~QHuhxDj~92#b}c!v`-n1$p%1z8*X2VD`IfQv?_$^^w0s$e zQM_V1`()ACK6+tHwJDSCvWgo&WMa4s_fz@(R2L*ZQdl#t0tqE61-ux{dm)hesB%?%dzDAnL-BXBU*pCS7e@1Qky>8!4Sm1c%mNOHQkob!W zKln`>0>!6hYHMl+F{E&IL-Tyaoqi~)Y&s{2SyKi6_=t0l3c6qC3{FxFjL1f>3f;^& z)iH<*FPOA7p}HA*%L+VU5Eie{J(K+>l6cktNTJ{pdNFeGR(q8=%gzWd~~H^jBIy&XkKhJzP}!2hoZt=^aK2FY&(a3x$~tsH+W{jxvDYWi$}54w zXAT3TYV$ug|=XVdB(qyk$wtGL32=e}CSaWQAOBya@2&cCDyt3&V$DueabON2;@FCbfN5=mQsOK)xBt9}DXwfN8!Tg~#0>3Me+nE^s@NE)+i9q%qM zrBsM^=7`{*V2YyiCrgImvqv2f!`$=hPNcZHN6@1K1M z3=qqv*WyMSJB0?#3`l-wSp5l(X8ElrBELdu*C_PA#Okv|z7yz}{da1BA}&QHCOgBA|4LIBI~}E5HIfS?uk3io_II|Y187wa zB?FCu#1{_4Kmxko>4JYL>e;5HrPV=6^S1N-f8A7YnlNtUD(C;C#~4uNOA!;(#0$^7 zN~UyQ+{)t+Xl1FJfA&`>%pe+2V)W4rTIU1I%#2({Z>(3{W;F;Lb)pzn>j0M4dY%4)@9Po2#WbhTsg@!$&X&mlr zg;8O0Y}>L6844YtV>+PJ7L~g|CwV0~OO5G9Cl)Sdq>RwPj$Sw5-Br{{hDsGeM8N(P zF5G|6E=s0H&zO{&oEn}^Z$<+lJRI}c%GU}>DFp>+uC}qhOQ&j{MU?0cej+11J;944 zQ-DP8GhB@$dq!(^C2v{=WrX1E0gTVapoT9wFGW^6_@f5ptx$<}X*IogS|2H;O5zh@ z{Ujr!mFi+ae6+O2%+Z8~? ze?8LbE>GFjWnyG!4vR;1O=pRL2+h_|Jrzu~BCK?4Z-Nankb8Krcisz7 z*yq|w;P^z%k>Oiz=GXLiS;?SmzBqMLQ>KN`D(z?gxh_=zM>h*gp9urET|npLq)4i# zXJzAdzuWx>{Fb4HLRErP^bpPdE$N%Xtj_;j2sC4Wf6QT@F2&9{lxufL=%KlEJTD=PDyBD7)#Kho~r7XLoA_GzkOM+`n=~4ntuf z6rgAPYA4P?ym^om|7Qsk6Eo99ZB=}1%5!eKwT}^DVF9|zr+jpg;h=6qU}^X98f{c; z?90-(@YJ#%PgSr=b=Cwf%>O}!EQq3(JCmMXSihR>60(1Bu|MDW8G}wwO9KYMe^KJZ zP}G>+x`YW@65zXc#u1+eg$rGK{WK`Ld=$E10mxK7CU{0 zrqf(mPU&%4E0O6pT@^WM?u<_1`1VK6Pc{!5-D~c@L{=q_ zrLQjMeBi`;GQ)I@YD!c@HJtBvEnrgiY<^~H(7Ox^e2e~6LBwqj+xxS^ubJ<3+my@U z*E&6PBk{`F_&wV!9#I$2BD=eM&y@yil`O;ckLzO{RWGfT2(1(sd(VGL78v%avkZ-7 z&j7GlOdsF{j^a&be5e7b&t-V#vs1i`79thCj#CU8R<;0Rsy@KCtJdgXS8@B^U0ngN z9p8{pPB7diyxHcEOL&88HWaG?*_mPBHs8h5F+Pq4D|J=#gnGFb$o{~tLLV2_58aoH zFurUPYoe&ZpVJ8MP1+V-^Su605S>wSs!z_q&59z~L%uxWqve77IkgF7K19uw=JA4h zqY*#e{g8pBANzBViEmwoFF$i6sGyp(J26+aVxWj?r!c=*7_*2mkHKeaaU-MYU{}($_ z0vWMfir7pZW`c7q8lM__c~zDJA)Fyk5PtkCdv9v&QkO%(NZ<_ITc z>Lrou&5U+1yMNnKD~#rfhE|~2R#4_m+V8)Hf7|PVZKsRtp)c1MQJ{|+(is7wxGJ%7 z$sXnf>GY;wtM_j@bv6(X7LN?`14-M%TOZIT=u`P}^^a7}!)CGZaY3wg2Fm#-U@*|` z-E^7$vUZofgErkYm&2--HwQ42k2YvQ*XXK;Eg_H0Q%&u|H;GZj{tVr38YOlnmnULK zO8IG;E08*q{YE4ghIag+wSGJoOZd(7;?NZ_qRa+I%|7~ZL$dQ8{&a;{v%8Iae`S7q zUSA%JY}?};@#P;k`#h&gsjvSL8H1A3qQ**@4OBEPWr2|fMPX)kT+zUDe_tJ@O9!{u zUE%pId+&i)#F1*W9LI)Sq}=zo%hSEG$GeBZ8ABUn74oHG1TDUlb=-QN!rSSFzC{F1 z+nrWUfA>vuyDeYnKJlMEc1f2=5YC{Na4q<3hsfET)ycf9GlNS{|0ymYab=89-NCzv zECM)(#xW#r@-rQhQ9Nxc2lxDW%(2e&1^&6Qhd`=J)A)K5&G9t<9b1bH{9X&O--XkK z(UdFDUyPt$)IHaLp5UjAYGXoEtpjhN^j+__p$5zwsnlPE1p;pbQuge(JQMgNX?Yk( z#dPCT^TUQf(9}YocBJklf|B*@W6%$1ZdedHnfSS-`tnw+e^W-}^U6m~C01F~Ux+h8 zr+9khGe{emhW!NjxXk?z6-s(Mp4d^O!%B;Sq|cIld-sH0O)iCRE9Swtle?iw#m2X_ zJnrV`8l|nzlPz78G#*7I2i5O{%otxKP5S+B%)M1qTuawBnuG*Gu;4C%0Kp-+LxKc% zw*WzcyLXd7a1ZXm-Q9x+w}!?Y8gIOTM*iOWd*8ix_IEDM#ec>)>!#OOJ=UrkRW+;T zeCC|bOe~co`LaT9-*8#bz~6aFp*D95|2F+P#_m&BP?VPv3kbD z4p?wa({8~|?UH2K2_HdQ6g_5Y*KWma!J_C&mY|<~rkDL)XvITcyXIxh!(xzcoLP$! zeU{gIv-|jwE0a5oZ!4|e{J~`^1wfhAQ}f}p4w3~dioPS^#Ax+Aib0D}b6RqmdYvp& z+a*^|-+p&(Z19Jfg9yP6%qc>fo>3%ty*VrA0{NcWsqGFT&2D7QT3-(^Hu_MW73u|=@ov&YPx-h*pwhjjmu|iXjV_c-kt=X*Rq@mzfs|Ajn@VmimgX_ncj z1RZM}dK6QrRu217K}V(W;mRzT3TC^j+^>|plp3^?(f+eaukK83PcqB#Y=NWOYu5Hf zFGBiAn_dOTjOA`@6|r5zd_|5KG2oVw_*KwDS9h_n@`xn=DC}$DgCTt!fnWo3;Ch0u zv8%Rq?d1R-6sImm)C()KLN^M-o8srd#$)QRBJL1>_l>g&%8i1${i;i-f`@iF`Cg+@ zH`^UhVseOO`l?s*b`m1p<7O2ynb0|VIoFcZd~RQAP=)F~SSzvdy)PBh7l%7UO|_P& z;M2~5NQ6r7kYqX<^Q4Nx#V6K2pGzxttds{BP7xqLr0)Tq(V^-bU_?!`xFdW`~- zt6fLhSHUE0Cy%w8R;ff5y--Uo7k>g!EVvl(qsmsudU{ZPRyk``?tIOwF4IhIK=RdZ z44bnaeKlJ1V$W*KPLiGKzi zyCm#G>T2AxH;oX%kz7nrx}d?{bmeBtEYNPXT{GH|okW^V%e{;T5k8Xj{sCHlK^iY2 zC$m_M{|9PcfEvU>A5+WG2wYwNxZIMz2Wwgx8$cH+KE^m$I<#=S?=O|a?unkSaR1a_ z?lx=%Yj>r*DWXUAJ%{c3qgweD`DQaot}@DST#M;c&;#>mTv@=)U>nf*&S}y9roCM1 zZ1eH4$hqJQ@~$T57O>LkP<|5Zr$~SL5-6-r(k*!t2Wa0Q3+LRUmO$Akhs!0M7TM`Q z*Mlk#tKW9W(xcm#37zX={j7Zzp^V4T2mn7@61kR0EC(-ES&wNfi431Ug7fzOgyA}- zDY18g@l~*DM1CB>>9dxI%+d#NIewkJOb=Bdaqz`gfAU52Lx$B93N;?7Chzg;1F>%Txf{L-qCmrZ#VkcgkK@|{^j03NPqb7olD~$f(gI8L^tkB5If%I+^{+Yvv!m3uc~c29jsGNXUT6G;QR(f|=;M z9ma=HMLztjnznFkl@+#0JqWtkVEpL@MlD5i3xWo3CuyR4G(Rs8{w-}_3zS< zgrn4r$t`Vc2c#X;6YHD(p;k&@uLPyC1$2vpx0j8Z?jR zlxrpVGCR+$mdFn(4%};2q4gB8oEpb&P)hH*Wt*VM1ra zS1y+%^i>s?-#JPSOm@yTI&jxhVv40H8R(?)gtNjUNH;o6~aZuK*`Ta8V1kS$~ZA=qgdCQkqLyD^(#Q2)o_z*-PpE*{@?0L@mNEL>< zpm6`^&%IwiU|OxQKp=#AQ3N~6w8)Ss+s-`%^}_Q07gqIc50rw#A>37XC0P5x@Uob^&Rpldlx_Rr)bKFx%H3cSAWU~5K*2MXl2>?0}87qb#9lev79 zV8;(V@nRcyt~2GT6pGZEI23-S*a^W+K&ghqd!pI-zSYn|P(f~s+W}zM!0Dx)QeU=y zP@rYfP5Bqx;yC=exw6%*vQ4K_sf7NGLD#GNN(2c;icUpZ3r$L*yAt^z)09`Xv!iuM zE7ru!8wS#$-d(|%q7l6cVO)ep^IomMT_5j)D&Bf}&aj^Q{&gIK0ZwAYRf$^Q=lE7Z zzzvyfJY(MIz+*in^$I;)j7??i-b2uJlS)1IvPV{}fU%#J0T-HRNOz2u<90KzRYBXM zlg+0#{RNy28zz1j<#7dpMori2um4!G())Lbt#ta++lKZ?cr*N8h81k7jW&M^zLW7>+Dg*0nI7T zZG1J`D=wqFV&Equ(f3zN2Yt$6T`k5mTpo^Z^3OpZyQ@B$89I7^!=%)k3yqJ{tsR_x$^7C$ z4l=*!q8E(2i?{nKVt?_D(-l>=P7J&{!iVRH9dvK|&HM)0MEI5+Ua{*@C*-g-hPrcl zee}>uSJe_rULLfg`-*4##{-~|fQPd(|5C=Mu!Uw3huK(5qP~g6GoCec5a0EE>Sg?@ z)~HMD)@PeF1H%qm$E!AdiV;ak4+sg7U>3Jjox{7XUM3$wJL79ycZ|)#S1Xh{Khi$d&aMkCX0dB14iH zOqn6g4TrR(-OvPE#8E$IwO2)CxRNtxypUA5g4VlK&+sY{)0KP3z0 zvd`U5oqes6fk+7Sv?*qGuoeV%th~UL(&*`3f#oI8{=Ji_*rj1bc7^C+KlesJFwg#s zK8N%K*W-WEDuULrR*Vjac7m01x)-`9vW&Ss1fF$0d}|iN4Q}(L6sxu1=Gqs+qw(Tf z|JL#RQlN8yLB)mFMhyK@aX0Xq{$eTUiSaAgv{)rQNo`x?v|g_W-T+~hZ3L4pcxZ93 zh<U!(LlFs@7CdVUMBX!k{ z+zCQW;{^<95Aa^FRv)@VkOE3W4Qw3^@5t?_Z}Qc8rQS?wCE+i z_?+}1=L`#yUfK1{znXxYaf0Rb*OT>Ft|L=3~jwKp|oKtsxvMN%knrC@e%fXwe7=;b*AKzBZp>M zmrzp-GJTY?Y?yPPHL!y3SUA%YZcDzm9s!)0Z4@I^cP)gIh}htTQ_?YA^Lpd5ilF~Y zj`rG_V>ZwUIO_I^f$kk2ew82bv2doC-uK$L8c6zUkz^t4v>lx_Jm8X<-Iw(LBI3cpZ%WSGa~y=&pR7f3@wo`g-{Vi2+)u4u zDVcJ7bntae@@q2|%Ogagw$x+`PZgl(mWE0tiLl!4qgH&|^5_^Nl1~;O%Csr+|7t5) zGZtA0)qA`z4eKxU|J?bJT)LJ*;0dZI`a65aaFI6lJ4GXOfH)!N@qqva8#!qpt3Bh; z&6w0UY4?PH99nk0lje;aqm8D zxoDUu4LNwKIp8s+S`3kK_WOw*{tQs!8eZKsH}g> z=Em&TktIu~w5N}+nV^#zOE99MWax{X7bcKoU@Q9i99w8{q{6`a^635f-R|>u*%%GB z`yWjMC~v0y?Oo4Eb`?}vaS%AS_|&go+Ku=cvP0+(x6UuafH%*!dvG(%^`mF@jN5x!`Rx9$A1r%&_0RZNJz#+#3c{BU;Y)X|J_n!ecQp)c^HTAs4xx z6}kDn!VHzJDH?rufqj}3Qbat9&6KW)Vh*#v?WIA5RdzfV{}z>kW6Q~Pk0pBgAquan zW^p5tr42bo0e$*DZ}+MJ-O$YB^-Elq>g{(w{fTZX_iz$$zdbZnD;o^mx{R?)k&MDu%0E%dd})s-Xn* zPiWX}&uFivFT3kSKqs3W5};F@?ao>MgH9u1~s(>HHGXuPxw zKrc78YuS4?b@#r*HRbM-A?x>0K0SMG|GKz?8;>n{ zWq{-FQz~YTg8l=ui2_Ce^j(yfVPyjc#n*5p`MzdOalTU-L4SObv#yP&A(^hmLB4%s zz7$`Ues~fY4z(tH#_;?uZX*2Pt-?of{Kz$KLz5{v&&u^HY!)#jr)`$Z^S(&;up9)1 zchO=aL*bEz1agohWQ{*2mCDhpp?l+HY;-UqZCVT~g>`)^CXNMyBP%S4%ai2Z@UBGw zvKvQ4NMpSv0IAiqeH>3j82)7_>w^nZfNY+AW^+n?NR&zRr^6(;?#zEdbj0tRM;c;` z$uqy9iK|p^>6-o#@Sn&@c6iDLREb7p$>lq6kvSV~@W&$DfAaZTGSPf&!gkSDj>5aY zxpODZb{zeCl)|2nzaFJQ#}Nf&RNqAWqZ!0)Tqe=$-+j4^V*mR|_0y2L0fs&8&QE){ zv7Bxzf9BQy_d`uTrk^Av5bWUzkA46CT_K_F8JquuL;{tg{<}~oQ-a}-g@3pX`?Pf! zw2HoSKjZTLTU>&Jhp9~&=++si+5gDcPLg|!U}8%!vkh;B8%}IFYz}<2v=ps1nVQ0L(oy$_l-*ZfHuH4Z6UP{<10@QBQCU2+{ zs7)C2`2_iY4$7*JPO)#FreQ0{hY>zPI7=U+G3m_oHR4yB{J28Jy|%@!;Lx|dvU9-u z9vi#1`tjKiz4i!Pe1`_lnXOcDt0Qg`ucwc$bAFzLRycjSDWA5$GA24YI9I}8YVlc} zr`_KWJT<7I>^1foewC4Mn1_N>!kbEM1_1#Il_;F(?{VmX|DsyRP#_rm z_}TUuq|430sd|j$HNoR`lr@eIva*4uuk@M%W(%pFhGL{!Oi%}aIQ}^~)Y%qMnk4~r z9KVFirePs{Pmc6!x{TEq#mp z2jA1DJDt8@*Cedp#^GEDyDp^WT!y(a%Zz**>96T?!<7;QR$K}PC@G%kKL&h z+NDtRGZ0{RDuj=g1rP_gNRB#_y+OBSqea;mzrFVmC)3LGO`e)=CzX2e!80Cc?)`1h zA84_u+FQ;uOCPU)-&(y?<;G(uO2r%M^)k7m->UNK$!ZZ1FB#*ZQBT+0{s^`hIoU0* z<=^J_$45|Fg@)~I*5n?F4QImn^TR(shH;j#-`1VXk`}Sz7Q6J|nKfxkW44>cC4bcx zwtE4@s_^G)6si~-7Fg04Iq_h&^~CZ!j-zZE#vN3UtaAKJ1@9i5d3GaaJr zFd3>M4VHTHjxD2at2@!*`c~zs#G@3rg#$Ac-b4e;^pMhb!^Ucpi^P4*F5xWlS)pKf z<5yEcD7C=OoBC2UFos~x!GjW6W4hb;_|TwR$8Cr~qBF_Q(Lf7VF3Z{Hn}Y=0_0C3glv9r@&FWo(hzKE)gM&f(tYlG~Y5 z^g~+Q7fVDO4jBd2E17gkZ{)BQ0ETFW&!dqoNuoU%h1(KJHkP~;6akzmHxv0Kv<1Qv zGv1F+%T@C@?M%}&mZW)u1|*42J7C8bp;L{{yISZw{KP2PxDJYg>7eidAQ#HT<0`)8;*qn>wn~WWq@o|k~N~2QMn|H2no6DIxa%1TC?Ix z)3@286TqGolzytpy~EDXB38W2eMPBx4=Rrw+_l;kn6?Z@9$($ItrOlq|6bAckah~5 zBB+1fvz)nYngzU~_qEzu*5{#svS0m7-K0X{xbcT|LaAaeye!ASiwp+}StNu^T;3ss;KR z`>}AK_hiDlT+&SZt$|9@`PJ{Sn7bN|5JHi(w)4$s1rAr52a(jk__J=tSbWAv@){_He>m9q&>y>>=^*Zcg zb@`v6VZ1K;hIZe;^x=JQD27FVYq8@+Z`Q?&_C<7*-VqxP~u3+zVGs19KG3b87bZ>PHDk+&W-45#sOU;Xhv3q>V`}6fr~PT%k|i44+#V+=HWj><|^&xI_e7dfdHb zpRZ+J-h0^#Ps2 z_sShHgq+0qBiyBP`j@qn=bi%%S!I~`&&+*xvr}f9muHyeU6-bV%^7BE@gxSUNKn;C z2P;A3%y!GLGiQ-5Hmzw%sk!XrOcI|v2Ob_Wq0slfN}X_{4CG>1@6h!0^ix1)&rN&a z*%!SwH_JdG=3AQ=nkD@iw`!G62MLy|S>?IMmzPf&F?$Q%hrP?$T!6GpNycM;O|^Kt zm5A!5C`+NS8x{i~$8PmOttYnk`v=m4s6o<1<=1JCMe)Tw5I}{(alcmr+?zbu(uY}-(wg=T=i!en>}^CvjVon2%+!_B(e`8^)Gu^yj5Ebgk~CB-&omiN$_G(X)0{ zRf>HyyGIf?8nb9eziG0NE%~Cz^!l|95{8X&D&=GSh-&*1pLut;`ytbRxG}J?@A?%l zZeOGX6S*>a*Ox~Yw(QZkGWu@mDXeoLKk0dAht$@zr09`mdnN}&R<(WTraJWXwE6vP z)UIN^nC3X!bh+z4dFt2m&;46M;+b60V_TK#2ej(IN(PfAZKcwOT%oVq`I)xY%l``P zp1|!%`S;t;|5NMcua7?a-%o-OalipL4L?jp{thTXjN!x?-TP>Ssm6qqqr3F!YroI$ zM>-@#vt)$mb$w;!m%KXsoSeT}`15A$m4b=WHWkOJ{wyX(6$wXPs?Nu%s(*2!0TGEp z2=hY+{@Tr{I;gG=9}!=iJM)J1&Dvx*WMB{U+b7Qta68wYD&V~9HjPP2d-A7oWLdbA z%J-LbH0c0lPTOR9F1>XTKd=!8;wM#>QEZc>_XYAEUJ?ADL7Ao-MF*{R4}@;yF&( z4~OkX97w-g0}^BPphs1wyxbp3v0fHXev6C4yVg3T9q_V2suPlPQw3K=4k1|aExV(61=?lbSlfL!je$wvgqtBmtP0+cvx%mk} z{fICyrOJQ9W+WuWf}Sc+tCpbdBlXN^CZNCkO$4!pgCv->kwXx00q8XW(!VO~NQ|)& zzn(z}j{W}qqpdA1VbXgWTndU1(#H*(MjXGJc@j!&VbYEyWrZ@#PkK;MQQsJr7B>H? zJtMrUGJ_j7HsgIQDdD81rWnkMwbxUx&{Z)A``1X&5pYzYzWtDvl=M78${&ZqZjX8c zk;@j2mUuf+B5k3qqq8Hp`<>gD$2)=HN=(*GI^Xn}APX(;Mx{^Uqtz;tpG`LRJ zpmH|u$Lh;J+{g(D%?kD_7zmXM{Yyv-<{&9KfBI@T{45Q*DzA;3{j=`E{_zCMJ{Ag{R zYP@iK{Gka!+y2i>*x-|biGkXbN%WcgDf8MZ|DQL&@Mj3D$Y$vzij43~@}*AczW@=X zM0xS`gPfjhw)IO}y^mXa3Lj)AxjF9c$9a|WR6XZ5&qJq4*Wjww#C*Rg9MstbVUp_d zX*>vG!Vm;<5)~z#teUY$JvC}{-k)FAvZe{bmox~Y5~4;R6Ic@i4J^f4WrgK`ly?Q16zxJH^ z%K1O(KmQsLmB-Wwc%)2Iap!+(j{Wt=#90XUztEol2QVrcM8%Ps@_P@w?seYs{VqW2 z4*w>k%zpCiU!BW_45zoiDow$U5qjDAzu{A_QT=8g48-~J$DePXhRlg_{MFSzZYFA! zo(5e^Mxm9;{Hy8zYs8%Y?+8BA&?YQ2O~%Mw{W3_H6D@SmN6Y2{s9Zx|;3Tve4<|k> zrWF0gTPvmWmDcSKAzyVzmvQtz}gC>h1K}aLN? z=_e^ysc4g0Iyy!(0ghVLcc8F{dy|+WJ&8exjaR_R`N{_BB7d`C(r(mo-PO}Z4^2G3 zcHCy{dRu0B)C7_9B&I#ep=mr#Q@SV7fpNNX8HPi@DQJ6&wAz zLJbu}a3Sn#r*}=7AQ@Aq^W@}2i5qz`-aBV{0EvQV6j$SEKi}{oX{n+pYO{sP4P>Y3 zCw*+@!(3fTEEG*g#98STm8wC4eZ~Q-bmu3Hc7wc7W}@+a-fhce#xC>~T}5&!Y&^c; zir8kyTg}k-VMOqumow%+`&NdeC&BATkt!mn9jbc4BL0#|Ij2s*(D!rRQ*RFy z^6RCkU(FXtPXED@GjUnBJL|PXAhKNF*yQ-a2QJTh);jF$JjBN=64S3DrozgZU^2E# z!^axf7RFKB!nSO18Ge6kg^3HxXf+}zo8Ag|OQs9wzi~S(Sv2K;5a%!&97+-t?cSASop1(bl-Yp$#qQBA~cz=C2mkpCZ z47r(g&==Q@$^(~~0&u)*4#(jz4PVhz-{vMKr&5R$=UHRl)D@Th&^jkTAOWf+s-_6- zACv)%?=Prb-zT4D8kF!~w?|)d!dBvwKzAC$Ltr3~6EOB-A^bBZ59Iw>CyBle4<0af zhI&4SgTw>Lf)L$@+U#MN!*k?QTTlXE5&w=rSW#qqrRLQcEPrFcytCrW(q_b!jK_Y; z%TC9LS+GL!zbaw!uBf%0E-taZB~8bZ0kdRl&%S_HT&&{h?3tY#uaPiHH2hP;Xl%+r zp6{xWCkAg)`pbw{cY`-F75gbTpA;aE;iEopIZqPJHFsxq>^oa2{ArfNH$`Cjpc`34 z1Mh_80g0~XoJ#j_!&Qu+gG8kR+gB+&@k!|g_KN;cBi4r=Ap70Ey4p$9vp8#cEp2gbzu z_RVB^Q@hMNFrR=~cwCOCjk2A6);3kH8OjfIkL?d!#C zwU3(L2_+gdeF7dOYY>?Knsyv%Rl;Bl-DXqoZ@!a$`%H~>eN~tK+*(T^eU#rnGnp|K zRyFJ&PHOHhI|X>pL8>ImGno+F6&9{V{vld)Gj2)cmHno-4xr{3>b3`TP#-Ap~@ z(r&{+;cRP)UOI!GoGxDR|GHIZFnWK@vUPsLt#vcD7{gh40Kc3SHX|-C45L-siZ*Dj z&at5+F`-(E(z~31R~;qOspHBRO=qrvc#JQ}b21XbJn|0%` zU%>8&GrN%oryXu0eCbkK?ZV>$pV+%pA;g|^gSHW7xm`V{2N{t6?7rtVUhCo}BYCtQ zU@+mG2vKOKL43#AWx-t`b}QP{@(yDnhPT?aplM?1W9sEd%BCHXNEQ-*pn0n+W&H^t z{Kk}p0R1pboU#?QL$e}(CVIHBVqli0B&p|@?kihCSSPy~VC6E~bEe;tXR?J*#7mS! zt)PtC&|fm6gsnMJdGvytmNL#cp8KifNaEM2D$G<4*B^y*MY->5C^=KZyD9Fl#wJ?W zi)8eMZ?zsw6{s{Z4nk=Ydm4+J`2#!^%#G(#vW@}Hg`MU*er^g<9a*BQXWt#H>ng%PxK{iImSo3hJ5kBQG}k8Z-QFiv;Y0nkDx zfWV8L4020UoR1djlMqB#bQolXWI0&#wUotip7U7YDV!_0b_*3_mNsq4-IQlSEyj~O zINFGWCpq53MSMrXDjNx{WVY^QZ~S(egtgGDC8m8Am7|u=3)Azyo;tt*>PMQ$KyrAN zLgL-5Gd18zPu(5H%%R4q(x&tF+i0^EbZ-g%H{koqhUVxph36MfTmAAN6Cz67p>EYv=XbXGO+rc23eyV4S#>m1(O4} z6aA5E$E};w#=*0unqO?);(iBw+=t)lOD@fPbk-+DN}bQ%pH-W@BYOapqQ%I)zMgC3 zuoh3c8IB7F7&2_u%Ox0Zi_v1mdCLMtO7`KQaIvP$`SufxQM2bBPfhl}X-$m%x>wB< z+|3>3Jtr=DIo1zy9?F3@M(Q+mF42;p-Yl6V+BXe5i#r4G`z~eRX+}RPvY4R#wA!#k zvE&Y6!C>pt=a=$o1%lTm%2sG3{B1zaw-GOTh_`jAgJ6i@V)z*Sx@-xXTZ#IQRA3rqf&=*>w5%)d~YavlO?mc8~A3b#f~QIR-_B1Qw8n2_Csbt@UM` zsnay-xHIKJPusovL2jPnh&5-;T+s^ja^`V2jRu*H(TI3JEx;F+xY4yWJypvzwtFg* zE0>^E+TpgfBQjqkcoFhT<~n4b>5kj}XK!uoz`oD-)7A+Vm0;_Z2vuZyGtcL5ea|6m zLp&RGz8f&!I)mv8g>)n2{Br0pOiQ)a>3;p1fR0|lXkTY(=~~owYz9z^n`k#_*iK%i zFm7Lf1J(yOC71J`EUIye#ToShAooo;UY|1D*4JxW6=okqZT;C?!R=Y_zRkPnfZggu zu(4Yv3qJ#)q?_5R3Y5DD`XeJ+Bd@)v_}qhvi=cTH>_HFAD5mlSo*Yim%!1ERdz?J} z2S*`K4<~fUYjNH4x8Pg7Yz2ZDeC_v~()4%SG57Zg8&aa23ciMBbDA>Xt-4Ihj=0Qy z0bZa|V&=L|+P#-b2AW=e?v`4D3o+4{7fXRRCd28bC-a+yJhqN-36eldEyD?eD0j9a zP{DcW9S;HAL& z9e%iQWp)UIfOf|_>L~MobdZCa=|jClsi_r0yzI0KSh#Gy8VgD+%`yV z1OiqFA$_{elk?B`g|%ein{RDcnks_fsd+guKh%Lf!L!dUA?V(1d>8>ww*NR~mf3Xs zEgV+<_D)XMv!LU$2H3BbVNf=;m3l=Hy(@T`C>}J1T zzJQ!O$fPi15w|GKd(o0V;LAxg+Rr=|NS4;{J$cTTAWy{Kr3co9yyqUnygNX5r!$!{ z;%Zubfd3ixH8M%@L7wX#@M@|pWB0f1qo~et=m`D2m#1E=NB@)Sd?3ON1ay7%gTD%^ zM4%nHLv;_GN$CpXDDaDc^h;#DMnd z4$5!P%d)ivh>nw_2|GRowoTYgTP&3V z0_Qcqt!$zm}v8V`V7LZ{FfA6dg*l`evfP#p&A z+B{hp-EE$!#4ObV>Cfjoh*3DXb`7xsMnxrL8vR9*?&$4Jxc#d3#g{t^9EbC;-ASxE zO=u!axgJuGczBV1bYJZx5pRX>aNJz@HD#$TBVMaTsp=HUaLnTJBCH=Ko;r%e;k=2t(Nkw?Mqj-D9UlUsPs8|=%4sp z9!^pyTD40Eas}E?8SuT<)A+@p2htRQxIvc-n1VLdW}9oNee`k-Huy~rIH%IaO3oJ; zcZ&~rkxYBr=u$m2PT$L{#>00-lu|F>i{4#i3laJl?dEPqAS8?MbjQ;sL5w*gzlEZI zRNv3_o+MX<+bP99`An#Zuz9e(=b1DYSrdhv*DuC()tj*=3n>v3x2k-Td$Ejg)kr1= zxNV^jToLTIzJdgS>SMd|5Y z%8sjbka5le!-8JlpqH15BorZT`Dek?a5@05Jv-!r?Lv~B^i3kKbK-tF#OO1+gOXaAqxazc}qATMM z*a4Z(oXQcsi~lr-KX}Cy)*?-uhS6T2xb}2~1Mgu@9lI=#gom!5) zQ#>2opTp(6uUr?SgbU*JLxsYZ2wOU}?vE)Vf5>%e^UxT00@=}8Y?oGX-IARJEg^#2_T?*Kv8Dv|LL@uZ_Ruvl;xo6OU)t144)2<2 zSMHE9YqwHn1rYrBTFB2)0q$_pT`q%t3}Mbr}vs~O3%8A6AH*6$q_ zm)&J%2G`Z^>>^t(ets}JW+M03g(``66jL|GEww3Q z_-|wRFZG>NH`%OYZB*|0=sp($pVl74+rUcEI$m)e--VXV3dqetlP0ujFB4O%E9SB9 zzBlYlZggPn7rVaG!&=JbYW5krC09}cV$HTaqM0IhKcH+-o|Duk=l?ZDCJddzhS*xC zp6I$b44+dQnom6EbAQ^e#PmLxCIt&l%+y~WCk{TiANiOe)Shr;G@f^H{>-w~+jy@y zU?-VB0YNW+qwuGI)%L^NKVHIU{^Kt2q7$AF2}xfR`Z}8wF3KFZ^j<6ir@7&#Y%u#8 zUQ=arr%85uNTa?iig|Vk>BRD<3(-XuduP*^Dfs@qT~>kxsw*SRCN;8WF@@>mq?%@r zEI>|0y?h3Xa|%VMhrL{_k8*U%xhQOV8Sdx?mpLdmB8)F1Qz?mI!pv9>-_X;|_9Q>) zR45M_QB@SMOV@OH5^%pDbZ}E?i zEuhs+PglQ=TRJiD|0V zbT!eXS^nwmwOXwT8mLH0RQ_(8?LefF!Wn?e?tG5(bcZ1C#3- z{Snd7%uE`1RAxzxIut@gwpfQd67MvMW2jl)kRt3N8c3-pN=a@CF$Pg;O$Uf|tDsd~ zK-|B~ZN$vGmPAW$5w`hqYEJKdYcC_s5hq_7zleAH%w3U-));di7fbWft%g1ATr~XN zo5hs!XG~|~{_0Z;$Nf*vKrjB5_9@N{T_rYwm;I533R-GfYZI8lE&SAPBtYT_&G{)8 zvES)hBdHA1Lhyx6_@Sm&L!0>A3YI4eG*fVTymEH!RI=&AY)#((BTcH0F-W-+-j4y7UUGSdlwU7x*PMTZ=z7m<3^tHCEnH0GEx zC$>#A#G}OTc`%ja)0su-rE8k2ew@Ccg;UWtM(f}Rjsd| z_#Rf;ZOzy6Zuo;uItTZTtyBCzhN(na@@=Ydt+e6{f%xAn-~dsXs`eywE14~q_|Em5 z7?+}C?un5Mk0rv~%C(O#-d=&g+(XW1I%3Y7kCY`3I79`W4Bo3iT*qB<;->ZA{Q#Zv3zVJwn=TYsZmmDA_RA z$8E|-?T?R$Jvmu_n=~^vOeuz+oow0>A;<1$#&=Vv=IaqJdSq4Ua}iVP(^P{Ki+umZ zS@x^cgCN@7_TeN;O?5zGORSU6MqTA6l^5<3WoE8Iq&m>D5^b1tGa+s@E@7}~n3U<{ zwINYLxr})_5m_3T@C>sMTvA5AXz(NMeYTyhG1K5e4XOEPS(t`tM<@Ta=_kYZOv`!r zbFWL1Z`)Qs#W4+j%E#w&QRh$Y|`GnoiM|L)u$vJGr zCluQBU7MLNU!)tlfxYP58Y&?hj@sYbk+puYmg<&>mz`$&^l)2*nORSj^N%E(X*-pX z&TCF9kS3%;LS>E4c=(a~FQIDm=o|pi&4O0XqaBdV9I76orfa_*c#6Bzu#VNoou%{p zuSm=2qHXQSNO=EX?S>T7*cjpnm_DWfGso+>y!$zMlGKnxI}cJa`bfLFbWU=4Te3{G zesewak)|L&`NGreOA0+A3Gr(i7=${FYUXPJx(k6mmgCL2mTS)697(*^of%p{AX5?) zoyGW_$EV7puN$uEf^Ew*P3}|x6b!J%)^eg+x;s)nPkM_n&a-y5Pbx)}Qf`Y;o=j|v zxO0nWUztvhl4=RG(}Y61coavt8>){TXM>ik+NI!3o~@FRByIwSTR&PEz4b;snTbTm z^`1=ChhG|nX|(KRS9|bmRv)zKUUhnQ^ zV2`$%b+}%})-xqrF)Cqjz&$e~zwTeI>e7}q7m;z^*(0k>3X?i{EqnfIJui?e8QAZ0 zncIK1$mJrseF^uAKKonWv+>LpH<_*PDa_PeJ7{S?2IR1Lxl#n%y0-V_x>0}8!3K8k z8IO6l?{F(K@B7C~(tXsnUcxf7JCyk1^p=E&I1x_rNNSdcB*ctG$ygauUcJ&paG=Di)OjJ;JrTV1fQ-4=%eEwp%{xI=M=QYaKJ?(Xgqw0LoM zEA9k$Dems>?!glRe_lQ3J>Sj0Z+0$rlD%fll9~0)O#M$`Mvg{u{<)@~Pg4bBKgOpv zlMA0;3JGZL@_VQH?(G+JHvlyA8R9o1NZvp}o+CwZY?{ywyN zPN!l9b2^m{Kzf@UuMI@F+sKU)F%@6YT&D-zB%ZB-PM_dbbYfTY7>$Dl9xsU4ie zrDaI^v*Z4(@DOLB$=3OgqRj5fXPR0-k_XrB5gm1GQ%w)}z1zF~0g0{P5q>(M$=bVY zmy}m}sPbXen(T?EQ|sij6SE#dYj5vnEZYy7rU==nU8L>|tvqV0QUi5BnTi#o8#>8+ zYAbwuS-P^o^J{6{5kDZ>@tOKF_do_<&#c+ZT;~C)7Xk9>4@ZR^&r|*-=ciM!J8X8Se<y7N2(qj$MSOx%cMY9{dJWGQ}n)$BBcHxo?Fi*blB>gNk0w&i0cum&rA zPudlA$x=;G7U`gks8R;t3_{w+xsd5HXiL^?@s^13BXy4MekkWtZx}uZ{MHHr8n^KS zh|_k-3Y?XN6nh+%9{8mXgh+A;LedA#+w-aGp~&AeB^;K|fCf4z-=weDrYfwN1jeoy zmSM-VG~%Q}T=T%JHX&%{D)Zt|{B>uCojl9=T0fq8L9oz7l{f))@n9QFmf*w@-S z!Gj4ne=^LBcPywD=-?>!tALl?V{QP$n~bn1$?qUg-lQO_yvyUL(BkmqA!Y`;y?uShhnIEdJXu!) z>yBf0o?{Q`;}B0l>fCkqQpoIT?0E=Bc9Aw`Sko*s>$J$fra5o{aXhHlPs+a;YcaH`Pg-B{ zj+$?ik_X+L(c3`Ip{z>Nbht+dfW)^6& zpi!bcY+uKmWYF8Nekc;3^ystxg0E$UQGpGt%`d3?>Rj3KnzVVHLP(-rl5u-z@vdK{ z?^ej=K;#f@NkE9_8v`SR0pavk?mdNzZ5(gLS;kVGrNL~2?x9FfxDVtBE_iF9s@6J( zSh@wyCpaR)7@l!jV00s^ zJS`P)+fr6#mjn_HF6fnMdm%*HI)6d%dbf+~3RxB^YScb!S+S6iM!@ue1iy)D`sZL( z&*1+gvppa+VEm@_?fD<@)^?>f) zo}SlPUj7V;n2r1In;Zy}R&9tIY;DEathYyKHrNy=4aWaSD@dbJuZEXgT+B9`%-Pru z{qL7h3-TxcCw6|QZ~A++N@B)`o`uWPxbi1(gvn<$I}1{@tpUCh?B-?AH1rEuIKH z(LS-$KuT=mzvSjmP@?hYg;@CD-I(sZmjGsFLJnEKUb=4#=6gRXdA>7r>X3hDILEHL zL!8Y~>kY?$Lp4NyXnYXP3Q);UGEMojHZKjen$F+lg@!tIV7U8qK0;Mzft@~w&a0ll zU9XiJ_}SIk)__Sr?tIEB_`o=Yw%X^JT2ZHS`~=$+?(%k%4T(6_Z8igGanYu3R&uo5 zb2oA}&Gvwu&RXUe&UJ$AKYQvdNFIZuvQ_dg)poMQpIz7ZqVN;&xF5v`AAAzMermYSmZ zf1;ARl!<@7G3;eQKv=CA(x*Q3Q{yi3s(G8DQs-?l?N>dNB#e<;y`d!`AvDiTE>Pa5 zHiEPj#vhc$PH{RfiJ7f~#iimW`u_yTR{0o!f0Japx|dv7dS__TTmQ19nSd+?6Q)*XN`7J>}zw(Ei4!rgM5g5&LtePEZ)3>A-RndISu;D|8CmByu z0kU#umiW{6(wz0b`dKM@0ai1XQP4lR=tp#`J0FWYi6rUvy)@S!{nxzyzn(-L)L!|b zflYYM=6p)@#r3S~Niiw#{_db2-8qY49lR_(@lotJ65eH?3_Upys@hAu(D-rRHO;M zJMc%1qWq)FFl*D}RnbxQqdwa0zYNf({gGedsq>GXO1`HMD-hm-4|sU}b-8(b>p{?K zam9dPLf8uGiELBT2we&hTaQ62N@z#CE)tyOzKS<595ZRQ*$HM z(;;FemfhtAQ-E0S#@0)cvWvyYnklu5A=(peCk+opIP|RIs3DNsPO{>{c>@-`rz@#6 z=0{4=51%(S9e?t4d?@u1N@DdqeBlkc?DP(q*5dV(5nQ^S8H2AdJ;E! zr5*%_jLz*hAyUnN;#MZ%6YiNU7@8vVBTT%0yKtAj>hS072Mg)fT`ofoW>-s8!%i=7 z9ZPR0kVY-Ti0GT?#p3>xFKB$4$xp~deA!#-Esi4r>Hco$ z16CJCR^Kdrhe6kKvtHvl?PHB2juv0bcHz};9}nD4=aY}Em$#nQ_X?nkta7TA_g&izQhe%;A~09Esl^?CvGgXNPs6I;UYx9q0W8#TpNmBZyiv{T?SA zxMmR!D^*40$Z^DW73p6FE~UOr497V>wH6J<3Gg;Q=%nW7mnVnXaQ~1}4b9oq^x0Yfnd5=|&D>8~XhtFf1o+>UDol!G~*6)UpLhoOXXBj!KChRdBlipAeC zT-m6As;UPB^7#(N6e}enM$9@oemeGJf3NU_V?TN1+d9Y2fa{0 zJC)(UeeGl&NvM$N>A+qfjUSnfE!a0uuzWeK<5gik9Cz4Q`tM9f{LP!HYT(2jI!I0U z!du*qDSwmnDQuD{JgY2ZNRH}bfgM~cujPk&l6$m%Px0J>aTA~q7Ry(M8VPQT%)rF1xKm%5emU~|BDcX6N++|%o9YA|D$%#6%4+n6<~}1_WCcYxc}+fP zIY*?w3+-9LR(VT7J2%h;(CWMzG=l_7qb(wl(&nHTKc1R#Rr%kA|L#32)57i-ftn2k z<3g^>tvGrX(>=)(A)t1VZCaFh)(7FRY=Ma_u*-<~#5-HJfvXe)I}UJ;JEFP#m9kCb zjKx`~1NV<;Y?N=@9q5{OFUHKzXvSkAH-BU%!w7meKwB8`m?Uh4Z{Q zD_iQxdyX$mnKS&JbF%GD*+@t!HCLS%EvA{hk;9q-KKlS>#Mx%1vb-Hs()QKMPnrki z(hBo6HJWZybu#&L5)5_mB06mwa}rh98SmnG)G`Pi%Kx3=zm~L^J7?Qma*5oovaIhL z*7CEUtuEJ#^*_np57wJcNGP^W&BW^W>eE2{%r} z%S5M&;3Mn8kJn8I$%iGny{7%xvTl=g?{M0cKD^hx?OfcE3`jL&X?=Mc0TFtACr}uL zop3R=Q+!Zs{qAViD)j7FQXe#hxtV;WOge;pxVs2j8iQCD&ZTBWcf~RF&Yn|q4Dy+h zJ?i<|iEsHO7rBD3&@|eQ*59G|U8_@QhImgUIA1+?uT0b@H#xB9HMAT3IiTMPymL^{ zVZ8IBR+04}@FltXvb?7~VJjp5`e70qsL}?hRvu;*|5R>h+35ZltSTVh-K6AreeFri z5*D0uDis#}y&+eS^84^6I`>(YUu3T5MHHP}pPs&EIg#3_y7U4B&tmo)^jktpjOD)* zE`vJ-6_eoMT)Ac=;EKv-rO|gtZvP85*C7tQzfG+J)k~Cy&>S;;uTO<}fx0gHF~7>C z{S6xNp8?*e=@50DQ4hd}-^M@wwy)06VK&deESd{hvnj(B(-q4f zyRu!bhuqdBBJwe)b5i-wzwJR{qCr>?4ILf>{Twl1CuXN(@Vw6FPov`wZMgK$52B(E zS*TcqxR-b56*go;D8sF3k2;V)af5i0e@&Elp(@Hh|K^Xs`tzC;`G4Ybg1 z=T{*av)$U(lbl)qZde^ z{i9=@&h5tIT|2g5&(f8<0#47FZjk=)?Z>7`yBT%(KG*K_a}|9vG)*rfZv`w_Z0M&d zZ3(ac8u>*VL&DJu82OS(0ovvsGk{_et+&3vqv_pKNinEfk-F7w?N9i-(5ScSCWCRh zjQiyEl5QJDzXW_c-tIiE3y{IvJFv0=5c<4ZGi>gb_nJfKZjCxBkIdbGRB+mKNspZ7 zLbczOX&m#m9wV#+!6koGE%#xX`gOaZ+@!4 z?LEjXl{DZ*UIZ<#ytr8<4ZAjuQyC`~yhvNZwSn{K%! zSJZ5GSGrVtih11N|HOAcK3-TCGn^6g!Z%*C?lVk#YPzWNVsT9Z0Azx3y4yM)__V3- zKk^H4HvY#Kl=EuyEK|ah70A*LSmdOqzA)y8!-on=R(l8jeQ^L!`8Z2PI0saNDzqj zY=1oeGTGbIPO~dG@}$%TLw1%KA(rV1WJW@UJh2prY@bFquq^ zZu}JBX7F8H$Xy5q|6C<0d(}Nj+9F^6mCgEeYQY=FxWB^h4&dhcKI=CP2KYon)3ZIn|yPC`LG14m?e*N4h0eE-x_@xiwp+#1W>8 z{t(#BN8g>D?dkE36Zo_5SN`6))}9KEy(&KCe?^o&C>-sET~LZs#bk$f0M~jUs6}`r z5md;hKcUH-(YIWvWzzU{&fQ62(My9~5+Wm@2!v zaqT3r@P0mc^5t0hiN0zsPKmh)#?5iA6-*P$mW}L=gaxTgs#aWz@8Pq$643Qs zCL2z-YrlNY+(CfYF37N9<+?H?s>64=A?`Yx&p1(5bWY+a#xp)9kHWF}u}#;&aNF)= z0fmB!>d5dXDo&gVVom+?S}Q=RjWurekhQB-G@j#Ob4B%ysJL!tI~3`1TnP7uMf5?} zWZ#I4&W%D&YHh4IAON0-$6X6b33GReRMd6JLIa1BMxp0Z{>(_iTeq+PCM-85b)@HY z=muLA_RtY6;`9^14q#2ism0)*SkBko)SelQscbfh(tiib#`Hu}Yo$aIp_wK6-RzT} z!E$$Yt)P5nj2?*g1P!IHJ*<4P(S?mWbIm_`V)du>@@qP=*P86^mhW4GTz+G#KKJ-> zfx94ik{^fO6MCC?LodHXsZMkj z6E3-)gznO-P~tA^QeagYs+KrKjpJ^+x7zmyE&6VV9JP3ISxHvxu=Ne<<{%A55TYcr z8=I7P&iVX)L&Tp4ZvGCa^cYut>rM3qUAM*M0~$ZSGECCf3PA6LIzAd6;J39$bEufp z*_2}b@cQg}+Ev-+RQ~Y6@-w4!)&q((m+g^ZHt4oyjCsRu;H}rlYRu!)X3t@xov@G7 zt4S||bdhk?!hLtW%^b?3N5dUqz@W#VRA*=KrNuhe#zH5;Y36BY(-qEE$Fsq8)619` zc{~;iqD=GkuWdo-B(QbD(cL1nOg1T{Y$v~Vf2TFxCGG91tvb)0ad0}}F25((sZo&1 z6@T}*c7O8yvgy5e$lt$U=#a(#NI^gv3zvrzy1TUeQjbVy2_hZ?6x&{K{eUvy8ig}4$7eK193E2=@UsZ3>y4i9C z+8RF3+)>phu0fd-$33Rs%_N>TEZ4tU!c4I&nOm+kYx~49gso;}?R@G8i7b}McopP6 zX|?$cIJHRI{4jN2Cc9{0{26}?g&}!_dSS%qmML+LbS$X8Yir0&C77BeQ$(j2OhNmH zoMu`WMRR$i7(Qo#Y^Q0fZy(2!1xh$qA~KL}Y^t!yD`9m!Vu7dx4MGMnIDsEDft^(` zO<`viG8)^_`vw6GiRaS=)&!yBi5Y>0ifxqDw6B)EUwTxYuL z8D@6vPYO%gn%MlFz%&#OAi`iwC8gM*VbX0b>(lP=)~=(o_}+n0qEcMew_3j6!rcv7 z27WJA`0Dj~5_)qspnt!0C8yLL{bK6&lXxa+g1qc{m!;IUU5e0&LgMc z9Dh%*wqn9JG#sWrSOxUU!`2i!5}giWV8(g7jPe6)HmUXlgbXy7r9-N>!F9(M6QFaG z4n}ZtYnA2vni5we5w{((>3HURFsN@bm)eex7R9pt>dQFs^K`#SR6K5hY?^;q64RmK zPmtJOlTV(_Hv;UFwGRQbaeewB`=&Iy?di>9&^rtF_ci#ID@CN7&{h@bD6RRy1>}4= z*0!07jE*MUy~o~Ayu@Mh!gWoqpcfzCKM5KXY}?D4q|J@75Yj~MOoDAjEmSJk-R&rS@v|#-#1EU;Vce5<#gWbSn?;4hRL*7+EQ*osi ziHxAWy|_b!g5&NgFZP@?PSsWATro=}K5IY4FgiL8OQR<0-*ej>jgqP>-Jbf(wD}KC z8LI2zi?)c#(}Foudn9OYUQA~_wN?Up(%@>b zg9xAQ4Uxt&`JxsU)U=w3BIe3dbM?F351?T3vlA^reSN*1X9362Y^i^zhTx;IKjzVVY3VpZ zWmT0h%wcbL_87Rsht4ee6pv){DHP-3RNH|Xiv3_+pH);32q^h}6VK^n0RwmqfE|nw1by&r zv1dJbCyhciOVFWGPC(c3P4LlSlD}2RJz&TqXr!P8bgmqp^+|abX;4b6R6G}vt`kFCJH8GIT!{yHmBv8a~6d+!s9j zAmTn4&CjsYN(sqVLe<<8!KVgD^^HDT#h}W1)i^ji=nS5;(zJOFJV@!pa(Z{MbLjY~ zi=k0U1)|}KS!t!K$gURekx%0dn^lfTu`=hjrcU!S4bzn;<)@hsjrWUN8?27{wuX+%`%9zlHOXbW`=EzJ zT&C*|u&&xfY@cD+lZwlT01$ehpP&iQB<{rW+C?oYm^f^Z9&9?68WquTPnm?U(`Ynclfu*H zoM0~s*c5IecEiKJ`6Mflw%QWt+#VBqrN z)OAg@f2`ISnN_F>BlgnidB?>|qgpKpJCXBLGIE74}6N~#;k>LPDwtoJ^OWUyog=B(D~xQ0i_k@>%Fc> z6kY?{J)6U=SRVT?@xvvxq`=LEG9I-y!wasD_AOMgo|BrzKk}R8tX%3!GkDHb^cSMF z|32Z#((k$GG@JS4EOhB`k(7w3OsD!~FgB{hK8hcNOu$hDq>Fi)l_gUyRS{n1EU%55 zWPt4-s1gBQrSB7g*`gs>7U0@7!W+&fR3U$7A)AT*iTot`FA2K^j z&gZCH`KZR#Jxa8A!b!MLlbFA5r`f6+ZoJ@f@|=@be)H|O2Hn%%=(843R4X?_E$cUK zrqpzK54q%cUdXon$NP_hsk|a2>mm zb@nVTsf5%?NNVi=YvK}d^Kz50&Tri zRjwk(30CnDvrg8=W&zb3L2fUj-7jfyv2d+ATTX!Sfoh`TD&nJCy z8Toc|5I-^&)(~f7xB?-+JjkWoXzD@J&UEZ51-6zEXOTfXHRJ^4aoTjwd{2Ggx2j#3 z_??fK1I&$I4iW}oQ_Jc@viL3r)6FgL4Gp%GY{`O7_AbTH3H3$}TrXx6ca?yG&KC1s zVDye(K`!BOHx90@-ACv1lt~G@tx&D~$Rlp$_D98|y-^G0(t_0B5jOg82Y)3KegLpVzIqLgaJ`fwZr3(?5c>-&ic{PUPi*d?D*Q)5-Z7s#9YewbbcQY6hT6w zK{?P*=?Av)*UPQmDw8@cm-EH2MUwGZR6QTP6(sDcxqUuo5m6V3C$p(WQjJ=(5)It) zsar_;3V<5&7;3C*a2r18)@<a_YKy2xr)uKk)sz~z;^#^(3t9VfHJ z*R!R{@~$q!tD~{Z6h7Yso6K2@`3<7cl+E$gpNb2We!Ir4pO-lIkw?Aj3b@Qw-mRh> zbW~VyvOmnDJEq{KSk;y)rPkMdqD`OzD1*vYtgW?(rn^fMM5IR2S>Ai;I8QTabX^RU zLO*%Tv2zGg?;wU1$PgCKfzvpjgEHK?P8UfNRN-{b!_HefR9;dH;!crm92>9aEt!_f z;1Xh&(gE`eBS$-I_k!~Ibgvf$Uc!WL=%6xYz zwo{T(L~@z41?Lk__|8@XM^_?@<7wvO#fcgXHX)`<^(xCs?IMwEQ!+sKo{?khoH@BU z#aFTp`gE)sT+Me55G|JuHNLw+bXA2;ckb(-&Gwf+uTv*;Qrxe^Lz=Q-CKV_WGQLdR1Wvqa6d-seznr3Ni zT|QzR9hw=k-Cu+TA*pkyNe4bRxv?}kP`3cI=#s;5>4UyR@#pMLiqE>Y-}JqhedWb_62w z)`BpudFBdj8Eh*xfND&}Rk==0spWYOWUES@9CGe8yJ_Br24M;=ND1N`KQI4UCpDr+MPa7 zP!}PhALZ0Ijx~Sqx}FqQK1Mn$xqH^J>+C@>oI3T6ry*AW99^|FB$Bvnth%lTj}zF= ze&M2KXbHjRUC?RAzk+L0|oh$Ia$ zydB3Yj-Xx$AX| z3Ed7_(WVtcyaO2_Q?bXb-h~8{t4AO$)7RdPZ+M;0LSx8-OE=SF&k86nJ~FNma#;KV z1seCpXnm9_?Y_9Exj*lSPh*$Oc#>KTr+9!lwLc0deQS@kSyy!fY}KiH=pWAsDbZ8< z*ByqVu^pPofs$)Cl3HAL(@iUBjp9}ef8;B#KWwbBU@N)KWz=3}!M9)KRvQzGZ}*|k zf}3tm%g^+fO76^}Cz~gsF=_kN5Xu_ItR0r77O(XuJ!h^~CtKQta)rxH=qQ#mc2DGQ zZ99+E$JXg^H9qFO0DjXtz;vHlSq2{$1X@97%g|E(ydCxVn(!06k7a+N%juHIJ$Gn& zENhDsTf>NDzJ>Zjht2pgZPPdn7hbhO-!DJY>oLK>&&8`F6b$pF=*4$KDz5}%m&1WO_VSbC^ z3Ugx}2U4HSFYo9UlEyE#w42G?+n(u*HJByt_(6{|#Lx3G^xwF|?o(>qCFdmWoTp~% z_^H)V1sxjpnn^f+JF&Hy#$g+mDHSVREZ4q7^1rh{C`bh_oWxb+=Ycdpkxqq7uIy4$ zAEahWl)v^zo?gzX(pPS!ozK)x1zKNpzTscbj~im1nq7O8!!5>njve25_^l9Qk`nwn z7IP=ka=cfEE{hO%3Rd1*zLWkCERPCH7(;0QbMrhpP7*CtQ!w5OrE(&PM-q3Z`GZSa zDxaSqTOZ1QjRMY^o86L}2A`)^oneQ3*R(%b=YYDp>0#V~s^IIn{+*G_ZGAf3dz*#u zjg9V-W7FXl&@S|9+*N^#e9%#p^5PnrN^)`N$E<9pZsUOUvxj<%C>xBQI!ol8BQ z{to`6*3*(U_b`*;j>2NTqF4i4%F^@j3ACKBUMgv0Nx>}1RXH_vk&pW<7ZG=5<}$!L zgibjn(w|tqtmK+D^@^VQ_GB?Qqvdwvm&@x|R6wyF{iPYo%xt2Z2C8I!B9Tbmlw5PC zOtW=+Qy?g7g*R!HIVA&X^2jHio662$O z&ZYB8=dJGsw7FvHr#Cr3Y5K-}RWai%3hUW=U7BU7=ThcK}g5-ndIPU$u$#r3xs zQ2^^HcZHhlwFZZH)ZMe1JrApSF*(eqzPIHOx&qEJ^Ngu-9TWL2e1D!f%>y)tEjy7g z4KrQVo=#nT;LlcaZD!mh=}CssCwWHWcz8@TVjZ(*%<<1mQ&Rd#nn_T>FpVE55|2O2 z5xTc4p<|O+l!(-I@Qfim-m!O4FiF}Do9RsOBD0Lh&10EgofG)}6is+z4#S6I+!0IQ zb9SsiB^o3?U6J|(1urClOUtYq1YRNGN9lP_0W?HTAn(kf(AZE>j7 zp>wqRmKD>q@b;)_cbvE51P z%NE6~+^%-LJMSho%ytI1de$f*@k#>J+BKX6EV>Hs-`v^qslCPU4LsB?aY8j4fbJ6r)(ZfM*c5-8TV(5t3` z7=Csy#)$$ookZUxRA^Ct=XAU+q(i3KUrdkI5v#Xajcf>tR5+&K3K_63@oM2bda$V; zb9l|;u#@Z(d73kqM8j<4au)ZZ;5w01m>e+U$L}DVNy@~C!K~XJPRxAMdweD`S)?y; zeQ+t1FrQB^Z65MC_&Bb-HhctNX|b3qt4Nf{e91IyEYa*0XZm3nG$@m(@Q{&mvSSZm z58&r}KpW3L;$!eo`82kC?0wNI)dntBNjZaqlvtBT^_!LL`WzCoo9R~a?%y3Bmt=M_ z353p+rP!;2VBVBB#xAlr?@vyZ^9!}ehsb5Z_umb3OAJfHTqsQsu|FMjL$-RA@A9$U zWqvXbYA#6leAuGVw5Y>3zRNDRx07xzu_rXJD)T|82g<;9buS{Su0KQW&3f*r%=~d2 zJyAy~fJhhIzNE?LJ*w)A0V=}fxgBERrr*JHYjDQA-f-Ko7^$NG$c7CXO)(MJ{<7E& zb;p8X0aMVjNrZCl58f)P4>T_|NC7;gn}`-iforYrNPI+`6&c^#9S$-G(C;)VHQL3r zqz2cLHQAHvII|4dcouz(@lw?|f5)8pB!lI^5Iv;R^t(09OEVKqd1j9Dfjjo?gCM{q z)-$WlJY^sD@KyN9IR5E$UoO@ZV(N4?XU2|VijT=vCB?(RTzOh?bN*=PU(Gh3EF^b1*rN}qazyw~rMu9eM z_R7E}#<{te(MMVN zx1WS;h~Cx1la|IAGoH_8tvTapY4vwvk7ztOR%10z>*yb?hj(tciXN9b#zHJD`W55F zl?y|ay)>rIUDgx*j8y2hcRcbSgChmTnYn(VV{CJ`<|rp7l#Q0wyeN{!)SnqBNZtp8 zu`jxmo#c4XwmD|O|0o#a4t z>Okq<^pGc+Nxv`PBicjEgP)LjnanpqxVgk@leUiL=xTiB+R{jzi-T|sclX)g-75ib zR~3v7ILM903&s|T4024HIZl;MoGj*BLA;d#07z!B6~orJiHL)*eOD+t9uDcjpE3Sw z&tDRNwTpOACz|_`rgaSueSBd|tw=WUT(OC$FYq}v{&ZWv5t5zTO9QZg~Y&G)_>w{8jBSyGJF#0N*15H7U4D! zuX6yIXbnSY0ajsLjDF6rb78)UrzD#qoeHdP&=TwZ#XIlR5;!Vir0UvuWT^Df^N8<) zem^LCsoA8cn2$dZ=+|)RPzt18AqS<|a=J|TRhIwn0FDFw*z%86=Ff6!IFqmA_QHR3 zPgClvRtUO>X9Z>F-{~!$W4#OWJ8v1YORjp83Dw@1=))f)Z?z*^dj#~5a5Q|G>*M2g z?$0CX9x2ztWSlAZ5RUJNWNGe>Hd$1joIOsS&jB3qVQ;N-UGvXivB>3=g_Id0LD?(> zuQpoLHByhVmMa=w$%c2;FHX@Z6P~jYc(-5Gnlow?9T||5zX?G!(;6ps$(PFc(vPBc ze8=Oy0Jm8R=@PE%;Xu=+@76((jRKkDfe+FY0+`h>2Y=ap2OlVE&(;k&M6?!1h~gtKm_ zGuLT%N^b7ISvPO?p)>@uduh;JYE=*}PE)i0iF4_(1v$kv?Q)@jD>w0!!!@Z%yXJ7h zpz)5&r|=lwns8;Z#?`p7JUMEuZup=(ha$b7xqrZAHzv2gc=(Cy3q(+T?`>FBcMiZ6 zbo<>%NNSNQ$8}UnT_p^<=rn@X4Zdcz^?w4}61SnSnOMK#9GmI$CF#(6Yf{6!!|=(9`%Ov zX0nLfj%-IsGHD26DDOIk2oIL|8s)f#*P_u3;rJ6DG3SCOdbMK6lAmDO(p>1!{d+_`&Fvu@-bn{}g1e)JYotxX*d%s!WMjJx8i zN*8fFtP{zuImDv5b|iui%i&%nF=p_$)}dc=pN|79I6Kw&NMFoSRftU3__$#L{Vt+E zB@f;7_)!YfnR|3u-jQ9?6j}$i5!>mS6fy?aqrXbhJ8)(WS6J>Jq5d6^y>2=DRKi#< zqa8kMbG*@EflMS@(O-SK_px025JaOqOYCAX&^3*|QOTxO4m`Ym`%9UPyWT9Qo0`%c zKX4lIGIkHrQV$gZ#Q0OcY}h2-h{wl|#M>MeU~ie%heZUvu5_jwK7 zg$)~lu(o@byfeCWSIB7E58=|vUsD>~uLVOw2uFOCC@)dFMEvc!caX;do>0zDcW<1` z?fD4QwxVKWY7g^nDlZpl!tRzlXFy{`=)hI-A797pgap25M#9b{y%=1M-MHl{Rn3dx z0I8zbWO9ffY4p%MeOCOV`(cb!AgA^va+#Om$5$Q}!z&h;V$OGg+s(TNP^Wi~eXo1+ zCg=`M=iWy$YIJAUx1lnmC1DP(lb1`b-qiDH+WTn`=jYxtn(C2 zRp~oz?4I9;571BSEH|bzw><%T-sgFF6gRBt|5B2z3b9GpST?^*Zb~e;8O;;^z@kOt zV|M9Pvt{cFud~Z&6}WfT4F4zmEGdJpKCjtDj!Jmzz{fB)=cy_E9kIPmOXj#*S0=v1 zc&#_H`BeuP+5Y(3RCT7TgqPQt8C;CSu{aN9-Q(jA9+|78aZ3qCacH~~&*A4Ozd2cn zbKoPJ`FZB*Ah0_IMM45eAXcN^o6j671P+cJqbMi2^^Be7%c3a9T*z?poPHhVbmfUd zq=a4YWR?1$_4HtEy+D3gdHZy+zvNK7`zdS@BoMM}9py(ZNtCOZ(&rLL3sm}X=v;6zf zYww2O!7(p&%waLYnRBWv<|egqcRbJ7pFb|Llm(PF@@?tuMaUCj%AiA$_5HY<1Ucip zNTTX9bf-bHQm&1IuZFc4D9IPM!?qEZ*VZtS8^{2xig*Iy|MIeNo${Mx)wN!Nl@bqj z9cwgvz$S~LIK5wFJA`@zDa-k@qgwsTJeJla<^~;ns-j)IVpp3+ETGp=8h{54tIw4y zmD#X>lb8E4)M!f5x~cHFlJf8(Wgst^%`#Su;BR%1y=OBYtK^Wt9m!4T&JxPHHvV}_ zH44)P>HWKQ7zn*G6Z6OmpyNM0c__+5lgFKvS_{s=m@oVj@EgjEj*F2fNDEnXS2y@K z0>DSY+#ZZmV+ibuu^JyTBS^8hX=7Znd_+Iz}o}b;*`kpo=R7fuDfK;=TiHhD;inDPEUZ4wjU|VCUbZ<9aNz7~TI_b>MNOKe7G-DB4fm&g zTeMUuV09NjT3=F+uEGA|%e8;?r|QxqS<{ zmu&KC^;^j4X=;yR>ffs*z2MIl;vNMyJsL_X%6#d}R-TYuh-Z@cSWx-ub^Hy#P>+G;=@bezpabEZ47~E*zT0yXTj^x^L5?-$JkqjMb++o!v+XQ2}nqa zq`;8UCEeXECEeZ9Al)D(odXg>cf%0UIFxkP(ETj0YhU}``+lC|J>KtYQ zznBkDYHjLnytQ}Fum}m4q3IZebN7Pw?Y$#WiFFG*>f?zv+q4acw6Nv#1bcsO2irS1 zhjcrs{I;8a5oMJ>J7)i!tKBqa1OWf$M4{r{so-LGzEngVJ=BH;wGr%=kz!;})q%yk ztgJy9*WSSP`cfow%QWp!wQdh#_`nlA>-lZhuL53ASy)4~mAkip3XtYu`k&0!;u&~{9R72t4I3i9*n+!?o zm}K!LFh3ooyD@;PP5t2Vw$IiwL@2Y|B`;GBsg+q7l=1*iHp8@<_n1SN^KAL7ziHU^ z;~=pbb83eNyP#!cZ|$K5q+K_SBkk5*j351J)rz%JAJ#JT$$VBDhWU%ILXN|D>i0?N znUI03pk+#R%*-}I{bY8BOAu$*xzcCT->i3HL9!E@6i{Y&mVE(Yl+g0WtAAC3e}B1w zbjB#O$%>D}&&-_rX%qMY8*%o}s=j(}HeI}FW)QtM(M|yE zf8Fc8PJ=9y>&w)Ptk^kc*ZIF!pLeQ(6KM^ZYe8&qBH{-Q_Z@4|zU4Q2_YwVBhjHvV zhDw*`X+8fsZ*|XR%4};W zet)QQyLoDq170S1x(Z;%>*U-bVU{sD6$dIvVZq+iW&VO`b#D>Ef+5Q}S9*8imlj0p zlw9d6)t2+rG&Rt1R)FmJKgUKuMm^=|m-iePD8VwDV^7R;QQ~L<9mr=eaEYcRg7+Eo zYN?Zu$WsQiKE-a^R++x|^Q#+Fb^jPbd;VDWm03lbgKbPcsrpeR7VHUL`ALWL)QB7` zCByddzs*VzH7bz)m+1=a;~xP9IO0z7@y+>OgAZ?kS63)*eQ%(QuZl;D$Y&F>9~_za zTCN*XqFNN!)B+FU{!qaQ{v)tXJ+NWNoevLsh_*?z#jvI%EN|GZpK<=-+vhI0RYC)< zh4iPyB(E=e2AMPXy#$sGiqdSCL?ySC?oP*gokMFPX7v+s>T7+(Nq3ysvWfj3+T7oy z8J*Ot6V%XaVaEt)Ka>0R zp=VxX`3u-)<~F$9f#NACD*wvv&AU=HaBj>j@iH}e2kqO^S#=(TtI z%>%OMMqLHa6s4R1{+Imlu#5Eeyt%p5YIMw;vnBx8w{aGIggS^(aAWztr+ z+~1dDZ%8D2bL^v9=6ZR{Fdn$N(0H24zr{9Hse#|U?5jd%H5#aM|Jb2n;1_7r8?hpO zhkh_OgQTaIrLv{Sts+lTaUJs zwKjVIP7-}OySDacDD$dTP%{Z};if59XLhSrL}{q%5x{RlW;y;03;|+)PRvNE_2tHL zc^B?Mz{#RgcRZ9n*yZ(La_NXU00IcE32Ex&?sW zhLfAi)7&xyd$FX@<&M;pswgH=anlC=NT-4o0~>+B+SBSgR|`M<>)|gCl}lB=FQBHe zJEo6bdn2>sgV$ORAByvh*tIqWi4tX3cfVm|RZp0=-sc0(#p-iR_e$-&i5`g6?1?p! z1msbNepxHQAX}mAv)Z( z9djot%-(b9C8ImSh1||us`NzBgOfK!QY01j|WWv`5A^%j?VM=CAGRphHhYLrF>b_@LEzfju)C(OC81IFc~#@_NIdIS`|? zPi%BdATMT+$PwLpWBE}rPg}ZG(lfVGw|6YPel;n@py8UL8_*O)lG|cb!cY#EoYTN4Q>WW5kK^wMZ^z?1aRmfcykw$JFtt zp4aq)&)y6;A0a{N9uEmKxVToO=t24$hp{c3FPzjh6eE;cE>l2agK3a6nUYD$H_rH5 zgD=0p&LpA%CF1^ELC7R2y@J)&1j`zANsCqN>2PzNpse=ql{6F9#i{dU5OMt4?=&WRE(4i_tzim3K#r>qKiUJRT;lL1kx zYWB6YDq?(-#tlBk^;`AIYw{hhY_jPsaAx*8SG#vF9oXAJheYG^a7KzV>wayPrGUn0 z=2lLf5D;{I%3U-b?m2h5!zU92uIw!*f>Gmc=3ZBinBFoxZu0s>rdiAU8in%~Q0<+Z zPuNY_CE{B6J(tnqH-KKGa(ns0AMCl-!(e!D?rWR2Gu^@iV=q;0&k05mYwL_}*;R5T zdM25XK3&S6+e@gl@P1vIwqse$Dr}Npzon*DM>nHfH!+Fd`D|3DpKQ_y&uyXeI0j}V zB{N>#-^K|omJpW#2>sfO&gx!FPqeomXwsd zFAv(McgC)2@|=X(|if+Jy+xkYMmv#N^!3 z9YC7Ny%yyRbYqm{*QyRm1 zPvz)sSNpR$NEXY=?N8IAO&;^sl=D5`(iZ|lKdQ`_Qv=M>xZV5#g-IWL3T`zox-xalWF@Dxcw zCNH<)?=NitPo-vSbgfFcK(Q*fmC$yg!5?NoiK*Y_taU&Hu~gTv0Dz_9zp71--KGRB zQ@0H@id^Mn2?Ti>H(G@}p}(*iWEL}RYWYC=Ed)1bzQ8#~63Ul(o|n2;s7UPpjBXc> z-tfBE=iHi?_~OS{D6lkCM>^tKF4(#{NiZ)b=?CW9 zBE`KeLB#Xx-plRFWxH3@dv*XW<#EbD%kE93o>QqIdF!WvYYlB1Ntu^g7cJEDeE__$ zShLgHda0g?z-GQy*-c7jPt$DcVwWpB$>yEOBfZ{D)%x;!XzNb*q06O>eKXx zf+W;@v*IQft36}ogqdad(5~Yq=S0_|0T_*PUPiKUeQKxuXSszjJHvIe*eNyg%#d;j zbX>z;b{^AecT3))l@a`jvU1RBA~9{yRA6WG_>`$l`C3mK`UlBPXDs!`Iy)IZIB|0Q zRQVx38GmNTLyH`|s^Rzee97GkLErTt#(?9#(3i}^RP}+vGd91K^y|cEct~Uggpy2p z?AZ$oQ>wL~bv26R;Z$}^ma0vs2#A#mluu67O+i~&x{_B&+hdT{NzzWx)s;%kL;6Fp zfkq}1==2WglPdxP#q}l2d?cd0OZ4}=?d;B~j%CAt2w+J^Ze^#(e^BvFgoDe3 zoLVvxwnlZr+{B~RHs&IupT8Ldvo=`=0@1*vg?M(|ovI%k)qeMNUdl~BT{E3A?_5D< zD9sMjONBnc?TcK_RL+<3L{rwXh*+EV*(nVwg4h>bKHWuD_?r>hMjeP`1a^V4(gCatCFR-yx+vBW3eXb0?nHm7?holrF z&?uBRTELcR%J!J%BR7VSLUor@WjRl-);9Gq9&VZNQ2E{7f|%cxKRfZx*$9+HZt zs_UgK2{aF@@6xv>qaUWxV_t6q&?b}BAeO7qTdO$@_m>jFD)>S9x$UlCLYSB@^8?yk zIJF$1Nh1-FR>e7yuYZjb()nUU`<<#@hN##*xG4!J3Nkfok8vQ3Om{~f`!I-xkG%Yk zv09s8Tz!L8V3u3@#MH(E3~n!=0N5cN%WzYJj@xu9OMZ?W+%JN53+2f|$s666OWh?Z zemmLH38D{3^#BtMnlP|x%-UmT_9+%6*3I0^o857ZG%6*6p&MW5z!+ym|t#rH7;Hc+F z$^nY2L9Q#LZU^67NiD!JgQ=>qYUP?ja!ei%*%2vK>t!3II-g7K;$Je6+PqkkMLNq~!unU=U!Q5Z<;$LQ zvQ{P$u(rG|>At5ZAX+E}I)h10r8x;3TL zp5`I2^;9h0{;U?8T(5583(1uObk8!`TJ(6qPeJ$HE`pUi$972opoy zDouY43I)5IWL${LzjyoWdSJREyuN(=GkLsN<%6xs=dc}tl8Wv-?`I%P%%>@~n z+9aTraO!ULn?Ch^{I(R;YT3Y70ueOUe&#oprxeKJ?l+b0F58UfWWJ;ch0;t55EHqf z<3o%M!QVC|kO$Y!R%@-&(>)*Z1E_9=RtpbPr_4cxb|02o#Y8bfo+DwF1yn9*aX3zK zoioJJ3?(aBC|6OB-Qg-%(c)^KXg}3_*{6I$zdl+I(DW!6_CGu{-(;7@rZfu|#H(f@ z(jZns$2SAY7x?KWWlYOdXSA01=}hiU^>|kB!Eb4C%SUh6ZmWfpWu7g-HQH{stJW+% zHX3`)Ml-|$U$`h$ujg56m(boD)HCk-ROQyuR%Sj4Mj%`dGE>betZ$i_S)Nb=zrB-9 zS1)}9%1*&kbHp!4xPQ3b!rt8;BThDrpJB2XWQ98Ui-^ROp2vOcMFjt*#iz#peYFZT zEqz7rHa{e$nkB_rUsssHLY1nDTJ(#JrtIYpeWuHwjLyE3D&e&4@k5x6$2`Q2qH5Fw zBdqW{dg$B4yZen4gXvQ-RD5|9m{!3E+m35|sdXx=1p{CEl`4PzK|)NCQO$Dl`rE>V zJC#aX64^}n)6eqRVc#I7%PFXy+@S!tURmvj)SeZJb|IKgdXMa&g^0ulv0#6H%0rFL zFfvQBXEf6bf;vQKxuk4pRQm!8KD;1DG;6dlr)1f>q5ED)p4`8SDhtq%TG-kBbqJTO zCi7kRJ{sX6WQ+X6TFkrN+9slSiwOzgP#VK^;I!ZO_!{ph%9AL2B)fzzZoMU&M0utf z_VsFf6^O-zbvBqETR1Xfmy5q!%okE&kfN#GN-O?+%6A&s2m~Y6JsgE(HGk^CbjQ2^ z(}MEahvcnZDbviBtb^l7%P5N5(uLQwx8G{F&1Y)kEK5Kjx3F+*BvBf@{smU7EBA!QathvOPlpRc_qE@ErxkystvmzFi5K5cvSC^`s!TD62 zqjMHp$Q~iZ87k}EpjjEMRt~D%1&VWVWkHACDT|~>M%}QMyvTRp@G)?UmuB2oYYFyE&srtPD@kr^rn2n??MQ5nC+o75uK z52(kill$JYE|*sbLX$A@N)nhW(kuIyI|Nf0tu_jYka_G0`sFi}LD0uWbH=rSQvkit zU(*G9P^nD?b677S?brHr!U0MIr=oRHhFQ{PxVU= z8xo&M+Qz;d7pP#$&FIy0)FKBtM&c|lZjZNGCF{IfR&Z1vi_~3jIa@{DHDL_qX|%^u zDI5&}xZu;b3)CQJrCxglo%(w-%8v`Brl;#)tu6RncP0vW89%HWsUE@;zb69iRIHfS zbosb5q$-HKjZz)RL6S?chw3s`7NUtPjZpPx5y@bQU}tWcRy7k*?K=Sd z;c2PWBX_oYvF%_!Rry@AS^I9GdQ-Swop(W#%#zu`&H7M9ZN9KHU2*<9UeMrP!M-%W z{B~@K%_7c!_i?lz9?!TGnI4xfR_ScaROxxXTf8Q_(=W3;J|w+KrB^Q%t1elf48ooYjqU z;e&@(2Y zvlckfK%KPMZ5kzQi_;cq1{Z0et#Yv@dBJpjZ2C?9dGmU~3s3sBZgL3+8R(uP+jnaX z3zydGSx{;3Wm)B!a9TebhOAbpR?WBF^I!lE$nD#NxgB9Bf>hEm=5?eXdC8SBX{GXR z2(Swn7;&9|MkcFA*1k@YK!ym)Tz&Qzd-pq6s1S5ou(9kJux4eII@mK zrdFn^Zc6Hr--CoxxC-blZ|~nRWbN(e`@wjiYhP-gBzZD>fOMH97C*(SyAEw9S9@i~ z>T&Bm?pLehledRYNs#cpE`9dM)PCjX;kp)O%FPY3nninKLt_PHY?UFn?QNzAEr4;> zh}cRtSTv>WQln^LTFvTn$Ngf*;pfY;S=QziU-BS^qC3jzK;V;Hj{Er+FGT`9AyaK; zw5r95rG|7|j;|~LqD+2zT2YoKHq99$=>~?Bg%*`tgn+s> z{l}DQ6*p6v0uvGNF)M8l5QQGopje2iH4?(UDo7=t zJ?4Y~BvU<%&5&Y4yGJp9_D$Wr#bvLq^lfri0pIQBxo_p__V|L|MWE_B6F_3WIc%ZZ z7DUsovkn1F-%D-d7%rbT{)}~)Ab~{w#YsSi)P~@P*6x@z%hWSE7S-|zZkqraV+MyW zl3v2$7n@r=SV}jP*$^jd)FU;4QZp2C&W&=dTb0sgGxT`;0#>v85IOV7J|T#AEU#UP zFNC=<_hZvdO7ag@n*$j8ao_ic(hb7|fHA@rS0J;ie3RLbyk4=SwhUJDXWRjcjFL>6 z`Nl7Zowh$dL=eGP4Ct~F?EaB=dG=bx7ua60D4_bPEo-iWjPV#)tfL##vS2ooxj>P%s#nYnq7YC@(}he!rjmbdBF zR@Wo>GGg415#@mPxtc(Mgspq5?M^;b#0e4Z2S@pGogzGSzjllb2y0v-=Vbg#(_f+O z7dLn$JbZbii=RpYTKT&mPTN`sy7W(te%T7%ZATPA;CTp}8zIk2iW4Nt2hd+tkE|z= z0@?UaSOa(G=%{?sJfOhNTDE`dSc5Vi_z_;~z)zKQetX`}o!>eW|G{JU3o+_O3*)tX zbZET9#r|S8U)0$TO3pn=RCeylfs-@aO1W@aGs-zS4}hu2QG9CRxk0((=-GP2RBCDx zc;n_eOYh&zE+ANP3gOEV^~8zoj{rsl19I7VJiIw;H3zD1bcaND1`i!RCi8L*ZO>HT zr9iLMyL7nkHm4;q221OLiE&w8|r zegI8Hof9&|E&-szRju?bX)1ngF-D#6()2KyCFCOd-mv@b9`b#TSkJy5jBgY`WGGV+Xx zxOiO@pF)7HA^&t!EtHC>Br^GJx++|H$ zR;X#$S9Z2 zqM>#*6l@i9xXA1PM}v%&pIj?J?&49O3~EfsozKd&3q3v+VOG11oVTh#Tf#B*SN$ke zuk9!hZ@jYylR2zSmVOuLP`*FC<>KA!h)yl%ZUA|=(Ej+Hr%mUgP_gDSx{Fijy3Wp! z@+Jk7Mb-Nx%?agkb1)(9Ic7)wbg*Y zzw+V$_Is#ZW8Ch`wKuh%s1~D>_Qcovqq0`WwXE`FJIw9XYGuFG7CpYt*GQ@Q)(IZr zwz6#349n6?FFVFqN{z<>zRe-{UDJuosmTCj4&V!xkZpBHzjOt3m+ge=T{42aEBaL^`7N z+-l$9Im%XQ<^;g9_4h6dOSh{onvsnKV|`?2b|yBU=JRz)0LBkZd4*yN2?zyNPVWW7 zhJ95^UdJ=WW&5?MG|hK#6+tgAT)b4yCEq0_^x3JtVz*lY>I`1450m}*)bm2xh*EBr z>=5s)z7zoiD^!ce2~QqsNdP`7wi>zcOJoL8|*Q6Z1O z(6wX*{f6%O_*Bfahni$>{(?34e&)FLQf4V#XZCn>jhmN^v?w=)sToS-P?QDy?)RBw zR%A81qtw95K8@lu!z6)0|v5ASkoJGI*G1k@JEW%s@ z5^D-tK>e&*g#axa&<}v_X3HAdG?iDhvzH99!rU@Y1k2jS;;q{wci&Nlfu7!tYd7w+ zvf#Xpxry!1$WKZ-l8S*iR{y)|_L7%k)+S|1T#Cwgqvus1;rYzdY+bXZFlhrQ`>1BA zOkM85)4@aRn79l8CH}>PUK5{{&X9~A4@BbQZ~e%}Z5-JQ9x^O5Ci8x}QwoY2X-`zm zYHN0Z3?9t(TcqE9W4tAMdBEkZ?)p_-Imc-@UQQ|`(U+0nyzJI*uJEoEmG(u6;R=8e^?~0M$ z4N*95MQ<$f7D0s7Sip)_s&J`)X(x_gMzw3?+kcU7VKOt@k%ix#{X z=0){G?v(XM7zf=r?JPHXvD506HTF!D>JraWh!obTd3U%eizY@>wuLCK#j=ES%Qa7& zW9)vlX4NL!9d1G1V{M>whe%?+Rc;%TUK%}gcv}zMwkXihNX&{XgdX0QQI@{hTJ)e zIEg!Xl3)$R)lVg2uGe4vZChUf>;i3?BDWT{g^7ziJB@qfEwlMtOWe~aPshwA&&4tK z#?T1Me6j1<5uJJ!y=EfErFhM`xxD^4a{Hf1;oB>eh>?*mKg>+Pzr8-5pf88Q*FWdb z((lniNiz>@X(?pFQDiaM?6MVY3l3^Jv`5ccqc4+U;%3P{jm~c zpty~e%*C~jwkhM2@ndFGTxsLZzw{m>OJ#l!N+zL>IoDBvu4dJY>r;^_!cDZxpIdf9#6_^&-O9J?#M2)%l zzg01}J84>-q);ER@$@9jL<^H<`rs`_D0C{F37jARwzFL^z-E*0wPQJ5%KV?e9uIkK zGBc`=3??vTSE@H}eV?4*|I75^4`v%UJj0m(;r{#!?{xOc@c*(+>H4?y=-=q1|CdB7 za^OFRsek<;%s7dPK3y4US=pdLlddQtPDO~L82`=#OD3kc`^o2G6?L+cClef;);8z< zwdK@>ahVn+9Wv6=%1qrm$2GL-A*$H-dtQinUrx3FY^)w*gHn>>^AoC0nm* zS*cByT)rMYac8@!l8eL#Mys!{r3&oM3u{WIq-|0YlT^&-mz4N3q-%HZ3a6xd+gQy?d-BGPt*0- zSSe)mZ-ld>fv3K|T!HIa@s%6_x8y-fD7ot`~-S?5tMG`-^qd&w#4yB>u@ z2LhMN5+SxX>U=2#>_7hVh@%GDpFMfVx@1WGD>%%xhOb-d0e;j6KxZ{)18QO7%qm^r71j58uDYUS$`i6W?5qJwXoq3+JY+Ohpg+ zIIRv19M)Ow*Z1bbne+4>85=wRg$&bweAk%kZ!S-OK>w zOVH!K;*dGE-dwJYvo-VG$-4|_+AA-1j4F-;7T1wiQ&LltAX7uw92m7K=lphCM}$o1 zU#s`;ulzyZ*sJyI1BK3onIq=JOvyb68CC}0f8+0uwIj(#nD^3JbxePIPeSf?Z z^50{w7h~?DuFsebdIH)42R@dPo43poWzAP^qcl-d{N}6@_^E!|?1ezs8T6fLIk0H) zl{GS;9VN}#<10Y8)NitiT%P#>#~-pBnw`8USoS7>nxUs|mA~qflme)grp1*>IL49H z=5yB<_0yFjPK2mYC{KoPvj9OTFO zS;bSKDn&Q6I!%;DA`haHC!^c2anc{}pZCWRz4{=A`St6?!HQx)e2gRA;Agn@0Om4o4<@)Eyxy;;Z4f&zYUAtRiQEx$J>NJayFUPW_V9ae8U@~}0& zYA9E1exuD{18#-o9bNq*n942BijQ7EPE4){?%Tbs)tDu}ax~OXolYqK8q;lh4|cQ$ zZK@OchcmH@1Q+dfZ-6n!*+1a~P)h4o@DZ2Jh@P)*N-4Flma21ww;ygpwT*3HlLA*J zURb(IZLhKnKtW?d2V2_hudE6RSpMsA@t;-WQgV>o;k2Ecvp56_2Dqjhv>BJZb=*jH z)@ez$fjx~{t?%%g#eK_yAw;^k!rZx_=2Z7bn6nI93LM>LZH?0=!}Z3w%pKOAJApe@B#S>$zyGlU`@-)gstN zmT~soHM8gojb;7J#Dvw+f8$*-)2$K1F%c0urb>u1K+jTeVdr0r@2IVpvgM1NA>WMbvZ{(Gh?A@*r{0rml3Gd&Bh%*I62-s^wV#b*1{(3uWhVX{?Jr{iDslB{m|Y62T14u;Y~j$YV0+P+BKC8? z)Bdm>&Gmp6s!>oG!izUtj`ryG2eQuQ$-ooAV?*?vL6)o5f`w20NNQ1AQ`Ft~W>lU4 zR)t0fh#M1gjs;crgl8XyNF4;S>_Xb?iRSPtp0_Biu(^Fu24_MxvgZi>yFE)jq;#f_ z!znnY;_`Vl)9Rc-xWgR!a{K;Y&vo+R`2W|&jllOGE@pq!>`RmAccmI>$AjkfzGUh# zzMzwHVE&aDWW%#4m2R~51$(Dx5nZJmrLM6S1GX7rBVJQ2iFR@r!L2hrZ^D?T(Fx8G z_~asf_Fd|~_x54l=6~(&{P!5+c1um*_P-sQCc}^Y6pLUgH;Vt4IC{(mqD7543*rsrlmoS1|w=sW|9|SXsb1>PJgFd|N5lcuEwVnsC|WD zgZEC9OmxaK($O(wFZa{BPZ-O~wj-Wyq1%e#o~*M@O?#!B>{TdP*);al^YJzO$0CL00UK%_3n*hhDguah`WfHcMaXj$Vn zOCNU0ATHUG^_|6HehlozmFwP^Pc{zMcQSLJY2CjBZq8a$;&K za>8H`5vT26f&t1rl#+Y|$1wh9QLBL~ET2Aj(?xZ_xcQYj#j~l$Bx4(xK2N2_d|w$k zb8!3mV8gd0IP>O6{RRbUP4lS}^#V2rF!R=M=Hv~6NLk$-Sr%HXI-Rs>=1LUO(k@1W z<|{^zNq-U6H3ZlsEDJTv(>2V_&?w3xe|sbpZUP5-@!K%_#?+Bqba+J7$;m!Voj*eM z^yWlxsXZ`+31Zsb@^)^4Y&_Ipq+DPEz~u1b{>%x1XB%0IL1p&o2bnFO--lY*q-@P4 zE?>_`q8sZbe|)!kBl^Jg3RQZve}U0dwPVh0SoU>h12UuO+7Fw)C&Y(M&nR>frzX07 z^LL@*nvI62SR9nOjr7c!yZI0)`vPr%eEpEg6*HxBO_sU2RJQN`ndYkYnBJ58xu@fq zwyCzcslWzDYh|hKA?)XNxiJllf%cC6wY+KTU%&S@YhKAf41eymR_XAZ1>g2K>oCN! zcVsY5$INJzMhD9g_lMOS`s7xmzp)m7gHA4vXEy9Bw5u= zx?Y)go@@59p`?`2@XjAe7n;m<{MOT|u$CqLFlDl_kOZ+ru7NzJ(KFrPCABlG+pQc4 zbIz+ml!0%5LI;&$*)I3HAFkh-b{Wb1#lxw4^k-)lNAEykfWZD3`fres4GO{IG|^Ju zFwSL1o(8k7FJS-=w;WpxOTrPyuP*sVkTRk>#Kx$aJ$W{$qw#13{zYtCiIITR=Gkus zA;0tY2b^~fZ(9yhK3VJNK+sc??g{dCpQ4D#P>-b_W|ylrr2#gLc}-O~e|aP<@>)R4 z{4%*ibHyU6|818tw*EV<2Wzh7H_7naI2v1FK0+9PgzZ5o`f0oL0s+ysBcrgHWp`38 zY&yZ=wS8*)(}%!F^$wjMBOegjd;$8Z8G|>!w}UW|6>RV6rKu|cq|YFI3>&TWFj%P! zf>~s!(ZnaM22q&C)|C8mg@OMl9*f{|F4RGaYuW#fTCILWDU9#5;ljg5QMEYoYZc1P z$Co<16u;>}Dfr#>HeOC0GkqLXA2Zw$eW4uPRmRWR2}oRCD7;qCdN!vjKK+tA*u!BMH47h*c;S9i9Ke$q;J_zbV4fWztoRY(U0&Yw zr}ebFV;yEhRBt}!5(T$N$bR8BI9P(zL)7mt6Ax#<0u2t+f7p224^W|4E&{7dJh9AG zuiuS48(KZ%NROhDS~|K*JBVYZ`g8a;NY?zpY@R$kE`gH(30BFftHcI0msBUQNSNeL z>-77yX9>)#_N;4`X=;vEsW%zMOXFhTmYYlXC2B~;pLQ$L5e^0m=xKwh>6-`xI5nv z6-x_(_en*yfP?T5^O60O?E)RkM<>xdFW;X!IA(rf zLV~pA_1f1Z(qo41IpBfq@?LpNU=%33WLw9)RC^2_tafo&*V6sLh9rCR3PNhUC4#6s zDGg`)y${t-SQe?rK% zzz=om|9FOgHPCL8wsN-qTl>bRPvLL|Ib{_(X4(T?cbb5ODnEg^Cv+S{dJNN zA8SXQt@&H(#Z7D;fc(ta5k1~ZMqo1nV#=FWAex1<_KMU&EXsDGPGF{D**L4n8UKJN zk`%_ZVMOpQ>Pa<17)@sHcPfi#72gI%@>ouW-@2nKOg1$rS$)v2#}m5Y%dM}FP#nY9 zv@Lb|hDYRoyiPsifPB46QeMt8c1LU^bJBV2-A|;p#ULD`D&;W8(TLw7Ki^dW7&?5r z_|%;|V_!jIL5(nSggBRvk{m$IZ>qA8arb?S)vEnWRLwB&X^(*?Zk-wOyO)*B5 zdLnUM!752w8$K)Vg0=o}V{94&hM^pZqIp6%zeCOm;MeLs>Ms2OX-O-O@@`zU4&pIl zW=cgi&s%lY%4_!ip#qND+wVs!&D*T}ELQ)PTtiI^t0f>UyZl`((APw_&ELxQ49P8Y zzN5`PlPp+Bgf~rxhU_$8{)t_Xxt)zpR8RgY>UgVyK||{W9>>(oOl6&{Gor5(lJTJ{ z3bobI7L(}jUj9@z*>w5z?D>xObJU%%?ekRLbL4lIqk+wYm93xcSlyCr=1KDeYJ(-R z^f(P;QeAclXSg4jAV7 z2@I-(=qJ-@fk{2gpnSgNWTTtTEU+oq~SL`3JTDH^C%|3qD9vO$;IzZ%H@ z%VH-x%v!XT95v4DJm8QP|I%(^$(~E<7ZLR72p)yx0nbj&~*Z*-bWofikkd#!M zJpdRcr_?}W&4Z%mZB^_Y!;bO}b?2&1{V=YB6kK{jA0{X=bT>uzS1MQ*`LROj;&seG zyTr>9^=|A}>Uy&C=6(@#)b*qsO&RJN%HZSort0r2m)byncK^OXiKwj2wkdngjkfjg z%k?VRBxP0Y^Ht;19;IV7we?=lWS>)~Eg@seM6Ax=+|EnYJKWY?yt#KO#U9OtkHoXs z{q?^MJq#_R7+Ir!SLz1i(V4VuCpy66Sxa@jsTJ}Ps*4k~)I8KMF>3yKD2Z&p8f}?W z2fQ;YYMLhlaVuvr9$_g)G_LiZPD&!1 zBRZXsp$Ivck1k)A?x~R>LS&RV_;qO9q62Nc zKBCzJKu!&pSsXFl6mWsE)z*Je;?AaxTXZ?`Fj++T=Q@U-w%%D>vmPoYqskki5pAfd zVN6pl511o_LH;LrJ1Tv%a$RfE(=S~i2Wkey2&F1&zp;$g?@j5+Ti8TtI`Ep7dg~lR ztsUyf_AdBeNv+c7{BjHCC8$9jpCz~THMV%#6r4))pAaxa(#PJwyhJp+DPCFYct84< zMd_)rmegmy1kHdRIuWZkyg*wZvZmagt*U9K*F zosisv{gwkbcUcgwH5`!1PN&sxp(O>`9!CFH0Ys|LX}2VN7exev1|=5Zng#B7Gj|!E z`vaYZz`?tQl7$qFQ;xJVPPgj##5QZcx51E@P4#bp5{5e?s`zM1{2_i`L9hc&SS*ns zDZLtYfy^(K|Lib}iUR(@%+kM-ru1Vr-%47)>Gq=Hu5nz=~*ZHByNv?~LW!_7nG(an!#noZnN>KYM1gTj=fYHhUlAmvvg+X!!MA zdF`mg4DB>5()03*EAYOL4S$T6bU*^%3lKfef{oLIk;f&pSV^>z>knINk9HAfvGlpH zDrw9Cq2}3Suw9eIj6jN^b|Z#;Bs}C%%_kKOf`0nJ+;oOB@m2F#Pw!V)uIP!;jpkpk z&_5qFfa~#RK}q6fAAY0kgD1R+{vtY`48pKJMs=(ldKIks+mc2)hYa{EboW{QL zDFaWs9p!a#qE^Wv8pU+&K|I3tcQG{BO$o6hvrW4O*sF>6ew0fP6y6fE7xmf(Z(*V{ zZ}FbG!d;^}G$}@4Tjd27?PhE04#*4HT8de49H@FvpHqlw>QkeCuKmyVkR(T7kHcI& z1qNs@{du)15k$y+8|$1DKM+gP0$CjLh$B=qk|$4mhZ8L~@^mg%Z1k8bzcmi8^^bX0 zX+7Ry`zvxhke*5vDCVUrwG-6jdZBp_3yckPovG^|=UX|Nx zDszzRCzWxTik<3Y4*o4(OcjW6olk{U9^E;O}7e@%gJSay|_$-iQx$uXNtn(r@Ou9k6cJ)(T(zwy#{W z|CxekBq83JZl^9IQA`&R3jX&x(H_R~wY)8}1D6c` zD&9|?ol^$doH%QfNd&L_IKV3RapU9j0dn`{kM5*jpHsf|I$N`vtp)} z%R(Bf{A@I}Tb;URiP5KXn=$S2wW}^HQtl@bt)R^OMlBX|@=T8utX)=*H}q#_^DFmt zV)!&umOY9g(%D8+LChp&PtRNG>!j))%R6?Tj|<00x2dHyqBZ*RTB2BMy+DB)+P)`AjuD`)<}OrWog{VA$Cn!iOdzOdsD zG!JS40;|?X@jOQUpKI5n_H^|~&}R&OsTnnLN0+(YOlq-Q2?P$qqwlx%FSYoVi~%N3rT&Dc`^QX^^v01Jy|?f*-tmbH;RmtSbq)Sn zlGdkY4k+n;7Tq$K#bflLTUI-HXHWlgrARB(WlLpz0}<92M|KxId*%Ftols+3{MWPu zbZ(K$o0eb&oSswe(N#{bhl2suE=yUHQDG@*Hp*+Lt>X`G&(F4! zY9>vYfa3ubq(!Lmn>u91m{O1tRs#H~XclImo&&EBt+DAr*{WkpFA~n!s%$>^rKg0Q zK?n|$Ur^40WsY#t%r^fFi9-3(S9{Q3ksy5AiDpGn%2#ygD01r+)L@P3sgbd6AEV*k zP|}>>PgK9mTU7k$%B}_px0RGkzZL7Bj0jm1IxEzvI)tI(R8Lrnek|KjC0|*0Jg~)+ z2L9l`#Uivv$O&~Nmpxx64Xoky`C-(E`E2^bH~OMi4X3Y-YR7JG%Y)h@XP1y}DtZ)< z7}JVabgyxp#2I^|W;Iqc8|rjd{66V-8=P#0(i=K|S+W@?)%}@#J@<`Mamb8#MyDs_ zKYR7Gd%*Il2;e!8UloQ2`af+J2V?EE67YVjo6*^Y{g0x`f@uc}3q}glb1|x~S_>Gi zW)FR))47}&Li61b-@%4Gh$7nDfO-Iumtu9ddpEoguji=zGBSxN zMDb#EaIZAq)SlPt3ZIa`=q%iDFlq92K*Uem-q6h|>M#TX9Q}~B=l+zR`hrirdbjtA zw{5RIZrMcV}~KcKt6M20zbOs|bSH|8=hgXyT*Z3_Z~>$gv)ad3MJ>d~I= zKi+nTwdpmePok&(ebQyD9$S>_;b>YglrDmt)t=3YA6dHY&Q}CnD8xFKtSw&=hZmA3 zEggm*N7QVK7+<$7W9Mz#4hGO~%)COhwTPjoOQn`nDYlcf)bhR2p0wosd&SU56*xJJ z#&46&xjiPcIm{Y=*oa~t)|vc{dREL~8oWO>vi?nkB!&p^F0s?oZ7^k?n|uAIzVlPV z%xv!xI4ISeMZB#r?>aMNznExv%J@&+jD!qb+xrz*|J92P)t1(}v?c=`8-n$S_ns_Z zAjzuYKnS{499m}sZjoNw`G|_(+Jp2D+zrjHce`Kp$H(O=XPFv=qttB{cyXEF;2oC} z4AC|L1i8HH?%M1*1Gh~1b>`=0OE3|xh~>8&B{$Srp+hrBCuc)z z8m%NLscW0op5>~{^w$GmNqIHIsinLIrO-*gVfRpx5#u8KA_84o-#QBUAn~V2ns)46 zo2~XL*B7H9c!ddVJRL}x%NXJ{tdtDt!P|{%{La2(b0h;P3274qyRLh7B4wa40Uv&U| z=Ps=)z+T7fA0$&qJlq&P=_n*dmfWU4d+5Mpgfj?8fG7+9u{hO?xF4BJ7&K9(f2tMQ zs%Te6rGPnEA6hWch`6MLy2n{LeGn;dP&0f4WXNDS901+5$V=S02{&=6jo4Y z01TS@>@rSY{X13p_s{sYW5f`Sna__-}5e+x$q&i7bw4;NX<^tefLti z#MqPW-W;8iQb7xg6bb5_#kziyzi~JTbwUsJtfr#Vz3SPon^CCB=jG&$=q;VYe|9sn z@gPjga12nN-_`egi{i4`x-?d(Qgp0MZ$TA1;*@v?`5`&6i+dhGtMM-BWH`NKNa1NTaP_5cd)&0-PxznaP;l^M92}A#vfmbGl^5W^ zr47{MF`2Z~UWJUT$gX|4F23kqm!Y8e2n1^U$K$e>-Dzqe_1ZtOs^^4;J<8)VKGvFI z)S9w~JebuCJEXM4fOr1Y!}`xxCz}v3)&=n1r>matni%txjs3KMJ+{L6|11jQd$y5_3VGtK>vCD#8MWL zGRl8)EjiM1RJ#BEd0dSH);;^r^pva!oBR@9*a$ z@SiUVfX=AjZu6fFR1(p{E-8Pm<;4a)$m;T&3>}{*-w7M&svjRx4^{6*cT~>C@(*qg z=EJQ|`69?0v#mJGh)~}npsf@h~94c9tAv$}{pXgqF-x&|kNN@(kvL)za=xg4L!TY^i!Jnhoc^su58d;ns52)uYSG8 z?(H}m?{&Q`?^DCEPgy!H`_`)b-(+D+&Fxql;&wvvr387RpYIm@x?0`3vKm~+%MIkY zOP?^Phy9vpURsugtZJW(_;FruTwGw?o<^~wVXTnjz4E~${Kva09b9D(v0TbI8mfDP z^oA4BaO|{W*MM>&$I{dCBZ4{gNcXw%k1oM+l1KJb(zBK1GifVJg4eYvXx{ClCjNS* z>FD>VV06zbv;6I?0BzIJ-;f&Hl?U)%xd} zar%d&qvvaJi~ZR~-?AKBm1$Dz7^@jAuD?{~?H97UWHyHPlEj*gve}4GLq(_oNr= ztrny$(63n(zP6nv4&i{Pr0VUllyokb@36KeV2yffJX_vHoB4dv?xb6sY(W=Rtw%T&S+rR>VDEcqBL01 zkXIsnk!ZZ@k*4kh^~-wx8|D3l=Z?80rajmo05QP7P4`UI~G4JmV3kS-8%t$ zx8E99#0>8B%xOQYd*CKXnzL~>@jtw2(vp1U@?a83{+u!B(Iw{o$mjh z1OZ;t9ntWQRkEJkHw+Xh^%6 z_(R5tYi>L&`rDH0ikOFBYx!9JGf}{hTebQNzNsZ_pLRkXt;*Ra3OVpAG{Zic29$=ZHW3S<-zNHm=?5!sootLBV9r{ppvld)ZP7e< z(Y)BhrX1-Ky?c`>{|`aM?Ek77P!Vkk!-Iv?n>ATd=Fgm&%I9 zb3r)&Da%BQ0@}U+@_p3Hc}iV@FYLKC!P4-HZnBcgW@+_MINLu*{Cx6|Jh5Kt?v#ri}$uU3%c;un|Wrfg~xVVus1Je=j%W|<)7is5=x1y0Lb zSN04?ujkE9hzAD4TTM_8tPNwbD^^j_S3!hbxoK>kyVNWzEk#kUMse zsn?aACy~gS7n;6)!FAOF1|D7j9Pu46A9!?+o9!z?N9F5>wl&jc{in(gxY82;%lFK? z;!x>*GG3qA)-^!BK3h6{Y^nMQq31!2!sU23R(qPQ(-jycF51n*&tXmUMj-dX_d)h( za>vAx!4hhr>S*C<-Y-GO>!p}CAZz*pu{AK*Pz+&j7H-NW$f_7!K&xqF}*Z zvQoj5;+@dpA%nrkJ0Y+B5*`!DWhCSW&Od9`SS^VBZ`bhL&gN1A$tzFBDEHyD0v@U| zZ|?1=SfpT&fOfX#`a3c%=eHa_sus_?9h+b^k7% zwl;r4{;TBLzOrYQ+|mvsWb{r&5`^cchfi%*j!eD4y(98aUJRl+f+N)(-1TD;AO~&S z?@bR8MGQ-dHXZ^7i)y=IMQua$5BxL$>M6DOJM@o_2)8?DjquRQ0$}{ZVW!+wk?QU5 zCt~kuanqk3p;R!^(IcG%M9{0R`!NQ%>`v$zF4-socP{wiZR~2=-JWgx0CQ`CXpm0_ zKaQ#;Dgb%+w`pA9FCLhZB}vnzM%cbi12IX|D`cFl!Gw}qhgBI5PVYpgbj+wcowe1u zEmavAhJ4vfzvyUkT==TZa56jwUl5p#N(DQRq;jO%OY8L|RcHQseU26R^V(s&!7EE^zqgeY} z+XVt?PM4$1pVBgnBZ>KamLw(BF4J+`Zf-LL5>a^Gpf6=9AH-JDTSk38`TRSimRyDF z&Fik52zGJH>6}|&ekGpsn3Su7SmRCKyMtQdf3XZaH)xzk8o~p|4&r%dY$gdH@V>6o zNbJ5klZ)B6K$QY9Ea~g3EnKrHe37K4oX7~*@tcr~N{$qspyQ4Woz{(S%X}vPE-;5+ zutiUOLdI(Hio{DF{Do*SxQXQcQK;RPZL5}raCQFqD5F#{#r(9deL?#NhvAm-stJX{ zZ?o_6fugr;#WkA(Q*2m+wW^nQA5lBo!^)xKVdTfg=8=Zf)dqs|^cVwHtB0?2mb;~Q z^S5CnT90$mt-ikRmRZpnyOJ40gK5gpsAYP$X{WBTFa@6;khPi|=Yp!sZ8kcCBf@|| zuk=HRc+u_3hXze~jyT&)SC67d>BK&&EvB|A5*dX)Zl1P?OcvP)dH0~q zi~AotW-~;KKYc_%DTK^<;Hcr8DSQ4{O_hE&%Y`Owa9UjLBVg|)T(S&eNN}Gt0w2-8 zn6X*p?cHfM!ZTE-kliJ9MsB~YCin{_yH;*JN0AlokKNKJ#@`i>gMEs zp)_{|qI6Q8e1~lINaI0ZWW2DN?U{3o{NnRiZ%StA46kv%eV7W+^PMPE@WiULBUyjV z+Z@YnziVNKjC`lPGf&%fu{0#`amy&JR;$K|4+}3rXoo!!HVc4zDC^sXOx6ZR+vxjL zlQV}^^Ak>EPUBp+ozX7OhvW4W8UGr@cpj8E0yv4GwrPDrJB=cKuBo}SeOZ+jWJFT? zpk1bYss>R?GP4x%W1KDtRuTVfONL_IcK*3owW3&Fp^`rwX6Xj&K{Qws11v+wz1Dc4d1-_qjPUC@ zyczPbO-h|2jbxoB%(9E1E%q{n3LPQ*IX}ll%nf{B@v%D!X<_M2RMWflNn(uW!Je^V9tH47pAM7z;XZVR( zQrg|p@oZe5TX0Sr4z7D5*t?P6l}@h=CeIKU&~_LAjL)X=NiTY^~tjUCd?Lk-(m(SaGOj3wOM z(wmwBG%mwriZO{*;Gux|*2%Xee&}h^NG-}C}Zj>O_ zjZV0fbejuhLtD$_B0ayccXx?!wrc55q0+UA)@s>xiA|oM*Eg5Ib1XVL33T^7$ zdVm4FHlV_{6`Ht;D<+k_M;9xGVROB<`%8nEqm%tc(1B{*!eWV z$B1qLdoRa&Ss58Z!11-9zzk+Oy=LRuhN0uRV^q3!hAbDD-phR=d_D11TCb~jK&kPa>P173Jg9Q7wiwkK=vUC_r_TG0imX z-n#q(z})}zr@pAz?G>3@kPvrBV-m(GOu+gX zA{t>w0{t8dv|g9R{$7-D3O%&h`E+W|3|ij|oe_APs|l;iTqzdM=@$jRu(HYR)te!nP=;i?m;qs4xhNp9nmZB*qLK z9EW>(J_VsHy6=r-1ZIo*PO;8P2+!#@XTE#9Avk%we~Cf$n2j^e_;nG`eS7YvMXx6x z)E!LaDGlwfh(YfNR3*cBY5xo*v-2wE%M>vOG(omg`ZM^=`y1DOulC(uMyM7#r119Z=CGaOdwhD&ddPUQD zqyrv*8jGy&=@Uo3CNZ6WvVH>NUgDS~dyz-aJ!Z9V*dm+s-lDm+HRv0CS=`P;{H1G0XHW5U zUU&$P`3-_2vD8tRQo&f!*c<6d=GgLqSjxDRq(o22I4Y1&hli_uiP3j>FQds?RZvQk z!)ZjTJKCZ7YV@VUAal*PBE?rHDMcZoA-?UZT1oH6mMZrGqJKXP9|)EtCgtbO*eXM^ zUQ2#O!~d)(orEpCRL2PV*!9sTA{=ijr|;=LYfIHit) z+Fck|JrHZqc}o(_A^ii?DBN_3Dh;W( zTjPLqRO|XR^5q>H%w%>PM9ChhX1jr<)LINFGX$Z^r!mGOVK~fZOTz<)>g03V=`7kM zy@^NucfSkc?8mr`b0;Fh56p@l{=CP<#8uq=Y(LBAp;eGi7p2{7MLw!|Agt|%5Ka6% zcaNPmjNf*%*6l|;gM!Q&nf~S-f#XCBw7z#4&ZR&`P%?%m86|B^WyRm#S>0nl!#d~~ z%O#&-GqgbQn;t8>&0+$@{f4+QrCiW^BfF{HOVHz^%3~Ea?1m_G{Ia{Bp2}9ncdeH1 z=hb?Z-YN>?$TlvU)=H~8lyO%{RubRqzLwTxsSN|N+*p#hGXBWF=zQ!;t3*|N*B>k# z&CPLQq>}AQ*CTc{?ymHXVGS0;~Dq%PxG#edwkh^s#|?CF3cIt zvlMcJSKe@E*YHzibSizV5#+R#J3$L3uIDRZ{yG?2kTRjusy5tP5scgkoB$VdZL@|Z zj^3;%aAzeg21{w5^0MP7^89P+{IDj=zMCBk*55<#Wpv=kgXQ>^P7KD```_BM@H}qR z$%iwVzs;a?VlwYb5$g}>J@ycpWlG}YqSVnevv`aC*RrO_f^^15^FFCwA4p^ z4qs-|xQQ=OlXe8Dvl(ZK~OuC@GsyusHi0Y)U+OAP!DcUNe z){KMM$JD@E7Jo)H^FxN~B~DJ{QGr?P+-szGx@=$%ax$}nY5`lFM zyc6gWzq&HE63+qh1TM>z>BC1-A5U5skL|^$!9>~+EgnXapz~6>9DdlgR;)+(wsE+9 zf9%;{%5aR%hurtNZ&&iZzC2h|h72X%P(rQDT}#d~P9}c~&ki)wW06q^nv_@hEnDw6 zvqL)M2Cj+8Id(7N?M_dZ`cQeQjg_7UZY{D4wM|VKcQDS#WO7_sMDv-=hyJMA`Md$= zIs|q`OuJFTxygu0dcVAj7k;M6=JOY7=D8li<>_$+V}+hlVjKrLI+LYHcw=k7uvYnJ z@$I3yjbrNWqY`d>@(``UqCETDuR)98;;pL#`$dkcPs?_kjq*}l)06a}xhrLPN9HOO z#gpt{Ei=7qI%nnaNY<89vlLa26F7do^_p1MYsVNac_xsp5}ip1Cat2{a6urb+yXD0 zm;*t#)}k!0j44ZOh!dChN3I63y22auy)Wl>I|_ALjGrFeSlo<1zlM4XesK{v1eDkJWrh`iSzBP$dg3pIk= zLfcpNrwRmB7@SqX3prA~Vzi*_Ux$xIQ@h^E2nuXEfj!bHzvbIWi`@q_m}Wqm44);D zQ4S(?dp(j;qEHX#X68hhCHJW&HMv6!2V#p-V(i-Cxmomq?+$`Knfgv)>(}S)W3231 zYsG&uMF&a47s076j}Njqg_EtZ4n8;3}wDvbC3Mqgm5CoJU1nb6&2~sHhO#0@lT7F`oo3#hcyAUxCu<(@{BZ< z#~7#VRo@c3K@anL!3iqkihkM}3oEncu6<5O*IrZ|l>uRi#a28^^)Phg-I4Aj##H^K zI&aX))7dZHIrJl+c|xA*q8&vR3dWzgEHv4<;}Vf4qv`9N&lXPa!9&WVzj7T>Ch;XS z;s>USL{h(%g-4Vh0cPwZ=*l71=!>odH!bhcaSvB731;}M9nPUpz*lIY7B)vj$mgJ( zE}icLS&l$WeN=gsOWsc6uWKx)I5*z@bTUz2$y9M;O)(evQp^jNM>Im7d6@rc%btb2 zF0Fl%P4eybj@Dw6XF>5eS($U$E03J}(nvG)xLW@-PB_2y4)Qd5gditKC)gNjv$0mjjrs68EDbpk z@y4>}hM?`|DXN8z_ZQt9S5Iv7mHLeoNe@o{m%%|Rq6O;Khz6%thhbTBy!siM1LHo+ z**glyQ3>3+XrSFHOVoE9McB)-j>>bcD}TW2fjo3?_%6L6HpE=05o_J~e(G9K1l~Zd zt`_=tHc|$81VDhbuLr^mTfH#P{+9c@+`gbrV&f`5 z)48$8cr^ZltRP$zYfyZLO855{0g$wsRo%t27zjz7)k?^ppX-k|A;Bn$=2n-zj@(|y zzYo!OwIu@kdh+ly%tMM$@YwyO_F*u@LaWqVqjTd$xa=?NYIQPLyo|p?N1fwRyBgRm zy*R`?vH(bzkZ7Opr)cEMH*s-n4=0Pv_yaZZ)M9n+2N)~vXOG%LVZ|HfJ_e3nBMXe= zq_O$R4eS12LcEVFd8a#;9WYNMW@hGV&%C-Vl10}0`(){F3JzhTmt0J-M>$q28pZ3< zy*;tMTSh~w`n?tQF{C1|4F`X*ZZ9Www!okyW_wrfK;!9@(my!2zQqn424p0pTTrC33_GA>_&XxR4(f* zmvb_e(}Kjw-*Xi!-SvL$ePKz=<3nX7bZVYw>oJ2KnxE^*>>*OpzfZqLb|u&Boh2mJ zSuHgMxJ9wP)7Ogrc51xj3{hNhhAg(C@q+itUP??B$RktpdsB35wsTsjjF}t=YiSq_ zo}nj>avTUS>9+9|&jUc9n+G$ceB7&fxU>%SrHT(y_d8LqPzatgHOvFq1Sg0d=5HrKJNuCFtm!;5X5yJa$B zy9-tk4q|jZTwAMj&$-QW=}quX8_%h)L9a5+=d2ISeUk;uw--LnDcxUX1-%WmoRbtD zLli?a-$9%Za(hXm*zj?eSq-58Q!Z=pEBfb*_84fn>r;Qceezov;QD%SKBQW125t2_ ze55_Fy=$p#J@Th+acCthagcAdgvoLAo_R5PVkGZ{%_71WF{8pB>b0wL_PAnq=*_qunhl*`?Gmc()`@W5Ox?_Qk-4La! zy^ZJLM-y+$c>Ax2oFpn|4N!Zdxc!}C9BNFsYzlFH{oV#e+E?j8kg+wNK)(cO6+Otcw;fLxkpS;( z5Of$xP+sX0U8~MX5FGz{Bz;NUv7Os#*-+WpGbTLvLs{9i-Z7 zw`w?f@ilQ2j7hgLju3*u``h%gu9!ea(po~gwKL%DZ|x=QLq6N18A0W5Bk^fZeu&qg zl{HD0a{0B6;xp53XFuf*kf_Ajm$yR{5>UrX>xoNm_>2QLarj=!w*Y?T?PZJ{@pqm_ zEy0KU(;xZIYfa$+iC%R|Sf)CyvziJfhjUN3jBU3vuUvN0Vr@aq4ps$CB%Bh9j;jdH z9=t9u2NUS?AVs~b+U;H<+U!7bugd=ni|*Ih=B1$LVyy|>$euzvMLFV$&fv9_7Z%w{t(mOMW=SnSdnL`JJ+*oTZ`DY~5P(S!|scI!!u|zF2v} zN4Oft51U4SQKR(1HA4cw&>)Dj_^%EiFp<9kJ8b+&;bOs*Np~0VD}FzDZ|LJ4D`n2s z$qDM-vHBJ0H0EYOqgW|3#C2AHsrYDh0THGbDxGUiJq1ZG*J>^@tHLc~+Sa%^KNly4 z_o8cWv%?=AYNyUtMnxPw7ViibQrSN!$RMGhOtP(?dU@A~Hyy;`2k&b15A3ET{Up{J&d73Zb2T+%~B-%*W2%AL*@mG|lQv;{e1+i%W`3lFP|H0$X zWFuCxz3Sw6g-)vqjK!Jg+wsocUd7{LYPdSp%ATbDbo_u|F?RQ^+R$k~59OZEfdIMm z4YQI=z9tPMWZ3mXg1d=mKU{9qws8&bGznV(oja~-H*bA9_Sa{sP|BMMICUwQND{utCS`q(_djcxeKsJ=_!<4g?$Yq*ui)<(k`_G< zLM63LmGK>MV@dd}6Y1X~i{R*Dfm)gqwh+xFmA5%~ALZ027)>E9)lL~|QhtN(xdDX_ zsQ+1vx|s5525m%4cS#?4W#2~N$R*vIY6ggP$AbA&jF?c--Im}%{!e7vo|3WL;sG%G9cnF3F)*+!jaD>kt$j>hmb@gKOfV5(XhkEO`y*E-5IXZ8!5a-}9D)ih zm;QPt&G%fa@bE0^t`-R&+7BN*aeLuv6!MRc2=bzs&D{{dQ0qUBs`y&mXx47rk5r+! zNW%RbU4X=HBFJbt%IG_=Ql0;|7=q^c|80Bq|MnNjtKmzdZ(qJV^YHZC_^)WMiaI?p zXh_VZxG0#w5uH9F;C38B61&Ws#d+T&DW$YxDwS_XGGEJQuJk2J$3!OhF&?c(sF3^S@yoGw?XLM?4`Qe2P4g0 zFMPVr*GGHt-wXclbyq+_=Oq;@-Uja9FT?~1e3Jd%8jN)(aAUo1xq;M8?C&3DH-Q}w z_@2A-`6j_KQiF)^FRIIlSWdgc*0EfCkRet!Wku};b9`DZj6+fSp`2?5rFDXq+Naml zm35i)bYpz^Wz9ig&)So(vOU9fNnP4`x4b3E-LN%V0J#}?$MPT&?uziiQ&+e};u-E*Q#%=M(-4bsyo_2GZ z%XnXxa+lmNzT+SE_Zgbo2#T6Il9nMn7xu9|sx-cQ^QkSb)w<}W?Mjx#RRzP+2%ypn zqDFMJjNG=!A#(f6%qM*9 z+uZ@@{R!|}TG!0uJlv6f$G!b$FRsqO@<_OYcUrj|gmyPY9TeBNZ&7w%m^|?OT~TrN zL{hR1bXp9{rLOmuFNtvR9eB*%QjNInXw2V1Hli4$paNj0bhf8|wCYITa`S{br3H{2 z8Y!m!Q`Xi4IwhpI;Rci7#BPf)h1`ZJyDF55y2i&8>2MAI(m)%v`7$9VUFjtLHD1#G zMQRWnjY)U3iv!MRT{ZKB{&!u~2Zh>D;plnfj4_=*M;nxc_m{jL{O4?RP&lEOrO&5V z(xiI{>{1B#tV2FZTo&2QzEeKh)+2U#ID6%BT@{N;n(3^W zIw4>U%QvtwQNtbWC}C`Bb|+Q=R2XCbc&Q(HWPvJ?wTShcxQ*#F){CU}FAGBLdLAOJ z1iQ;btga4D7Eik5@n!42y;D|X-aVZXeuVw%WIS?_X8DQD;SJ%vIlS4`SGQUa^I`kT zu3=^^g*rRLVHA^ybH+6XE=!Opb=qk`>)17K>Bx_ZHV@DQ>)Laa@kraUmwvMT9y;te z*RDz#932&&<{gr{)~l$;>g$mMnqvSWQuv=?ghT1Jd&fre@#C|$wzjjIn?U;;hWldY zt)m@eMD`a*FoCJW0yg$PHb0qLJc!ogMKkLUiDz$20~8vmH={KrPv)N^+8bbNVib*$ zhZ6bv`c4}**qu-j5)tW}6D)si)*2EJSnZFaZ>c*!O(LATKH`eucjug6S~`$kbGih8 zFINh5+&q+XNgmu2p2O9G$%JH{HKDEBjrzvMXauRE_p!k-YeJ(2yu3s0B|-vStE@h8_n6^7g<-FVVg_^wvuPv&Jy`eA)Ny6(q z;F-2S;@B=F5}?X-ut)OdUz>8DS~T~MfOqH^l$fzqu>sPsRpt%w`5m-HO%)=xq$F6ZcuW^>(5?VS1$4`+{fI!YaL zXc}Lmeby}UY&XEx4L-qm1s#Zs(xM%AfB45w0pPGssFSNZ=Ti-X@^OnHHoqw=> zj#QU8Gr36%xV4_sp|F)fpe``n&+`oOeRWYJBh~)AtJb{&&BDTR9ll7Q-DVa9RP<(` z$(){?K&dcDkuvPa-S0E@#D1LHVTDlS)=~#~G`H>d`Th0)=@B!NrTkYdEjoJrl?pBw z+qB2WzEM@WYfo7c8@`8NjtgrZNCEAw?XYwIL7E7o`^6O=kSn8dSuHDGo-EdVInm${ zh7g2iqqe;XyVJ-LwuziytK8TC@rJ9iA4&0<7<^L_;>kuEEw} zgHYG2`4@2o!`%Qn9`uaIy{>ez-BT4Peh8IC4YxCk>A19eJH&jv+Ad=Ms{x~2q9Lh^ z&$BxkQ0W1Gu-Ul)ZI8wwzq`4)pR6Bf{A_e6^U3?EXt-B0c{Nr-rro4`KZJ;^x3Ay z+5PK{(&s%u&kE$FGw58bQWlIUw+o94muL&$*OuT}@0Oezua6>7%#$ig6#IlmGEuEb zCdHkr^-#Zty*?ge@CM~gH#MsEd4Ll$tLiKh!>f>-@f8P)XrycL@~#^>l=m2|@=uL@m{S6TUbJ_dLWa)Q zeNYO^fo{IhpW33WDw9W<;Y?nlzseyy^mEfq{dAygT(49fb)o_pz>U@G@v%RB2(QLi z7D*i^=2_KCzb7qt(%W$S+}O_h>(q%{1(NGS^I&8|N;TpwrOJWVyk%wIsAYG7QVH!z7;FOa?sHdb4l zYc(*ZhCh)~xQGGBd`*peI;6&um3o-R|B>C&IHH(J3*h<6>Wm6hg_muD{3uKxg}k06-oy*fFA=3~L2wJ6nz45k8~Gp&H@ z+1ZDS-I0jb*MfDx1(l2})codzH&`Z_z1U8kw!r&%!>44NPleXX7N})ga?=Vs-_iNx4j(0*$G`Po{$?Gq9hv3=lyZ?nS5lNFXaK!td1Q z_qtM>35D(FaQTQU-PQWLebM_l=r48DK)6t|(HS6pzsN=Lg#m9cBK1*0`z5@}jHvDQ zK?&q8$M&mau2i*eyx0;4i;#^iF)>oXY+d$lM-^n==(tqA4lcv)@YBG zp`%j>vn`9ZimEXl3zf&81;Nnh)vI%9)K~;tYN4V9dt;d;?E(S_L5RUQ4e_ zw`B@xP!7E)_~PSXraP%Uk47HoZ>H@98`TD_Gw0B;_A8fL&;n3o%Fd^@ zFfZM}8zT3@qI2W2Gk8DAjN{i0%woaPdF?JXyCpjt=m?G8m&`-Ce*6;rmaqGc0htm4xL5JF5 z%dYJu#8}I2sNbMl!N*ZFj z2Qg`t@5M2hRn+*QndVDhKLLS-2Lx7IgCi_*utE||PjQrTuQ(oAQb6iL3wXgD9PForuFg?93Qbqh#6!+KW5_Xd3Q4?5lqalp^@@yWNPLZ;C}rpQ^xy7cN~2jac%;3Z~Oy@INWW ziJMU|tKTDjcC^TewB7WdP`lpKEhf+))z$=C&q>YH7U@<*O1%u(|NH|fpGrFAs?17{ zqVgAcU+SL{A+{l$QC(jpO!GQ7KG$NRCDxe~5S6JZBZWf4&Z%Xw<}T21o@L_}EJBHl zwhTXsBIJ)ua-;7-#$n#-8A>Wtu4+l)a^Z9J1=`>x@Zl7G606qxAgM~Jbt&|eOit6= zS?&>`Mek&Gqv<_E23N$HnaC*l{XYd!70hggG8OR04i2B~=hS8XnFk$KT}mfw1FIc6 zSi%xN%RQHvLEm5{qn4mEokw^qwS2xnS3DngoY@l-dPCCIY7V?v`gxTFfr@f_R2rIH z+n_Ptw!1|AaE)eFVQUqgxITI4-g^~t=nl4A>DtU{&CKhXr$Q8Qonl17H zMiBV(#XDwb6=45fn1Q(MMK}Tf&|}2r@2k};${O;o!!VcEs5N)NT)DzGTtBcc`mF)_ z7xqyQ0fFYrSFei)e}9nW#SnWvrX9*$Z8YLbyuzEM4{yR{H~aN@EqB@MB9{b|QDPi5 zTD-@igig5B>Yhor7yFR?NzEmzwNFDJmZr&Hm5S6TLdh#RpyD$awaCz*+(QZQcjeW) zK1={5?_1YUZLN3Y6hnng)tM8>bI*rnO6EXl?vcwQ&Dqqr|j(%rP13}D8Z}2mcmE;LWPC^mw0OoyA zktIV}OdhrdTwb8>V9FTmKb%CGEUwAB6#d0WG@aj_SZ*M$k4EncGtlh;$Xn5uP}hA6o;)02u6Xl zL-AH*rJdJl6}gKL{C`oEHRi380lJ%nO7L8tDY(8y^$Ebe&8U#M{#q}mHAQ78^C$RJ zSTYK&%sztQmicNEd{RPs2#!6ibUA;E$$XQq_)<(~e(ec3oh8!dg|vt4o?@~0oNJGC z*+j`S>lh9_qJOt2bF*k{ef7_&0~+wbfc$8qCk&?;J2MZatd_V+q9O|Y3S673L|hK! zXmb-cmonA9JF67&ysNWH9u@&Emq*MUU_q9YfNnD-k z{I6|llI<}_K`^TaCo_PKoK3au?*7_*Mj}62AU-4h5}Q%uO%ju~P$0^|j4QKI1G?IM zi@JdpkOz%O8-&*$Ocp~$Ydw5}1sD$a^=_8M08MGp!duUczY0Ft0e*?W(LNJX1=0n~ zRl~Szs%A!Q9@kRfbrz#V{sh{C8&xxxM>Zoqxis!Fww&GVfjFg^{ct%2o*zh+Lv{M> zD8PkB8T{bSN>z2N*~^=VT_S$QQ*C&>&Xy;gt+g;|c25JM^Bf_F?T=3h6dy8P=$!`& z?dZirM}CNr>zzH)#Q|r_ckLzEVSm-Y`_j~;e@h`u?dxa|^U*5he`CZqDxCv)mn(ta zd8gKV8?v$NsM?~g^6L75)h(L~-`hABZIzc`5dam()5RG{35c+1_MTGtC=zHA$af~>#8(S#r=X}W)!k7wWT$d<2PRR! z89T1xV-`{SHiH+2)8M5=uWY`K@aiJ);gM~};hnaS-escYVTD7S%m6B6?iuEJ{d;#7pl zSXjP*0%eQxqR3O6s6yXnG-Iww2s|}^FtB~-HpOI8eg?E+x6AA`2Mu$-x72<~{Jp>h z4=N<}?!140Cm}VTOWN1xs8#vnB+wb(N@~>gVB>7Mh@DPNt5DC&(X#)&+2mUVgeg%> zE{UINZaDk%S&s1pxU9fb)d#BQqDY+~@kNTo*ol*eYQCCmk0nWa$c$Y$O+Tt$O64Uc zzZ~z36%BrgmltN}H|;cJ#rC>fh%FrWfW-aoNlMD)QaCLAcNSX=X(&x-4JM?bl_JHO z%oCZscX0EvYgo$zr++tlKao}&4wUXPhLjs5+9oNQ^pR;><83{YwsC?7wgX}w#xC-$ zM=4eDNz1zE*}=)TllyX1*%UPVmvgR%T=84cwjP%|LuD17sijBDMT}C3G{qW~QjFcc zi&eQ22f1b#Qr{I2Y&x&F93_r_&X%Q={LF7rjZ|tP7)qxvILt4VNsgVrTeG^hrs}Kq zgfU^#tEjyymmM&kUz}gx1ja0M%#Ng3I1Td0wUZ>FV~UkFTf2-ihj-zLrbl<}UWe?I z8xJc`1BEsZyqQIAh9bR6EBKEY{;0IM{B2&z=sWE;`Hba8<#jC$GJ;oR=-r7%3pGZd z%Z(U=c!WfiMOIPp<`-eC)l+8e)d7BCh^F0GG;DrIwF2zTJ2XJXGnb3()X3c5UayrJ zqkkZPrC|3?VkiC!9M*F52n5hRyfP8;Nn){DK}2=hzASGt{jUge@p*97FUV`9gp~t6)4?Mw>^EI0MB1D(ZWjg)r zTKlN*h?MS5f=o#fo5rX}Q9wT)^w%)j&dF3Bs#U9bM4J6%xUn`Pg1-wkmhTN~=1zW( ziNN{gCMaJu$7OT4nL4YIrKb5+v?}x^rPE_G!Bqa3N*PV6*W#PF{NXQ4?^Zyn19k>d zo49U-YruB(@k<2Hb`i6yh%a&Gr_zF^+nDkaN?USmJOU(aB|5dkBZA3*gqO^e9gl0} z{B$<-E5)@|OCZ_H-DYyn`*pqi1J)Z77L*8r8PydzO$;D`TdFgkL!Yx=?%rcuEHWVA zg&1SGpq%3Rzog#bt+SY+&E-8DOc*R#uj2U{l_{D8X`QKKlf-GxRvy^Y$bWTssaXf{ zhoKSwmP!aUOXr!CQe)#|lN>VqKeWANSRB#TwiyEwG!O_5!94_rpuwT>;MQme7Tn!} z1-IbAoyHoM;7;T2?(RCpu{U|YGjq-SnEu7p6jXQBuD#b@&wB19@j)_<)tdeoXzN)2 z%001M;4T|{L4OK9GY&{3qUloeSP=EBum*U~u zihF|h$p&M3s=Z8?#Te*@XxKa~Nq@wsuLJ0pJHK@!F5*28cIdoD(HIoGxiFo|XIUS( zA^gVsu>kp#<0|Ld8phU?282jKck{5B8KQLEz^1{kr1 zK4SkT`J1sc8`)FKot(-rWG6_?jiPY3L!@bwL#l<9cJFG#KgKHcx*EtK2q?73E0&@# zr!kfyo1-y4SY&n7jiChQy387XRN}0Zn_iXMyxN553z7fC>XEL=FWRnAae^$aQJR;? zIwM%sHf`QZV2CNzqye?YdV}HU`8<+6xapB$MqzERF-A^)UK<=ly_?q!UzNcOx zTRbg!19yxEz1>|w&0wR+<%8QgL5y;g@lNI7%C4Ajx={+F4|x{}9Bh7m-f|#C1Z>z5 zm`6Qh7s8iOFo~2%#rA2_vXi%PZv-*JTDFa(D)Ml06@KDq;Ad$TaZh8duMjpAU$&+` zT<=(Jr|;q=o*ml6uM2F1LB})IQRFQ7EYHu)~2O7KYq+d zjtw`R>g>dKnm?J$!XSuMw(qd=rIWKnV@I1{4$xXyU%PeQB{LwYE%47;> zNpNjEm|hAgDUk1R zXt#-5ex8wNBi1=66c}F?J@L491$nFzM8Ci6KXb>PYoV*6NcU}q@xMN|x2VDo6$CB+ zQ-Z-C>AKc^)@A|vY=L)<^Jx)3aWG?o5{E4CyE-;m=#sy@>0%lTUH&xcMLEs<6%8n9}J0|-e*_76t7cp;a=P`-qbRw-*5-j%$^| z(Ir4#$gVGDUSw*-I<@YEyJLAzzvnsL%8`KfB5pH4S43sm z|EyU*5@YCwN-G;MV~m(&%ZXP}O_6eHn@R--cS=cJJ_-x+v+v+qlesH(4H<)M9QPmJ zY9|J=_Qb703)yl&ScJ;7N zYtk8|u~vG22~?7cK$#u;28K-Wg~*z^QpCtp%Px815dLu$k(Pg{IGWbE$-kkx0B3^# z%`h8VzOu;FY4=hzH={v-9b}?;X{GP1Lr=6bvSe}|#*V;8td7Fn0r@@m#0~c^r9%E0 zrr$d&3D$#Qq`9-LljZKSwNlOObsV`J{vX#TWsRPH`o{yPmjeGS!Sw#DH_%zEr#@#Y zF`9X=Ir7EL!mMq&$)}1P_B@QZ(bM9ma>G^cn0M=b(WJXZ;;U+}y~NPwG+kXz1W0Aq z#VlU6McvaV-SGY%O^cV?L^vTwoo8^5$@%|zy^_N8ZkrjLfud{vFuoLZe8**CPwd@6 zbTU|C6q5^BMK zq>qB{YNfXV`B`@QglGpuU)Jy2@w_&zkPq}f=L3F<9wh&7dPwe&{d0t1pXXw7|ItCH zNGYhP#ihT~O?+z^8bYtEtTfRsHY6stSnbBrzH#~Ub_N~X-agm0xUjEVq6XkD`^nGS zT4MiZDUzoDe7*N5gRj?{f|e18v>i`Z{rJR$F{`pb$w?QiLFJD33Q|ioA_w>|uApGY zc?HdmlelGCAcl@Ry3MMV8dw;miHbLu=mU_X1jogn^tKfKx^)<#7sGR`f8BcYc5MK& z`qx_&@BZJsBaeoGaM{8k;Bm(X$J6ZhhGVe+)>!_Jz~{|BDbxQMG}P|FuHlnAII}lw zf@?j+)2q+o1~N*|dyw4LTr39&3F|_er)RER4S4H(g%B8q|C>rdi=T%`p-83e!zJ4 zPgOpjqVynQ?59fx`S*|=zcRI`RvI@FRw7o6xzB{ZXFa}s)tGIa=6g@gZNS>$k#?7C zkNmRQpHN>T%^J>p9?HlLN%kzm%3hA%9kkVgQ>h@TLvhGLGJUnG{L>Sfc-}0usHQQhL zIsb?FQqn6Klh8kJWB~Pf(CyDQbol~46G_kt`R}ulx%}C#YPD(d9tR44=Lee~p zItQQjN2s0ECO(hhJ`-FyH7Yr-%2TZY&1}?Ay|h?eMM9`*u9Do;KhyGnpEx_qRmUeI=hdgE1`Hh3 zwu1FRmA`d*3bP1A4DRTA%w%hVRIL`;69x@<=A5w_qTh=cF&lkw(jWm?RUe*r#oGEU7mt* zM=qy$HC@ZNs6IW!4& zg%x?-RN`Ay+5QPV0;Cf|(uuhWa}wJm7WBE~%5;ZvKxAM2PBQ`0+e{+KHU215`pVxL ztUvErUwsb(+a}n*y4ra=Jn`hplvV8BJVU<58%Z;JPHbTKI_Tx`Bs=y#ho|WYeDjzR zH<5XQle$JkBaf!3la3@Ec68AcmcKa&zUkBI->b~F>fG&z^7!+{9>Nc6YHx0*tCTqz zGTr`IVg4F#0eS_(Fdi^G+=~~#Cnm7}9cW{PKEWlMe2QvyPs1z&o!HXZsuekf1OR@=W;EcEIuh6Jb$C# zJV`G9@^vt9n!o2@H0o`JKr*u5*baFtj) z(fXtO9k?P>roMrk$r)Zg9M^WO||W6WN+o804tP(M|Wwy?c=BR$D@q_!zWA>6MbHm{ z(xG%!?Ox_r%y97Ve!>xoCEes*20br1(dFCXwR5vq)7iY6td(XaUx3@nq$s&-0-(WM z2KdQaP_q~Q&wWfTEdt=e>}LdA@0=F);=K>Q2915{^XF;a^XO9oeORHOLn*{}v1 zJ}b&=D%n_JxVQjn`^a~t6TvF9a`ad{Kh)oKnAU_QM^df*b@PPN#FJ<;anpgeI(1uZ zsOQM^=2r{)1GIdzENfF=fhlE_5IOkWU)zzClh-6w+<*C z4kk~Eqkw>Cf^YsIdP;`P2gh~3@*)f36gB^>ru)zkBX6HFzKhW1!z-3aoBNljsrBA7 zM(4V)ZjJ2*zN#=i*gVT&G)k)Gxb{J-bo^2M53)p$PH*Uq!?!?@;s;G*fi6}8Pi8Fu-D%8 z5d!gq{H&`j?u<%b^LEC1qsrk$a|X*~wH|5gH$ET#{IxPPqLf+xkqe?c*o?cD#_Ge% z9EZZ+&qiSH{+OVHgv?Hxniwn!Lz1RkI`S1h(X)hn#?>nq$7=(~6Xsc7?s5*J}6sq>FX$ z?8~e(6ix`w6}bu;cccTUG~WwVb;Eabm($??_2%P6Qf`0Z3l%U?`zUIv&TLv+SIYa+ zM!Byy3(#k1rtBS_sQnS{cZgYig=l7P)J;>@$jrUo%OVr(RS{$BMrk=7T zmAP@$gY_wI&J>Z&x@&nQri7K0g4rsr?x2%1U zon|egsBCe78aS*uW#gKep#2;?@aw)yV)M=rEJZL6FV{=44=mX(+r$ zTfD+%e~r)5SoOIRXre7=`pBGznjstt z!*{@q>Adxt(x=o<*9ckMgF0Yu9TN}q69?|2K=tXLm^B%_$T;~m5$%M-yN@QdyXZ59 zZ~vRS@1nNCj`X}bw6$#>oOZEkwdrj8u`>0Q`^DC>TdDOG_$zpq_s zWD4qJqkE1?|BZk~DzjguzVxzz=+`Us%8=ae-XR*gt1X1pSq?UY^c>8Yu}y&y%pvC+ z(-|LDUYp+3XA`#W?Wr;>xV0M_;0(XnTEwdVD2>SLsfDwbBi&&%`GaPTPqbUX?t?W# zUD6*R4S?ko^_FaT$qXdEbTomGd6HF?fNAQ`xCuQMnO7h&o1Avy1yOdfZ|vN4x?z@? zr#X8j3trFl&EgfvNggLF@mYb9Oly`imVAvk#VD8!rD>lQIc|9?yh_m~vr|5)cJX=Y z40p-ilf_7ug6Z~|kNVTK=$EIb4wi{U95YI;mX}QnUJ1NRW{Wzmd+azFH=}U&h3zR+ zY7q?|EFC*hHIH3=dF$-qo7R?43$>R5wfP@HUOi9D_<@LsU%3eLc;9+5Bx5$0*&o~E zv)fE}dJuyuLK`!D9zi71xEovy9v^M=A!E*T80HwhN@}hwiVJUSmnxjR#-rreGPAEiHvxZF&d#u5yx=&W>HsH1=9{5L&dta z!u@yQG+ac%vID1<5wj=mwCEUcBwl!sJ-Z?_&P2V zLq;3_m_q`VBZX5KwGpmvZdze5G$6q2N?}tp@C(o*A>(wtTPFl^^({d3+K&KiU&QJ{ zZ9ZzC_J{_Ap@nmfzHF9Xd`|q(CT^AkYh=8iHn@%#>wE`V>HTSMNyHb@wbu{k{>Hsm zeWnI-)s|G5xJLftxs)fsFp<(D4Z7>oD$iyJ%xLFE2xvzDHXaUleZUq4?k}qWrV54g z{u!;fI`Q@ObxUWbKaeid;~McSsUQcWdaK;nw#I3@+kwaC=>PMgo>$Pvcq2cHUfEu< zr%*`&V56{W zl0d!BwD(2bH<{{>C5#lY_xn?d^y=2(v!2Bde|&Fr5zM;8KR?NT|Ih#BTyTM0*);OA zdix3gE20|zZ+S~v(jas4CuVpr8vk9BZCbFt_7Bfhispa`U*SmH{uboVuT0(8o67Qh zcW-`QGvSk7I_K*DjdR2XxNU#F(qH&~`v2=4^8c3ilh?#rbRl-&fOM7@xhy)|@I3?X z&?y-BN)LF8uTNv*7Oaa(YPfN=ZpxDfVgEoO8<=p+@*Jt?dp`bX(Hpt5emXaZqlLEli*dOb$ zXD_=i^~coR7=Tuxbs85Fl&mJh7!$<{a*$qS%UAJu?BBea9;S+!ZH2A;BHWn=R(b#q zyul>(Y~6!E(Z%_BbIE~dfrK_bc>~2k)J3pZ81Lv!z9PgwNQqChS2-Cd#Grw`-!HC{I_3MBl4>35uyxJ`*j95P(A~9O6;A6@&i(m@97d9K-#$mmo^q*S*K7mrSbsNd zb=s!a<0;AOsxxtU8J#k@`VmdKY8qmg6XGRbTiU>b6;2wnjW#M^L`?u~Z@1(2-3e*d z>Uzuhs`ee>iR10DtFONm`P+f1*qy49>Z%kR;JOPtTi{v{jOT-l^H@2 zLf?sx8+#lpcs^BdA)uIlU7FxreFor4t43>qf<`9m(aZ3P`mK}UQ)gCf{3uhOFRGU} z3QB6e%Lwp+E5V*O)gRaCW;Luuz^_9mR1TMCAeP@IKEnq|@M1db&HMlU{e;KuoIos; zU}VBKmelV}w#+?x^2f?CU=W~-G>sBxwE$8X)M$V+np*osM(6#H5u<@^)4=7>u$^k1 zYexRGN6L=F{xfF}7HUP^M7ER^ZJeuC&ZLia@NP|3t<|Lqt=%-Z?l^aEiWjQ$EY8+h z;88Etv1o5Un$B}$4Wf(q)|`AsCgh_Xy)qsEEb1ThRyhgytTh4e2Bz6grN_~>ouw%P z&1S51P)T77Son0xIN+<=OL;-k1}x=bO(KVbc>t~&cbfGZu&FQYtpq<-COMX-PhL() zV$!J#7tK^S(Pc~BVL?c7XGw#MBN-Dun!mkQZ^8xSux3Dcmn#wA`*CN55lYCPXMx2n zKCL?36{#GGdd!nts1*lTep_L0L<0VGn1Wg$wHiPI+3VYUS+tZzGHu3aMmM zbphGjq-JzBnblBKTr@0T8KGvpHx}{(;Ir+3ypuoL;bGA!O>6|Di`LT9saL$FRi+LO z-O~VW0ar1&ipchtukm5{63+dcxZ8e6)BW_5iR+Nl8Z@fU9mv!wm8^|sQ^@+FX#R0I z*!GDuhwNhN>=FrP0uPX(T_A|cQ$txm-Sj!#8eVSk>%CUC;L8Ba`SLI*d$D!{(F&Zc zD|~p($;r*qg2{$Xa(L|F`Z1y`)U~CHxT8S%45K1q{KT5?uH4SwB<9@=9s|J-Wpp3^ zd(R0-Ln%-YZ_;p!GNacrYcyBuCIIS=!r;ZhQ1!b z&^}$<*?7G*O0TQxcn>4#^)4&$7y|V0vQxCN+U;OQ?&alnj)SVofz2)b-&G4~rWbtM zd`9Y`3I#Iy^jejYdqO=Dnf1aw(gw+9WHX2(Hwm-EYkb`aItjQ z=W<&|NtEObH|$oAo~?LgI1ceU*?e0fn+{>UOlciixcIG+n&rC%AhW7%w-5oI*AL)1 z%vG<7BmvCKDcWZnA6d;*u@lE3!e=HiC63*aV@mD7!Io=1cJyFow37`Pw0-;a>b3pk z0P1~-XlnFq*~D~;uiQ(a^R)XNA&CI+4k=qIK6gEEK8DZU?B`Ai!q{@rYhe%5o~mu&KO8oW-#EZS(9Y7wtW`Ply<()8vxXLn_dhMnW#5e z1*^X&H;;X9jt9_vB*4$k?&C*1MCZb^PAM!L8yvkfs`hhDMbtgp$oZaA?_SY-ipi9S z%Ks(RSYN}ij#V*JYcdx{BIJC!bHi`DJ1B`o3#y9MYBC7}Fo|U5(-lAYY*3&1Jd>}M zd-`aeNl8h`A5;?uQ5r8Fu*hM>uN*#a3qY( zYWp@L(&XCbUjN!Cd0`^Z9GOe34DI(Wx!c8fnu)|H?X ztdw>aN?13_YdbJ2LamkmqVlfc?PEnzYyujwsO%1N5Z}=mA2}~~46Qsel}u7chFDm| z={#=|pPO=Wl!Dhp^r^{6`jt_>-FihHKZ(XT{dGds)%CSre=Q17X&vXh?yx(F2a3D% zdhG12(dO=Y-o^lMsFb|M>Yc3pG9QLbV6SQ%K!cO81@K%33|t*h({$$@G0p3|Mr>NT zcEHg}EM9Q^MH+v_gSSp+qp415jnt>cZn&V`H`U|QBaF~#K2OMWEM2AJDApEIp;w&2 zi@zEl&ZG~2oA2f>V`LP=9?N=MKQ$s(A+EbSS%Z&+%^=^PCyslw(n+LR@s&o~#YI2j zh8d`L55jGd5{Mv$>sQW?G=-Xs1x?l)(j~B(XL%1|zt{c*FfO3Bb!4Yr74L}_lqpOwz?%J;BgeT6O&JKRl7?T#so*xX~1WQh5W{5&{$c{0(~7S zL+J>`&5M20fRu4=RucprwD|o&F;C$WmiTMG7;*^=dhm8AfNd~|-#bzly#^!S+EXhR zt3ESg;Ki89l8zI_a#tB;-ei_|$5ocO_I*?^E*1xa$8@;5S;NnP$qV*`na$!}Z`A5e zQTljV0Z8(1*eFFbQ_7Q)TiGgl8NM2RxrJzdHjVNU5mE6|VrLkST&6h5Y}186$Q#-j z2@wC3jCSw6K|>bI`RX`}_BK)=-3?d*P z7|gP9QPMS?yYA2TC+xnFkR`K%OXWQZKK)I8v6(PdkS>>Yo6k`WRIPndKbFjb2ksoM zB1BmYPBV)%a_eXF`nUv=mhl#yvAV>J)12Lg??`#~MT*AugpK7Z3kG6{Ku^CpMNfp1(bv4?t}ykZ z*e_QSLA`P{cH?o`7qsIAp$T{tYx+VyR<$ERu=95f`z8Z-QCLF*25vch+Kzs&ocN!r zSWJ!=cp-mD>8|vnBQr*H>sWNbo!_^n2$WJP&OzL!YFQe$ui1!r&*h;0ndkWw z7yEN6TFpfZC2)R7*aGHp99p=FBSfM5NJeRrYeAC@M#Sn>J3)Kg_ahS+@~+2L$royT4-R8z3j)?9Vj)g$iLKbNx9{`=FXIiQ2>K56Aa2!=xsUyoS0}T-(9I*P2Dyr zV`YuaMM_WK#=u%3^PQl&rv3JyDD+o!oXB~TWp0%q)xCciOcyd9Pk(-N<{hY zX$LQtRUae&3W$i+9uC^-w2B&Y-HL1<0}DB>VWYd*2j#~42}c)&n2Q&%krbt`5veHG zp-HIZC~ReU+J{*`+;O;`8w+9i?hF@kxP$AT0oi>3U6qI@q@Z5kpTvg7dq06zbv7;t zP$4F6_w~xA8E+oh zhdTcvoyFq9G8pd;GYx%hsc7^iP>7f@WN4D)vLr>^itGUXkg^sy^uZYM{?aBn-;%1K zg2(k#6|UuRNR<_3*35J8J;%r{+1S|Uy@8(Cl$kWpG2qg#VF~LYAYfI;e9JVPWvB6t zy>N1J%6q14OmftjZ+CchqNJaWMH@~G)E5IG^$00=o~J9C=D9LN4HDbyY??|@v`_w_ zUS|n|$L&}ON}hd5RS5(l$C)A!+dFzg^x-k{$qn^?4W`5MwcR8wxZsEB5?r7katBbe zedf@zU0V`K2?}z(I?jzX!DTTJI5y}m-MlcQ)ghUS4<%xG+8&H0uXO~fRjCb$_P+Z! z!AvQq^6N}3-2Q?G4)ZugJKxa}Uo@?uqV#{>x9@x%Y0`1+p_@JWm(TCcQ*o}Hy zk2<><)U!VJ??1wq$o5UQRsi?4e7Pvr?0B6+STGO><6E!WiiY4R9nDxEDLTsy7p_zo zwGEL`DK09h@AdFH!{(oF^D(qWiyyFvAYv;rEM$;MZ;$5dh1)XjC6RI8-aY?dG=JcD zcvzaU@8;K^Sd|xh-P%O#12~Zi(lk~-I`3~~rO+`82Pu+AzU@|65XRBYCcSEpT{H=R8A~e%z6Nfi$II-_Gd3Er9EZ8qIFS+96V)7{J=iv$K?H$bi z>@F)!<@@QDqTE~(P>-FrZ~%Cona<+WwjE*?;`jGjl;Lz;RTXC_ zC|TuYcK05w-=2lW;q?kkPLd1uZz~-F3@X<9Lab@K-OzLq#B{3_c$3G5-SUDYxcey& zI}mkH7iVyk2T_5#w6L%31c##>7y#@Nzk&AERn)$IH0Juf5GGcbJShigP_&**%XOc& zZ!4lzUSm|>Rm(^#ISF>m_5nuBTD!df;}N5bf5EfzgOzELVkHHK*HXhvVdM}}4?lWf zqs0drSIL!AK1irt0VatZXHrt?^jTi6wgVY*D_H9p+Eva%dPAGJ zmjU3ZR7F`twa5#iG8o706wY2 z8!LDxF-*S6uY>b#wmy(igY|O^nON8zuEW6`TFw0r*59Y`Hj43Sr>KIMQL99=85&fh zkcU#lQOSg}o)}Y{vsO8!n!#$Z98jF-Trhwa4*ia@lfRcCIov&0XRlCXhtGN~xc8Zs z4`5r#@@izV9TFFeFPDEYx4b%50^)u|0Q3DBmZ2wtl=m$ajgT)}%LD5WXhX8CMtQ?! zvz`vGJXUF4B173t&D_@>HRn@~4>C<7jZn{dM|C0K4PloXju^gM{sF!LzS@TZr7DoiO*kh_s;kEUviiemstS%*goiy%o9!?ni*ziVPU~( zWRy+Ahs4Q(Ky_Ut_=^t`jq7>KKk6IB2P%zwVJ7WUsZu$YLYTx| zCu%8YJdiE7$cpTWLFvd@f*ltz+O{nzI}s8WJ>`93ppC}faGK*J^z}v! zGgobezQYqV--fxFz3)?zoFuQR!wPI#UIeh6D}g=;NXb*8y$1R5MMmfX*dxGNGbf(* zjAai~LyeoiXbr0+a*td911JoCd83A*8PDeOwATJ0L;XuMjecGo18Gp0-b(rB97=jxm3rv9HcS4Tk=ec`2ihMJuJt|gl9cxP3ggAgzQ@ctG` zj9FjTNK%Y!{F%%Spe6wlO?*g>fr-QI6*W(+e260;E>^1heyM*QwoC@>=?gq_s`<9) zcw7sDjS(igUD(c|1kpob2J7jaAd|~0x_G4$O7rjJNvGeoy|ycg`YqD`(yp< zSPX!;`+pXEiC9Gf0D_eK^gq zM{xN*UFY$J^ZN10T8-Di|E+{90b_<0pZtr%$WhmdUF$sRYwU0SW+S+dG=l$mrRyML zbiR4Iv9Y+`XLFtOUPLRCc<34KWb5Cx!&{Scw)K`s*tHH`6LxOw!-%A7-l-8BKESi} z_HSt;JwOjQr}qJpO!gc*cT3agWx~ww$RblI^S7oVp~3AwBLsODdz+P zv@`?1ao9n0J&XHO&l472`mbCrVa%BqaBz9umj85|{6od+h3>Abgz(fPjkyXg9UO!S z2V(f$q6!ORx`^YA%+G7j~%afC9mV*YcyhB(feDcrC(YH!lxbjVL68rDL}1c&KSVM0bJORJkhQQ z-r%VX=5~+&=m~)5-b!2wE)b&CnCa~NVsGGr0u4$qyG{eqtcsj+xGeq>Y#%4pY zH;jne3uuSXQnaCBa_<&#U=QTjfz%Ez5Y8+0YB#utEVyfU3W}tI2bsyIcJeH?L>h7VUsiPwkPXN42i|m`6mXRH}-CZ*#GfR(0j4c>H!9e-Z zas_OEe#7`fMDrDC&e$xvjLhdM-;{6AD?Ig-if7i*d4NQ)o8!3!4}P1g4JlorOp|MV zX2Dxd@0P-23YhCcn#L`@hZLdo#J&%FuQg3(97%4%D{mY1Y%g!*3rS6ErB#szK9{ut zkdmh~hGI?ET-ibP)u$OtfjeMdZc7|0g*QKK(=mGVCg;O_4h^j%IV^z0=UUx$UA+B= zorif#Bn2IlRSWg1EqfCox=1qAR>$DvNO#0YL3yaryf@rB{4tfh3>&e$>QR~`FZ)z! zrZ$-4fc6iL3aIWcG9xk`=jk`bkTfati51Le0tC zQG~>F<-bTd*P36CwcHavU`;?4gmvV8UC%lfLxt|xJs!%n676+XFMPsTjV-4FC;)q4 z2e6TQMI$5;(emo<=FI!^@#-dr4o-c8+o;8MQC3Ku>li9jGrye2k92Le2I(i4DPMy7 z`Kz8dI(?>O+6}!d$u+rr11o?{a!a*_3VOIilE$wi&9Z+8p~>&Not8G}jwV@kw+J=6 z=uGIR24{07*%*w)DG2J(i1z`_aK!-*_#?Un7ocRzMHzf;gPL-b7@sJgT?<7Dj*gj* zuPkMVU1Q|xKrwe88g<^T4_v_k$dzH{?-Qp`;K>=u^xSUJasikw&)pGsyFpO_o3yXl}?ifV9%VVoD8Jgh9@vYnkJ^%me$t%7!y3c zFbPOuVyo4miBY0hY;oyJ?(djRn76d0is}w|gPAU8EJ_Tfh`*$ADR8-OkAfrUjWMEW zJ}ZDFg@V=K2GTZU_-HHli`}QML>EXlR-Z_CiGf#ekUkOP6QXzRg(elLyamSb3X* zQxJgUvFoyqr-uv3Qs@J+yo>5pvDZY$ZnDM~3L^`m-nCRRDWW<$I$cNKjRvdS1o>RH zSFO5Y*{ZF=6|0lj?dq?kH~QnV-8wU>9S$1R#W3Xo)lYa2$m%qx8!8)+Bd#2e;pa13 zO2G&CMaMssyKxZlx~DTT$#mI#jJO;kcS-H zhvoI68IwlCf&m<6Gt3lTm*Ut3VAcRKVPb$)b*R#fLn#9+zN4QfG7EJfroVQJ&o|~? zivy39jhok{UvT&wUY7b#pI_O?J|b%NgvK8Q4QERR@D=x#4#_gf>RTQ!^qejYm>zW}!EheKk-c~^b$EX^`? zVW5jR-R`>vAYhd%7iF8AF5&d0rc?zXh*A)HTplth7Rt%M{aVGdx5^8OqJrfb%>sFd zi1%7}iqv4ytT}_ocZIXuK+1K;#ZhBT66;VcN_O;|eY!#5d}n1PV_d7=5$@__L%x%$ z7wD(xMJ6VbYsb{x*{PD{0Kj+hLqYC|-f$;Cb{d{0BVx^5-3>S-0}>7%uE(gpxbUbu zrih@3v`=Pp@iJlH2e?5>S61D_{EBL6nPQzGskh3040(&(0MSb63-wHqTGc0pC>tkW zCrEoox1~yB8XbEkY&Dg~f*nq0WPhe!n{;nF!j63J{tVvj;*EP^lN69o+*nKU>n;7d zWr9q^^pvbarhS~y<%7b_j767fp=N`G78&40?%0LvWwII2gU*%6M_EeuatE>PJOKR+ zCk}UJDJG8=_{`>N#28q1FD>}*HLFCljMSKo+Me%m-7T-t0eUyE>Sdld9%BNutIuo( zhLJ#HuJ6WS`^keP?pi-^*`(~G$ql5^01i#wbdettmR$UsJcfF+_SDVsET8{;PZGQsS-HF_^RoGD>>bFSqE_)7E=Y^|vLRCTW|uStbEPQ@e1 zs}sM_=tLFYrtqQ_D;h|SOI)}vU2SG49y%Y9X8!v0tZf3=dB6%v3_QxfHid2}KXi>o zJ>z;n3RB$*rfBI76k5yn+mrB0v?_88PMM&2v1uo&xm?i4uK>LH=+OfH(@e5f>mgef z4Jy6B$EyS~Fg2!5M{6E-<190F1i^4WV@w{NA1T3J9%;IaCw+87mF>rT-^(QN!8brJ z6j=HkFP`A)^-xEJFXkc=89x{foMvBOJGo1W*uBc1uXn;%D>p#3OAUub?Wc@nN&Cbx zg7c0MN32mvws`e-_3~WLcDHOeH(tK)ihH*QSV32QJeB`cl2?8KUuL1Qk6V zhkNFfudsxO)@z-RmgHMHU#5jKAJAD4?IO3MfGjfp=69EAmS)fa z?#g+x%U8Lo?CD~+f^5|)-Nf2B4r5h>tK)UyDj9J47ibW*aef$oeRk_L>&oftp8?|HS-+=%c3(gj z(0ntY(PFLVMgu9GhXju$wWzq5e2W~+pA!cxjIYB5|xIn-RW|e*&1GYfMii}6h#nr`;b1>SP5Dr zWsJ?3Vox*;pjEQ<#b0p02iN8gH%6w!SXF1Gw*fSsv6~b?pyIAN$oFKH*Tj7N`Xw05 z?}kb%N4K`zDU;N^q@Oc-T`=v$xO%mm$?uctN>-ZTvyDYn>f;le;`TW(v zs&~VB?N6Dgk1>_0L&-SdnzF1h zazBOxL1w(ipwPv!A&-Or3m`BE0eR=s8V*4dvP1*DOpsh2R9sk?IM(0`xxR(Lc2>JL z5aTLjN#(6)2qF&PjXvPK>3H}B==syz-4)2u8TzM{FIhS&qux>zKqBXBk?~EFinAy^IuYfX+_C<>u zQlal0SPFrgcV)4t$OlC47z{#~Uu~JFRmMFtM+@WdTO4lve){g+QwrlVmwzzW%z-D~ zDC2a1Bt}Fsj#jraN$6SIBYP>7P`x0C0-mPr!Crv)^k4?b2mbuiTrG6ek_wU>5#Ae)q;P%Fkqd z+#W5?gE$F2>$VP6Dbhr*vp;AbT*?sqUda-}r0)y}1g$ubq)(@5oEu%l~CG^{ZqE-25p0z|z^Ncc3P4?rs( z>b`HE0t5J}9|1(MXxNN!4vds+tyz|g`q{`P+K79k!wnI(6kmUcP{4UI&*#sctT~Y} z@Q}ZJSHx!!|6}NjZ7R0X@jV4dIlp-1N9kU`JT{QVQj(ir2A;UrDjhhn-O(>1tG?Z+ zWCfelD2f4{1FX(>;R=AMf0DeOwSLQO0dM4{5%Yc6rEdN97xff0pb+SD@0uDp>2)7T z`lc=eAx?~Iz2fxDBPK>O%G3o|z^IiAOC)pFdgBnnh@5mDyjt`71SxT;?11z$$x}_6 zRU3eA;wy@xCDb9q{+I?X)P%yz$aE{=wgJJfe7z&On|WV^eq5<~Ri2ulg9ngb~}&AU4nF|1;p$G&|Cb^@GE}-z(kW; z*EL!N6I}9cDIhN^NZ1MBN=DBCo%A!Dg!#0CNTR)#e7dmwYIpMIA~Mo+G_jOd{R!+H zyIe?*0rw9aHlm^?vtsox;-X)#e@u~FSewQ&fc>!O?iC^BKnaKSnq-fBrrHJtYv3 zd6P>Bo7pgi=8yTB1jky*)7A<4Y;<-$T zfTn#?yuqX={~A!#q={jSiXWO{QTqyqzkn;RBzci20>}+gA8dBgQ#=^d?ONiBnp&1A z=!R-O&xFHRjDQsukQj)hQn{!yk%eh>0|6TCGSE)oYY|~0kF4QOggk+-Az8=KUExMf zK&y#=>_Tg_YR^RhJgMRVX&7%xu7FF*ti`kGhVYuWXOG{L0rM z1L$f`s*4OF9G|;T-DMfV8?{@sO`ky!lU4NdHFPo$;oXNXZuxHgPU~AC3{gX z?W+;tjbO1#YiF4|##{$$YVTv3GW{BnI|VUS)?kT9agcdA2-4fGjQtrQF{!p+2Ocfk zP4~+B8)DyWMH-f2Avo!K`u7JOzo9a0V{|}!BOn+FoD zLg9-gwoHZuDvII^x=u|7Pg++F4j{~m2ggpp9-M_dgeLxNjjR}g@z&zOL5_3nyP&X4 zXh~`+1TVE8qXxCU0bCHSm?}DVL?}m(7ZZZEluV5^)2lmHx>*YEO_9{uEDF7$Ent_} ztE+3jKC#g={HjvjUQ}DNo0?jg$gdMWq3<)+)HR{@NY)#D+3Jk=_tO<915@ScUzcvL zF(k$R$wxSMY6Wt`n0uLDM(e(0l7GS->Pt4j;1}))0rGx1-x&frkQ*^$nVtw7#bWHtAoX$lyP7Z`(S-K87o-nnG zST}%F4wkgIV}}dIhpUCHLMj#+K9}Wg<4x=2XyHeoyiSZf@{OX9)?*X6-L0W|`(E1* z03oFbG|pZt^uc|P$3)?4NCvZ9L3 zICBbWX#*XQ-v1<7fhuE8LGOlPNq*9zUBeknnQq*7*)R2h!0^x4|GRbs|E-Au=X=L$ z_y)S_UuKiW(@bv9ZT5A|iLs@)(i(V}uncbsz5LIQM_I8?wLN6bKmCzk^)jvlG5GX-67IScS}l0H`2L5O1jx}cO$uJ&g6OD-|xlW8TX7c z?ihF6{nsFsh&iDTW-bH3yQceq#`EtA$S@elcDQ~y17$QYUtH1 zC#TZ~EOSo+_oeKcHP+kXHTJ$#4J36=x}eO=de2X~#8z3_Iy)lEQy=@P&D0^N)oc6M zD?A>>ESh5xx%$xTG)0QV@}$z@{Gas*wi5UxhID zQIz{ZktM(#3V;0u*YJ)3ZprCPz_b^pdSoCPiBJr2%NNZoi0ZzZ1`jSa%K{8Uaw?6;@e2DAzm+hKjE-BF335F74 zkr;}$L5xgx=g&{b`=mvtq7GT)fphSptzv3Q!xe&12c`@0*bUugBT+gP zL_qrIR_!p@Adw%H#qT`i7yiqGolGn1QcI?!s-E+X9?t5=U+C>5XSv?4L-Eav)X!^X=U<7$~N%GvcCO+ z!<5S)_KmhUR%q>}Zm&eLGm*u<)0KRg(P?g<-R0_u$BpT`e=N-XSwI=dV&+)7lY92_ zUI4JzTFeQQU)((5C-6ASmX?m8BH%jnt(?~bEcV65&$Uxh4Q}U%&;rG(i{7a9shZU6 zg$~Af;vDi@imRF@ZWUha ziq832j&$R+H4gIxk!NWxmb*tNYd5oZI)#+=Dfs+#=O9d}jrkJnGDE`)o~o#poqte; zPp@mnib6pK$;syCX1-ZG`!%;q9=gmI>M5Gyv4w4I2pPR|1A!Z}@!5uCMa&j9 zw-M${W#?yqhU=nk63>p_X*Aj?ir-EU0e{tvk$QM0!``&9Bz-#WH`_+ntb_o4SGp{a z&+!u*Q592Hr;(0y?VCB@JL@Flwn$t0|a=tyhEmkK)--R`^;KH4NBG<3%K6U6eswkqYa*1lVe>lOWc$ya!-R;c1nYK6i z2q}z^H_H&YWYat_K#wgi&FQxJ@g2vj;Gtfr^*kRa?mPz-|7HLV0R75?^?q%I?S3=d zBLExd-OOyNyz``Rb9b}-Gl*6xqxk#;23JWtKXzLm}G9r$(f(`6q z6PS!fehj*4Io2pik89D7JjKlE| zpxXMiAgyBcKAw?0y65>X7z70num#s}Nxw$ie%cj^7Pj8+AR0)i+-B8XlFs;P(p-Xb zwacbbwu4#@vvfX{O1_|pBA4`HG8Eeq4+PP5YQn?xckcPaOahI&NHB65{^G9AZ04dY zN5j-6iAxj|ywP?L(5?8Y5E_@dTs?_&0OH>(Lph>SdSf{BMO+R+7-F$j{g1KTIS49X zP5qLC)tYI3@%+%auBw;ECFHO*_}-vaBKA?+Vivh?=84pIuFzkJuD_}h6eOK@WALj+iXe-Sld??-gCCEa=!ujZygc}ml2M)7PCJHGSZ?q3%+VWSy5HK} zT0pCiD5Mi`^S^MK4wK~@HHC&s<|3ahwsy#r@^e&5pkLF2xZyj&!+wMNdNDOs+^fRu z5)_bU0wQEpW$PRe+(m7kwoY9uJ}R)=k8`cyLLw6}k5DUU^*{XxVopX~B|%?kO9CCF z^6Y-rsu!2Q3Ny;^R3-?3>x^RyPpo#b863OJd-UErYrZ80^SdYm2OQ#x{E==`(-qJ5 zxU~`=6n}F5$vVm5Ifw@pUZ;nQ+S>qBV6-XOEyo{~FmGNyOwyzJ4p;b9@%H*=AQhgM z&E3syv>aN&*?b8j$lWI^DmT;wj4(#C6&ZF82*R_ZODBwhitBC;BHwg$1*6{#pQ3f3 z;6SU0LN2{_$ z&LekX$%qb>>}e+sdZ`q zh<&U=vBJYtmUA*P?l+g;91?1PCHCR^Kt`B!thmc|XC#K1rUW7b-J8r1;n-@^6Sy$^ z&_@0n5EG-gFgH&I5yvDDt?y5Se5i~~eP`&Ge?{d?+C?hr;s6AD)`}BRZqdiRWX@WX zRzLz^mhim?)UD(BGgaPOA|nB(ALgCjbG5@e_5`-h_AL)VznlZ@twm$*otBR_VqJDq#usFAH}4LKA(= z)#hXiRc}%0wd(w|*Xf(XZclZ$`?<{$bUQpR57z7Gw%+$dagY+23~XXEXoL0lZc-(8 zMCSkqEIyx@Cfb3Sjzz-NVc*B^WLpoUF6Wz*=vrHc|L^!pzRs+PGx;nZE?sI0_fcDB zYKPC3ScQANQod2K106Zs+~LotC+WfBES2Fvff6F1<|kuT?s0H#oGV}O^mhnBw%MER z$HTx2zvo4^{3QnZyBhb);ydTNdS6IMGKZ^{BR5^q(@aJ03abdE=jnRwc3X{aG&e=Z zli$c^e&FLi!_B;o;}}U&svqvlexj9?CR%l_+xCJ?I)!%BoY;3=E-)v>{59F|4YNvp zQ@8sC2%%9hN2&D`H!lKY+AVcB>_%~A*R=|ZAq7c(FMVtVP1)Hn(ecq)m*eJhq`1-d zid3=h@~GpZ2c|Q)3CSjO@T)85TZra$dtxom&h)X_O$KPuPA|1XIZvCj+-ypOxy6Va9u#u}qNqb$7aBh(|!2;;&ia(j`$GA@1 zvL{4~p};3LO>7l0pFG^5>vE$M{^{whT9&u)^;^u_-KmUXY)6G0J z5_R!AMDvg~!kAwLfSNtmDtkR+B08<=u4`S_Dk4JP!B%%MFQLVdg8~7}rrv|06m?vt z?D67CGT?E@xjC##UGD3I8bO>L!i10kk7I7CDQav8QXEDBZY^EsDiy~XDpoD(>}$&5 zAMvFe0!enE`&N>|?f!fnzZvcvJrm-%9p+NiO}1GJk4l*D<>uT}$}m~7qa9Bp%_u_d ztY3SO-1}Pjv#F@!ri zmI6h=(iXT1%YF0ITea66?LFf%g(4463MHZhU2i5QeYf&L?jZW0cev9Z%}Tmkg%JD5 z1r9ZOGDU+aO=T$(P`i3NAAdxwmz>w{Oe238YQ>c0`_;fEbL@w~@0F6B<(=9ivw2uw z#Umn;AnX1V?h;@e{L6mhk1W*gWTtk(DrVq2k3VShA4)}AxvCk6Qs3W)a;iNg&d;TDo@QsR z1~{lrrSZ*1v@``=y*xx_vJ}FP9W|N%sT=%iTJCpAMcd4}_(Lra)im0G$u9=;I<%%d zx(nQP4+m)*EosE0iZqoKrt$@_gs1~wwqotTua8~yk3mH3KHx7|xzj1=Sbu0LQH&em zy=H%ubUT-wlDBwWFPc@LNb@oeCYi{tcKs9tazMxBEGV%s{_#vd5TRKx>`}^7TFj>F z^R0;b&ZAFXWqGR%HwXfF`rcuZn-FG+`Cd%9+YT8vAw)D4`9f%2xs*}e0d)8c|o_|^HL-gt_; z5zY7uAqBJD?=f!u0L)TEmHIz{S>&nY&e+cLzy;fO{dBha&|lD2=)(shH}`pkiP#TC zF~NkKwom=TljXKc%+?_h>%q}C$YLq9xagekbG2;IIoVA%C)o@)H%GE$qazOd$tTQ< zgE!yh$(vq^dV#(2aT!CaVqdni%~%R=9; zYWK`*x}Fx;5@ZGc)bEg9DmhUfefyBn(eoQWyS~KSPbMRgl1GV5xS1zAN}yuD2j$L; zlKtG|8?jGWs{~yT@1<^4=g%#Qr0dlcE0Yz51!jFCWkSrEWAy_p(6pP5GpmUQCl?^xpwzv?bIVaBc31|`&n39^ zyJP8mP31j@Q&24dF{!aLVo}mpfyAXLQ%3y}m$1#pVXa{#acVkAj5+QPYMrkP(TAaB z7S?n{G({eUB4|K?+_~OWF6*)$(M^&i{_U-LKe1`~o2Fj=j^{;+?daZ_myNFn;Xz1w zOWId=nQAM#OdC774w8MgQ}Rm|>I@Yc>8{Q1qy}J#rF|V&S&>;G5}WpCgArrY2BZGd zZtI-8|0t~Tlp6`N6R&LM%#9dA9Yd|EK^Irydu&6tjE*4$<=DNt0=!pna!0S!%+HY8 zO}t2CBa5J2{|xQMDm8~`-AUICOgQCnnX@~LQ&~d}x^V>wgY3g-b7d>Nc(5TWJlYK= zeE1xnUad1|4y6dFDsn*hQVP)7DVY9P1iabo$uMd!pRj%FKs2_zptO^xf~PpVjii^f z1hFxZ!|-{99SrO-kLJfCWMd(AvX6M`MOvO ziaIGwmKn-=8WKizMTTU#Rd6k2PS+7ZSVGA#SD7=@G}I1{n!tN7Y?RHbK0vsv~b4Q$HhOgzAZ;) zpy6d$j;s|C7a3*^T7k&iQEgk;o;%diK@O588RiItb7%PgHfdo)o3kd)#41fKnO83g zkZkg7bgLawovwCs!sS&(Tmg3em~WE#t5{&?{5O(esq95O>K@j(%&Z^7EX=fik4ISz zuQ=o2UE z((P;;p!VzS)`f1VWG0!O6EHm|YDbY1XVM>VlP!^&~znKmcEn^J`<zF_`>w4(F0$FTtJ&4$ z>)#=d^_en=+WE!vmc);q$|_11CDR{Knj0mNL0al$=Z$IuNFAllR(tOMT8WAawQ_xSnNk|M&B@f? z)WkcSC0VqJVp*|X06Crc9DN>L8bN4gy1;DAkO$Bpz*=nuW^geslkkxX$*jK(_`j+7 z0!!_O(XmyqpRUuYAf1)KNuY8C0y1zl-jYk;7MOK$T2h0hn@=@CLVZ_^X0AFGem}>F zkgZZU|x>P8M$r9S-f^s z*JY+IcOlR-7EOOr909S5k#apmqDEyvnZ3pSX?HHCszf30JGF?}NF&Wu#dZ)nc@W86 zD#2?|dnMIx5HFxyzG1U&h_BcOJa?SYE6kR$364q59B{I!dolzX+b^9KZ zYc!5cF(H)^9{{N&Od$bdWIVfwC`6*Bf+@nv!Z+)(0ADn( zT#%{T{PvPCyC}eS6Bf5`>gHs6LM%WeB93ydS?Jyv@#v!`9rIXexq9xrdWvo+9-B<@3EXT_nDQ7(YJW$M6P}t6t`EwVU#u&KjOubBBeN$G8 z*zXV9r>H!UPUb1_hy(SCJlkI@4e2#}{UDVt$aH;H2HKt(!jMd6y5SJ>-P&$X1Sws2 zK2%BbM0A_*j^#D+TkVy{i2}{046xGA(0${xJcp-Kx(PE$p_>`jk_ia##E@K1Ch;5yE+J@ z71A_a0vS7DJ#lQ+uTI+%OL?UbIp{~;?E)t0!kGCNHTun=kKu$F-~ea#T2?`1RXwj4 z(1V^K;~#T-dGR~3(2?<$gOsChv9JH^+I&lm6f0A$*p{Gf?sjGvu*m-PmO)sD-{JiP*;rM%~Ldgqs zB6^Lt3`Ptpe%zPgxt8RF@$`~rm0ESFtRiU~j`^5VjkL;{={}VI_zcOVQ6y02LH53L z2R8=IB|K5avlQxc92rzmdtPv!v{BK7{k9LzJ{eozPT^{OM;wg(hLtS%7)@d!1B(g72Joa;EFl;;NGP<^-tlb+Ouy*T;s=6AHbaU05 z?!YWKgLz#Z?brIXkBK{yRZndp@_%l~MJ!wj2YHoaoglfVnyYDDrx62_aM<=mQE&J| z5=;MWJTHrth*TTv?$!|5ky((5%IDQO+#X}AAxm88vw9u%5IG!kOx$lvlP5fYs!9fC zN2h62tkW}fEj33u@XTC)M>sZXAbKFORQmPn=mz=Uny1U_>p3n(0fngUAm2XuFi9L` z@h6$4rLi&Lp0)n&yhLnIxy&iUJTudoM#%Ka%;C|<-a}D3WpJP9+q{S zU-^z+R%7{K1y|{|60RtbO{rOJv4p!PbDdeACmp!ugrcZ_O4FYnfI3DA*8eVa#HAZw z%CA(9;5251x=j8V&$a{!CRjp9>*H}U{7e6e>>a?XA`26Bi5nR|`3=&1Hpdi6v58o! zlrQDPTO3rA5kjZg9v06$Grd-yG}FEDZ-n(QcWZo6>2wO}{HJL>@VeNAvusubZds45 zR%Xgx61}wZ=we;#5C1n{->3}fVFs>jej3rS!%RS9q9V?Q@Na-SJBK7OmMq9}#U(B! zuBHAHZI*ITmTlnDE7NB6Yy(*+O9kL5vy$Kuv63$%P>NH3JE8MGN#TaIwX_%5+%}V9 z4*FN351*WT1R+^UeS+BlPLyrdl!Au`R+8?clWbo{pCKZg`Bhp|Yn;%3?*WnYee-Ra z?uz{u&6>{r3hn7+PB(|%ybUY643gBvFZeFfGpzE!nV-S_zCDVFeF^#QRD%GA&qO}nAOhOk=VW+kXv%|K$rUUnZysz>6lCR1uQ zKOvED8j4gxr!N}N8%2cFo8cmo0jJZNgn?}w-z~xQieYihhj`wMx{`V&`tJcJ$ zw6JWvjdUxFp{Wff7v)dL&X+2~}x)aT;33b}Obfa;< zY>`)-d8)T6e)M0|gAD<(J1M2ihYt^c5B1{iF3S3j>apVg6jLef^YH)Ma(uOL?LNv( zwRrd+f#P464*0)gH7v#henn?}nCSl-P~WJ7%qSwB>bdhcQ7N*N)L#??|5_r(zXfXl zx88gIyBpvCzu)k~1!9nkWj2wd*L)eLy$_fRy}Xl%;gqP}rw9ZUMi4Q2OA6XzlxY6- zeMt3hveSbDs5XExew%;0KP1yh$V4pk^&hKS9=e>%0sFDi1dRf_zV1qM>YcwJ`p7qU zoB2v!Vux&zr?AzY@ju6h!^#-47G&eOcRxtfYQ5hHf{U_zdirIRmA;{pBwQX>m_P>S zS6z+j<#kLKxZxdTE?X>G%ewmNo4I1K>WKMYqrLMG%kh_wjcNNg_Am1{rE7;=#I{>gp3ylPz;|e3q17^@zta zQ&UsxJnT7)m3vyikR8>&-;T2UI@YjLnJj7%+GcW68CpKQgq2EKBw%>XM?9pXYV?Yh z)euNQsFr9eAH*)$be^?Lu@2j*zy+WD`k9=p*=fG~D%N~_eBA$UYeYHPr-7?NHXqp8 zWoRE#lFAf%Nl$5eo5}X7yp;`!o+y3di^A#>tP4$4L4ARDWS881LLD6*&IbDQ-X}92 z1-0F3q}X3SBbtQM-l)obWG9#Ie!wV8OFC|Vn6o01LMz&NV&;M({_C$F zb-uzQ%_VzCv8kq}_JYz@qA(Usb|>atASph^wEx!gl!t%4Q-XjwGb?b6*Ob7J-HB@( zVjQhB*Xa4pbbkVp*ek$~3hRj06&qrY0BduN0%4~S-N&uSnD;fYk>tQB)$}V>GsR{d zNHhooCWVf>iKov#+#3^u2BC=PU<~lO1DkNT=D4CRmcMu~n9s4uVq*gYF`W`Vaa#HW z;lBGz`fEQL-^LFY?2SW95hNb6@bl|e-TU{6C`~eeUE*y(s|R!xXBQVl;@QX-z+rT^ zc)sB=JUslw#FKH@9~ew|yv+WT7L*;R|GGL;7KykpQDEqcz@?WNt8cxV@83A4EVYQm zlf(%{I$3;-wJCS`MelK@dwq?TfQ?ROBojzwh3I0~uI*KEt%3W0#2^;sv8bSJ>XTpr3OqbezIp{h%>Qm>St@h^L{rgT9dy|l zvhiZmh>5YWm#nOTz|*#PZrgkONnm1X=Sb)l5xHtc~IS6{-MA3s+ZH3%k3a_>)ZA*2L)(ds8Rs zHX`3uG)I{bNJVJJE1&p#$HAG%%ZR*F8B2N^ELp1j@UP1^zaz2`^J-;fb;%h9YZp>c zXy~yp9zN|qug_>ATfL7T9r*yYCC?Cjg@vNFDs=qelsQvEjdNnfzo_VmfhehVUEv57dZP^10MqIbYc+InnKQ{hDscXWBf;gd>%4Irjl8?#=h!VXZdJ?4}a(0?L zjS^?$BueywKc%UOxq7tuss?n*_5Z81l*Q~o+67+`q*!583k;vU6 zamym0BZ1Zh>+Afhr=j<^Jxfmm5hnH8!hEh2XC=%%amgrxmW!R|yg(Vz1sA(=$VH_t zLOP}sP87X1fAz1w=LrYTEAT-l?UZS;-K1R*lTx%t+ZmUI&qv`(B&8SSO%%D|KV}a9 zJ>(ZwRssw}XDgJ^0cU;by(zavgi;$i(I-b+;U&T13yuFY1^BOW!D9MF?>7A47%D4g zf>*D`f+lc`RkHtw^k01qxM0(GK*8zZ{aX|qdn+PwOz`&6@8QI=+S63Y z0k4Jib@(PCcQtIXqm&H{G&s{95|6(^$CkjGE^zMgqF39gOQ;ia?6jJZ680j^kcMimz&k%dGm&qUMZGM_kG13%O*xB%^ z?{WI2nY!$3f^zzU-YiD+>6vEBkR%eLb>G9!XInHr2raYn@IUvX2qaD+KJJ&{i&hcN zjrDPadj#rVv&<`;2foxBkLhg&CI3MV=DuvUzeVg#s(*A@40$GUsmbZ*sU-1hSh9n5 z?0z^_I-4)Jof=wxnTcmO)AIRB449{?0qz|JTTf4m#^)+>!^I{-h*7rE#uLSB%01ty zjc$cN*`OaCJSJeS>J<|z;$PR;d-8f**U-8Y!T1LA5KNSv-&VOkO1XV5e10n5H~m**vH5|! zgNYbC)XS1#anqoBW)H)E-0)oI@_Cv(#O&EjIsQ>`WyhH)ug+k6AWpm|rSMe|Ntf)B zRxP0t?WETmZPR^CwS|t=?Vma#&N>|^XP+%whHE$9Uez<6l}$fG-dBHCz_#!d%ZuQH4# z4QgDMzf|?Y71NhV+0{_M@9`ku)w0`3ZFx^=@2)6^!9E4}HSEiLEzHn7^SyLfEd%;`kh za1~;%kNG&%(=M^EWq7sih%D8}W}2RUOi}o_52yaqUetAFwu%4t!C!y<%|8p?nA!{8 z@tfe7xz%G$!Zg=wGm-2*ySzap`HROR=2#z!59ga9r({D^YhpU$nm+L@SSv>Bp1XhvG9XEsBwKb~jwArBh~f4_fL7i0_v^u8sWp0U=a=0{qyNk}h( z;~uqn{k7FeulA!0Tu#R;uxXg4_1TCv3XSm4M^*Xs9AEKk^}yn3isR>oReY~~=f@Q8 zeBH=4)JiCU=Ho(RdbkT)X#+VtX| zzpvy3stJrY9Y)Q@t=sVC0#+s7t~pwtD>~FuF#P5RI*$XWPjJfHsk zwY1D1c$Nr0s*m$j@t1MG_{PlE%YtPK9yt6LU&eEnd(`@cx92?9SMIs5&- z2A1fj)3cYR9f-iT7S=Z6dSOt({cD8r$d+{Kq0#-{kOZNC0?gw*D_q|ZbfU1pUpwBf z|5Q$CRx;zi3jYw+#JbcPiYKerr;%y?U0wU-*ZKEnd(LUngY|6(f1AG4fy=b>U(vVf z8{mDGn(-eTx8k!nJ)7Wpvb|5oQIYDEt{p3!D0op}|J2~p4tW?Vs+WSs_a_D8b750X zb%)Z6_~yShfkD)uM)6|-KF-!sm;v8<5-I$&!ys4_V~>!du&G+%^_wI^UvHihesqHZ zSpiSNuT4!*9p?M91mxF%)_+gAIFyaOSJYT2{c&NZu*n&#zjJU~dL^Fy(dNY`!6lch z#fUeLWq!Pq+olW9j^e`dB)h-L2=1f(zFmsa=!>*a(@q+7*EqcvAh>RWP02ir{0j8-MAElaH{r!#0pQeGgIy zHoHV;;*E=3&5Uc5=uwp2gY>Y&r2pDTpOSsvfUP)-h&+>^z{rCszX>|?r6FN2MliT+=AV>wA-!~#Mr zFtJyA60|(AS){@ks_~2>*vB{m%PnI`DiqBPa+Q%yNm%hcGWhg*9#o>3R$O2G*rg2Q zk+g)u>KG`N?tL)V z!RA7jVD@x$ep2sIKdrZNPIHZ$daBU9{|5lG;N^n(JI_RVMWyj+JF8Wj{}j#s=vR^N zJ>9=LA5tFZ48EIrHkfmNM;1WUuM-j9Le>|FXBx%PDw-;lQt%#8DkW^?`~)|4uc#G* z!gh@C_tc{Sb)8FmCL-myH6>3fVj8wqaZl-kp3tP~(cu5ye+6u~W8q&(Kxj+dzRzJJ zqswRFBYyKM_@enSEJTWQhRxp5e|O2t!t#l?L41n-8bNz)w#>L^L)Z?=S;LR z<*L%{HXCQ&GR_LJXut1K;~e>#2E+ke?k%={Jli=+S=?K-zL=8`#Eioocsr(bI^0hw zowBr1ic#Y}?ZM3EIzW9mIp_ZL2mk8(E%Jd7U{0fR&JIz=Am@pH zC06Xl#9=jf@cWwU5ggJ=NAA#asm%c*m*gF*XnnpI`yf}*mt;RDDM4-wl3CSf`|LWH!Pma>uRWT5*mA^ z`iww$TT59bZR}bfyQ6Tb5U)YjmX^E#Um#trQtZs*jL2=c0pVu0?lJIfMJ*^|IT$z1 z1ullqZ=9a+-n`R-&}-Lbs}T$&SF2dAZ&hxa%v7+f^{Qvi(h5LXw^+^u-RE*mg#?dT z-8l`|{XE(DQ(bgt>rirGvij~p0ZRq%Oy!na<;Z2~l^iRqCh_mADc!ZTu_k~~yR<@~ z9O^0!v^hdIV*y0TsBEWx^==Y?F^^$j&Ng<#HQSqV%i5DtcY*B zxGbAl?WHSSWY#Ygtw|sn6`$dr<8u{CLx|w$qpD-}$HrinO(jqB4VjJlI?~B$Mx92> zB#kv7W;~Rtw@H8zeH6Q|b%TNvL6Khl^;|p%0hc)wwLY$g#xMwT>xS;!mrDjW!B3n^%wgmX19kN zv6m6t5)5xBL@uZ{Gr6j}j*ASfU{! zQ**~U0bqEA4im=Su`u6Sc7I0R7*_`gFNX*IsMn+RNfslYyO=}qy&)BeokXyaVMCgw zncAZZ{PK~US=mN@Mfa^fppD|;s6?)ABn)$HVrU(yOhQ{(3>}20c%pscGrJV?rRP~g zdJ`%o9=_a`^(JI-Vd2YCJ7NL33MNE2C#KddT^vD=>@ysQ6v|r;e%0 zi#uNhlbKwet?`1avE4o`%f-xg14c_qZYhCi7_waBl8| zX_DL0vPEV>inxsL$S~)Tx4d0>V9=jbhx;tRheENy6B-0Z9sVAeXydZb)SV<9(?MuW<=7O)Qbt%U=Yq2Prt@`wG_d^ zhJOrOysF1#OWD{j`omj>s`T->xY7%&%@f%1Ty#?MXuMb?S1k{`%_lp4-$TRE)@Dlv z>s{g{Ou$a^DpW1^sXVO7CO0VGC>})iezeo$T38Huq>Mm-8z;HfzNq zrz|1`#Mgp-iHZlZ*HfLzoH=T2fFYNwUjLNmj3}HMf8(Hi{qqV;1S%276|v$=CXH#q zly?>JL$RJ~ehC%u1*RNlx&l1Q)^%PB|Pv5{H9sV*Atz)LqYIxRd?)=s{OEg+c z`_M)2JtSt~Q?PVWUc>T?v$z6{slYdCtf8YGdUlUP%rWbU5WsKELkxVH=cCf7VR{0| zl#Eux>Q~5DA-JP~^<;@#b$NC>k=^nf?i<{|?38-~1Lnxqz-nXAAH%q#rIl&J$NoN1 ze20vX1dZsc58*U9+G0wEpnB%IgaCMb0)T(?2xQ|A)s6s)Tn~-+hw>u`iWoGu-O=G!ceI@4a>Zen&r8LAX#_J%?sYJi-&aT z)vZFPs1;_j1iYaHKh~N|!8V+7Gnmx&`89-m3oZy&TZ z4tO&w-ou*0jnrJofn@u!hhdVG&+Lsvw3b?CPgiclSi4+JgVnXs&P=6pD92eo=tf$l zil5Y1tWV&1z1KsN^3xYP`d;NZS6d}?*o5V`O~FWuspd2 zB>5b%tV3p|nO3Ozc&Xm%yjjBvuvaUe@lOu{ll0B+@`;*+trRt^1~0uVVsy!`G8qmHpp;bo(GQOdHGCg>`t^BH{0v3FXw*zmlJI+-w$G0W)-`H)*fM78SO^xv6Ld!2GQQh^Nho?+(W#RZng zIPdVugR!B9B7_^M75#m52w=Yvs#y=yo$;Cfb8Nbz87cascxBe0f!35UhEiI}y{n$m zS!nZ9orbDCo9f{;h=T%Y-r9nYr>Q!ZVY4E}L#~nvoe`A7zDZZE@2rO&raE1wPWd^= zf;!Z3O=*k~~%g+2lGF;mEE>j;RFH6PJ#+#MBVSPoMY)2sEKJZBI>2X=f#P zT~Cqi*XZQF`FY|nK6P?;v&e=PyPyJ<2cMU}hjfa#{pT*CPIeWJvV_N6nBudl{>#bP z3F?=ABhNP3PCqCtRS{Q@H(&RdeqIf7_jMuah!+-VHEOd?9+ilSTRc>hRwV7-cqv=F znwIuqrOPmb;uq(OR~H)M>W@a*$z&1U-$5|#FR87wxG8Z3OegfMXLBAt%%`Z2G$yqt zIG8Ngfg)ZwiUZK9RQ(DZ*rL54ST@6_J(#Nb1?9 zy9a*G_y^2Y=JHgFPT}C=UmL&JL=kP+V*comLKB$YJ==OO*A6BA;B12a`|B>!M8Pv^9{^4dpQnb3W*@UuE# z7wtQb`~m}Hk?;I%KMOSKruY3lo*V^lxit{JYp@Wb;2#5lMnr|1Prx1T3Nb@8A4$wT8X; zwyYlL;Qak+nXCr0)8Y~iZgl(|6td#@HwOUIsn+##yGTU*tmJ(x4h#uWP>Q~Po&RsX z5&E;RC;&`PU;p?qaKiCVsb(J)JRVhVpZeVA+UMmE$Dpfqi)Sd4yy-95SB^nOAmb>X@*@Uy|IRDLV=-9-kbqXK$J)8wgFR zS}JK8&x73^7_oRiI)qagE*Gtt17nPOs^7j0y%SETmKf7kWU+F9+Q%NvF?|Ena&o@-hg>+SU@l2Z9O%j?%XFt<|OqvsXp6^!4L zlaFf|2MiFEI+6h;vHr4l|MJB)tCc{(8cLO zOa>)EZN!-xTMXXNgu6vMLwTV1V&+fE(V3NIVg-*?6%Z2(O69R9jnz;qZnhV=Dci zRp5+GOH2FdxVx&4Y=>`GJkD*c)5&(NN-xC<<~*@>|M7*wC_6{vj8#0qW<)qPJ)TdN z8+l}aWtFYflXYLlb64~m6NiST#)9qS47%^#GRzaburP1Vy0Fc|U8=LUk8{0jb5(1G zLLkl;ur|8M9M9>AaCf%Lw&bu`c)?`U{YB^~M}Np`v&QL`r&t409J>pAwQz@XI);VH zp=A-q#Ow}dxoR&JyP_z3gUgu#QxNI^G6HRH8vI>6w_~xTQXD!$cq#I(IXO5MTZB+o zx}s?cPfBGc+_uLoS?JsdxfGh$@h8hS?dOtnq#ytJ6G><`o?ncZ3&KX9rMkjKVdU#E z;MBc~FTHKvL7O+h?R-cm62*?jbM@1QXI#PqUM`Krs`uH+<;H;!wqgLqyrD#tR|$*x zZF4S~0MsMVa|Wj;_BQL3v`O|{^3(3HEFB(G4dF{VRkYas`KH?lL^b;FY_H3Wul+D6 zrIv?R3(O{g_RnVf)Ur33ThVkAAmkM{flv^p;BREy<65JV zx)LW_k5b#z*x?*;B+pyQEurJOovhiRbIqxG?Af~AENaibL=K=7JP?%^S*0cA4m7*r zdj$N>lz&}ujJ%b0l}vdjJX`L&Gv9M5HF1+g@@<8UwhMAq0^L^l;1@tum)R1WsjlyF zp_RpV$n>afn0Y84YCcq8%=S%7EV0hH=TpIEmhSYa=I2~)ZIvLgMxL??3F^TR0v6gG z9DfwtG_O7o$0XNtH;5>uYYXBEf(v;3H~Q`vTop;CZ$YPi-EonAG*FRLT(NY0dUeyRuhe5S+Io{T=}w6!>DMf{K9DGEL5Vmy?-t-=ecbK=bhBRSF_HtnSw zn?=O?wZTCdX!N(v?;IIZ)hnc{_~J2CK_fW>`G!j^aHuQ5CjhHXr0D9Qw_ir9v39yZ z4ub+xVL-M-a-P{4Qdd)VMMd^ESagm=N3ZG;blvr;q>1_iFq?aj$YPzN_MwNd)BI$9 z8+tnZX~PecU*_S&VD*vbq0?^=|PcQxk*t=w2Q|zD5$j_HvsRsg& z8)C;Tg{^8DU#I`Y*jq!w|odd++<%dp~=<&w8(aW-XUXncJXhkOgij! z{^O&I^(>uyOqNd_?|SW$h|OqTG$5JeEmSa8Q*@=GlAHD`WLY`xQ$Lr`uPH@kWb4fS z^?^x00Sm}3xWxP?Cq}VF@}3YWf&rWeO?GxHyQ0RFI2$ulASi@&GMo z{RvCCPjuXhNIv^$&LPu!BRKAZjmh0W)O&3z8TetbpvNTvSb$o?O?-LI(3c8{&lzy3 z#J<8#(c-cZnV39h4VNISD8lJw&{1>C+jR1a(eB*k+<^>H* zn!SYLjGdXL0-XFTX^g(~bb&E%mJct|+4EU{@F+C9d~dZ_f4jeemZz)BhF6+lgP^3>{^I-)>_&1<=ZnxRRk&Am-2;YHk3Y~n=T_N5({+-<3N8s^Fe~S z+N-saNB*5YcF<-#mJ^uo{9#=#lun5a!^+dHGCYBEA;EgZ{Ggd`KHDevce*=8xu}qz ziH)!`)iCPoj*jT4lk1xa94e~hG0R1trN@j`UGznGUPr5$(C2qgo8hIsWLkqC1j~A* zksd4=@#CGHEmf7H#d=u?RF01WZzqCKO7ULBEilGGjbbClWG=j_G(EMH(Yd&tN zdWTK9Yk*u3_d2*Mi7G!J9nPou6z2vf7sY1p<`J@**F#ke9+Z44Q zWrrptt+FF#(|-KYKO;L`Wq$=pUagurVZyZ)v*}^gGuOmy(M$MtbEjlGUkamLr^G8X zn^L_`{H^zV$C*FB+4ANoLTYGdWF-&%kvZ<_mKL^jePQ}8l28jD;d9Ds{jt{Z55akc zh$I-*UT>X;=#KwHLH+bt{d)(=j1N|$_DOy;5q)IKrPsDXh_r1^d#GszIJrPFVfqP` z+I#f?6?(tG)}}NW7P*>Zp<$)Xn!G$QtblJNCMSHdYqC^s(YF>&&jEHqv%9ovxUJp~L&t7G0mO20wf|qYc0UqH zehclNUH_Ttcpq=F(n4Ps@?|w4DE1>LWpyi9Ho;`BvetST*!OEbR=Xrsz&`(HIR2Yx zgfi( zCkM5t&%4`DqoKUI41N`B^X@oKgNf02CpRZtwucEVij}@d9wlxT&pmVNOT8^&h4tke z45w>=e9=P?as_xY2b0m*1+|9Pd~QEri#|C6pTj^SVBP{rbv50}pYysSQ48LhHy_6J zLvTLb`?A=;3HqS7-_ENW#wk64-NwmO!byf71~MBLSDvxKX(g%)myLpl;V-gT&AdFl z7e2wdJcgPdc^p@;{$#$gud$!gCb~r*$Hfu7bS)|(9AlWp>OJO35NeO#OWuk$b?0Ith4UGNW%Ik_)DJX zB+ff5F4BZawIR!^N-0mT0^z=M^!;?7WQe8TL<5YVdjgZA(2ST>fkRkYkdNl>JBKBY_?K)@9vfD48eG$ zAS+xW_u!jmjxvic?$Gpi8XkOER{5hJdD?ZK#fU24YQ?(o7=m6ilq;f~be1vfsNmzM z)Z8J%>w~De4`U$qTBsg|4=oskThHARHoP@Wd-J!ke`-vBMwN820ib59CEdot+l;z- z;kA$|>8oC2uQEm;$jTATt~jV?q@loWPMyqYs2=k3cRwYyW|0QZjQjq|0QvYQ?d4>4 zJ!Oyu3)Ef{o5&lx;sjgGmsO>JNb<ao?xWxX;~fA8q*yJdr$(P36=4ZcVz<_gGa0DvI1u zF&aLbJgK?=;DLIe_o*nZGRTE>F z*C_RNX?E%;IC$mj0KBzUO>fzf;M{2QW?IIk&XEH}6orntk(=?(?{m{>v5=OQmi6EB zt1$u~LWOQz?`u~}~bin^{~-JENhpCRw|mv{P=i3N-ZvJbpzl7_Sk&-JVL8EL(= zz@C0&Se}&ZPX{;mFmhO%BV#W2I9YptAYlOZtz1(kjmJi8yl6gpf$4?GMW_mE6G8Rx zFj#hm>0Xwy2o@5Rl_tl=UtHx=rXF}b^O!TOvYYDa6~7uE_e7Ma9J~hB4jBcwD20Ma za7IQQLob%6Ga}VA!Zbv!9t6{zb*W0T7K#UaXGW;rfFdjL^{J;ovQe6SNSQ`a73RF( zR@a^Mlze-xp=9=41Q44;vG6Wv4A*<4|ME}xz&LD(i5|kF%%2olGWf&fcIrB))?%jK zII(+*tQFTgwRxE=P>@xhH&C+aTogekm5vjK`O00($P6`T(&VSBM?*=5(<%vjyCDE+ zZ-{BYp$IWyDdoX=1DEKSy`VU<>3Ze54-=7fwwqR4Ah;*QwRXwt^3G1NSsUY*R5R$v zD*@8JR_QChF}_^<@Wk!x>;|Y17b)Iee1@@Z;0Hn!mtMIBNOqP}Bi!y+S0~CK^&uv) zPE^i?mi?c)X!l2|IV3qq=~RLMfTqfoi-Ks_x%J|QP^I1U?`-0G6UE-G`<)zzMo?L$ zi6w&7gl&(d6dV%Hyciy{&;#qoDYvl;Nr<|4)M9k%8Aw0}oqCAlaQ53zl~$v=JtU%> z`4+=UdKm7caGfU{S6paNHrwKb8#n(8oO#t0u4YD*G zMLIR+`%VeB==?$a^So^J9xP9;D#PrV6BcY+G5tFlemm9Mvb;yju~|%cHgeDb#la`O zXO-FwCRHl~S~jJxx5QcVIA)cRqDI?Kr1l=vG&Q!dnkX>vSXnU{wkQ=Wab|c(04|JX zHdnswli8O{kW1?|Qv43pgdOUm+0{~$*Y@*A_ye8BIYTS&6V7clh*bcu_bw^O#@l`DnKosZ`-jRc}g% z);dO;Ld-LDlKwJE?zJUh-0>Xji|?DkB*O0yOZdglJNx^3;))*0vtpfaR#T(d)2+N4 zfoPeyDyR=DR;#8@x0=>#a=!oDunab47O-!~?-8P|e%kSXX>a+IJX0wA6UaIz=eNybQ*i zlcfkxqb+VKYAW8)gv$Aj=NI)(_vp4}D-lT-e-`?Kgy$nLHTGl4*KAU|ey2V4cp_#$ zeiszSs(W_U?US_WAR$LvBXsQk%vFb7Dk=9{x-PBXBp8V{{A$zaZ~{HIg}P;A#)p># zV#nJi2Vm0vT;m&ETe9o+=!>OP|Fm;qXyu#G&qC#4=wf;oGgJ zFK%oZ<(P+0|v-A0|lw?p{D!)V9iLu{HLwV$%yH=hwMUD&(_BO)9T3a4;e%c!( z?7M+vE*kYEi4xQBApJ?tlVVsi4c)K2fR8NMmm-*e)t=cn^^Kw2w#uG66l24<2D*2YKu z15~8J9$1HRw2o z4#KB_J=3g*!$1YI)yM4cwe+USQH^#mOz?k^&PxfbB1WQJ-MT%g{C2XjRE9=~S}QJU zv!1=FWy7O9nX=S|Fp|Bc=(&?I;6c>613ZY)B;yBmQR-L+J&vDD`@hdIXR1y)dnr9| z?YvE~twlS7UafCwCRw*D2vK>I`a4_xTVkTRmk~c3@<&%o*0QOxb;{5sKkeHjGp!6g zxN7)bQ_(hrvWt2DF+=40!%M(V(>53aw z{f44i6q^__@p$-?z;knba{e8O72FI2)~*byPr3emwQRrD*r&ekw5J8uP3$1CQ+6=m z#=3fr;QK4aIwz3ekPw8;!XB=h^6(`n#LB6*Tf{aFSzLm5l;75Z3mdFms&q~!NaS%0 zOR)gSiCHf*MXc-jDK7Y@DtBn&5pGvGd5u*^pKbNxIB#ZI0fWzi0Hp6S&qsc|nvOn$ z;_>4z81491982@M?XF+r2$dB{a`0oP=gM^HuI>={By;){#qVKaE9pLP90{H$wx~!;ZSygPx3*m_HOuBOPTbYssBe{u!MeNP&Y#DW;my)LL z0+f;sYtv3AuiAAMZCr)bxg|3C^HjyRmFBvrH^1^` z^D@b4s_FR@66s;B!qbX9?q_^0x6Vs-Fe_kUw~M?-ZBzj(c`0 zVEles0Ht{d31-$pJ9%!U)y*3>t_~DsBsIJLAU$=_H6Ji?1n}P`ER-HO*zD*Q#vg7H z_4n}VPnRE~6HbS)Ion|i4;@U6q*9F>h2l=bsv3^W z6oNkz1S^+VdDiP*|lAH^GBUFUCi z`6)TZEw+P4MnnwKRpyI7SnPcA>TSHyqd{DMvxdt$^oD;sbK}f#jY3JsW9X&B4tC5ioXAiA3)`K-C^X2riIvGT_ z^ZRM7qNvYMwn}Y)Yr4UdI*lhkA4^qWSQLQ@)38jqiOQ;x}12&~YG-C5;-I81OsX?-R%eTT6P^9Y?{+ zMp7}N&Ze;Q)-`o{zfml>*my5k9~>^Ai%+Kt|nuD#^z z_xtxXCvqo(PIvS|)&{zdyt}+UtEgWc&B4fFOqb=6Ei#*lTz6IBv1R7A?r{3KNX0Jo z(#QU`%2;{O@^Ljq9A_#WRc_Ir5ASI*LADC>rl_SBNtZ z&TyBzA#A9p$>mQhjH~A=&p~{6@AxABORcLVC8RUp-@{3?k-$^oC;Y($W6*Hmn(mKd`fdK7oFJn`C3(97T$~xJDW_7kUtk2UbZ%@%t z+;i9Kz`rh8Am%bZjjgc3J%YMYQnH|Lz8teY31G6{7?G;tjFJ54OxWIRGk5l3w>1fQ zHocngC#k6VF@Mbq{v9Sd*0Ir}x~-PG3&g2Cll|Gb6jt-&XbU;7nkJI zbmSW!|NgcA^_ux!^7k7r{LRDGPtEFU_Rr})xmrj1X8BbZWlt&X<&0Q1oV%G6)s44Hd ztgb3Xd)nb4*tRd(eARfj-I(pRx3U!=>m9T4^gn(K<{V&Zwjdo^Or86dS8Xy&YrJ7j zg(W!r>UG)N)}6e%$BAUGM~SVc(*$n{z2D+Lk~#c}*_RQ;GR$yrki*p} zo1XkYdiqJLV23(GR|BPsv%WjNo!It3+xvN2-=_X#3lR&wo$EU;Dv}Qg-QulRSjs_> z2v5_N{s&M&hUdw5=@zB|X(_2!ydNJvejI)sMvYqaW#sU(T;awTBhMl8GZnb&yzv`NQvsHtzrZh-E{@Z8Gd};chtsTHM^Z!fG|8I%^|NIkn z5zjqBs^nrCdU~(}ycWt2{H|*~T4x%U-pj{QZM@up9nX3L9WGGpuSCRe&;|*l^s~`| z#4lZ-0Oufo*Zi{Jjx3cZIM%RDjG_kzS6IK%1`5p$jTAq*J&+SxI+4SH00vqfuAG$#KM*Z@Qopj=yq7)^b}n%eD4Wr{CJK8cLlN|#*XEK9;5VdX2!pwF?HwNi&FoVLYwaH>)i`=J4G-V7#af8 z^p~6^C@v0;OuB*4sH^MA%zj5`pYY)FNT;K_`|wJqNFs|arN{Q?sm<+`<{jz6>DmW? z1vJ_}B%1-bJ`4G$33`&XD1SzXb}&ek!|fjrmI#!CCQO*!bo0H$+#eFXggs-fWu_t5 zwos@aQcs1PzNOZu!@5wv1sj`^AoE{Z^*dmgNdbh=YkNQTBYK%F)YxE|??!3kYfX{2 zCl7%sC}Kd|rex1?L%>!lN10T;T!yD=#|?F`w^T6JjQqeEVQ=`{s%xJFplZ=IJ)z$5G}d1T=8ImL5{=_ZOCY2IH0J<5TQJM$IwWDPaYr4;sXHd+X{GQ zpIaMOHxI0)2s`i~vu_Tu&RNqkRNm zXvJjy2Y2u`gTcw9z~Wz~0_vC;+{Z^-Hx_?@aqy{cUkVQ%kX_{8C@}v^HGjM2q4!^! zxn9MqU%a;SW%?NjHh<#XDXXOy_H6}{i_$MtxNQcMmgn3-XF_M_NQ+P!0JUCg;K3GJ#se;M^O|*e{!Gury#=xH6v2H_g z=zVfb<9V$0GlC2B1>SYT=MG1S_*THK+k85+QDHb#PR2ZHCpatx4B3-H!$D=;SM5IQ z^~>wsJ&$+46os%8K}$3mpXFeM#)K=@w1?N%E5~a`vg4z4|^gKeQ0VdEzogHdfxJD|V3Tmm*;K$?Na}(FM6_>a@J+dHePq zQ=rI$=7Z-6462d0uyFG&Kp}_(a73254%t?TEb86Gr4&QJWVOoSioY_q0DVLU6bGl0 zuMBwS9oN`<{#sP@_;F&EfT~GMe8g#RAdxOo*9xV!>`Txil9{h}(^t92LX+^*C1!K# zKxn6bBo`#AL0y`SmV5$zgwyu9?8!_6$&qgk=-m|V8aYGpKv>;X)6cOI=wH0U6KDTA zz?bOn&r(}+?t5PG$N12&lb+=#wBm?5nv6$tEBCbPeVOg4v9-9yW2TlK;MYS~NZ&bb z1M!m9y$ish*9bAWx1!Rusn_zWJz}KR^%MbhKbpausrMy!u~gN{;KTg5d3p5rd`evZ zd8Gr9`-N)i^P3jP4^lk|%Mz-t18l6cXi=0>$y|rW(Q|YqeaJ9ujc912+@pvd0wc_l ze{ip%_*xyur~vBtu=quJV(!csa;!ruBWu>%!8^a#7{HFTj}gQf&q6f&%av6zZUvWG zk3s3(Tt-$Je;8dpIhlI8*q?OkY3>!7d!yVJnPPFFt`hWt=8E81*ROSorJ0Cu+jtz# zjjBewkxuG-S4$LN@-w%%DiYiz63Nhm#couuq17LMVDH8>Q>Qh8q9Nm}mpaNN1{HK_A4 zG*%*Xxn>h>-K5uT=$VmlZ(<6xM70I|FO6S_0T1{8*7&KO6&toheB6gE9P34md9}%@ zw2y5FJcNt3bD>>Ci@oPsQzAy3mOo=vZ_k8X&&iJ1+&9I-TgL6RclHb#csxC_`){JjFeGT|py?v2SzN)tT8oY-{!ZTjVEJPO#{7it?de zlszua$lr(E(D;|g&+!kDpXC1(`LWx?dzlmyZeN@oY0lTg?WkYAe_wp6{2k;28`SJZ z_Pi4@YDK;A@=mv&y9(5Vzui^isObD}m4AEtf2sVtNA+14R0JYi#?6&yzKY1FR_{HR ze+X4=$J2GGHyeB`op*armgKZP`q8n8SugT$gG;8=Q7VtLmwCVWCFq^++0pbvgP4yb zh#5NV{=`2dZ3Cs%qYiw(9VX{?)F=P`etozQIXae?_;T9FF~XLa@@i+!K5l**R4b|F zzIb11#7~=mZqdZG9yv=a)wcV+ZAcAQj+fH@? zKm7Tss3s+nsQ1@G&im1N?5h2^{e%nrj%R-v1tb~W6641ke$Sjjc71p6(uE#&tnQ%c zRMtNTzCC#dUEaAOWQZhgU)?#&k{jErU3DS?pxFqMV6X2;eec0RD&qD&eIrm6Tn{Y) zhiTmglT_CGwug$+MA1~EHNrSV-BFn#dj(~286pn`sRo0c{&ou7_+L%|oR{RICBYy| zmtUN0*>4n(qeA|zr$>DZ*5Y!UzRv2kecrKpWI?UzCEFd<2-U!ipQ#f88`U3I|}eT83e3C-8o~8Pu1kbtQxDV+P4LHkyuXPNqp=upJFC zIu54AlXsOqA6k8;fN1~(OSLee!>ya&zPBNk@+;Nyj7wnap9Y9eixdO;?wZmouLi6@ zsf=-YgDNf7p2A0BhGxd93+W6OL`PvgJcyWd#Vqz-yGo#?5-P$2_iZ#t*^@%AcPRfkq%LtBTSZJnyx14t%yh z*i+5%9uW%ZJkjVtkzA3{=Ge)>3W6rkI>$(R7{_LYNlvfER+S% z+|@)kPJ;&g9G%Pf@~?mZcJ(V}7a0zzdm0<%L%5#q;-@@hM*ys*>q z7)3WvaXTUjzYQ&H3+_0P0<&}AQf)WEvzYC^L~zt!^`*o7 zrol{OhOLyGPbplfUNx7EsV38t$fP5wZDnGqxM!IEGFu~%s>iqoQf*ObnuL+?{T3P# zl;UvbP$3h#R7iW#!e=>^h4Qiw$cQg)_U}`=fbA9ow~*o$j0Q81Nmx z6Ks&a%K}8~H*I&MQC4l6tA_J99vAGV3ZKWD?~izJd(*~V->+N8;fJr^>M#Gt^J?Bw?!TbBSbKjDJym5h55bH(Iyz(ocf~*U)*qZ=vw0&lFS(mv zA`c>0-DH;LIGem~rv}+o)555jFVAg?tepgaBcM?Cv<9(TwKvdGHNW@ru)%IuoidtQ zm;jjil(ScOWdaKd3f5ov4KxQ^e^$+3bvqSuicCNc6KfJsep0ce+w`L8F z?U@D<12q3*H+earDdT_v!W8dhP;G%T4=>Jt@Ck``C%z}fI zGhL!vk_IygW$7TXfO?ic+7^ z&@dRfkOc~^8A0nSlJ*mvl&McozdugaZEm}+AU9*zIg+l5`9AKR@W#`IrBwu9n!pUNP;?7b^%+88)pq)gqo_@Aet$bxn>{z*uv1WfshoWw z2KP1+VmvkM=25z*NqUD-5@SOabE^EcdKcSlLR2C!o6=OfvZOQGk@0O$%f>>iKUQkM z0*vmgX(?Q7Dbh&!dGDnry?XuRVqQCF0~DHQNs64l$j+AiUv>p?Z(AY>)O2!mo5$iR zHlHy@p@yWS-=okgTuMNVMqRKE_XybxxLz-6|2!Hpnu4b<0z7@C{8on3@|(2Vd1oXR zLJ!q|Yv2R3(QV91bnby#ytuKEpmj!F{w$V1g{b63vxTicHVrs_Xk$t(lC6$q-BYre zfca?GBVZC?1}m`WjdtzJU*En2@FXDs9c&pk(P9S%}6{!HEJGC8d0KnS<2#uZ0tpC96dzL`#G*i{`Z zFqFmgnXM$Zi?P+?zMS}2`_qK8G!g5#GXEtgH@~R-1&rI>4hwhwnyqDkM)F4%y&q(1 zwtY2^TQ1J6Iw2SzutN2M=_2Y{AYW)w>CE7$H#`d z)73lU6VD)DYeIeUJmNVx&YhQkM zlj+50x!ClJQ70c^S2*h`0fFPC#|CayOM25;K`Z0w9DNFN;LTIRo^oorn6bSD7OlbW zWTz@U9%8O1%x*7+?eZ(@<91{&eZ{QiZUa+>PK&gVxR9!lvHDjj(y@9&Kku!od0i*F zmc0gIfLIxcVMsi~ovz$LU=Vcf41f9`3jr}pz=w?)=uJ2{ml=PAou)M$w1T;BD^X1E z<8N1JYZ_3qfMB%;y?B(q5q3wz1s;FWn%2b_E)vFj_9pfkVpELpn^?UkA^{|DKsrO; zPPWnZl$FmX_?-XVn~6|^dwU6-FSDJsQP#(W`i^z2@Y~Zq$e&?6K80I&Yc3kT@}J*Km+6!vkoOKyzSdV++C3Ab&2;zb^<- zXJ~~jyDT)j(UMqkl@H0EG>eA)J9I@4+L2-tWM?cdYCC8sPe zdXVbz#U)Ht%MJk$i3o{4Vxe3u8-6;E{zAlI`Q5vB+lR#`zIrBl#gC^jU5945=;sM3 zC<^PXE9KHRK7amfghL=}UKx-`1Cb%1PZ-d@Bby1?bJo~zGMpwxJUrV4PRhpi&iCsZ zHjTD@D1XhHk%aY=bn}vcT@1r}Vg59Q^pWNq6conZD_`ZdV4s8$dY z;^vk>+Aw*o%|oC{kty4+^`Z0%$G-nC3hX~`kp_&C(_-`Km>6|(Ea7U3u(yxUk(=k4 z$hqc40j4fX4wceF@|Yjjll&eaSZ5hF9A$!{IE7@+qED9L)?i#qG}JV1aREXFUthmx z?fyvDAT}YUxB}cG7rtQ2CgX0W^qlUP&*rZ||DM4UQLc8GW@E4Cs48#j=We!-I62Cb z#Y?-O^_Di&GCY0%kqv#UQY&;mM9{&(q0Wrs_rcqV;?Y?5KWpy zUq(1Lh5Jz4XEE$FO6NN|MzvPEZCKXrl$YT#&9#PDPID^mjoDbv&gv<{GE=4fjSU{x z27Sf&oF4DgbLGfd+3bngeaNe^^w{+Y$?q6kp;TqE{i;wfUA$2iw?kv9rriA0%E=Kl z-Hv6lUd#Xgko=Dmqz(jla4RUns{Hl6yG;8w&T+Rcn$4T5eg<&>b7p($q>lLtiQ&-^ zLyLgERge!SNUZ+hy!177&KPc0fYQj{e;AdQqa&k^KWk&is)U`D`#vwuRgCe-gzM_z zR27ToE&YG0Bkh{a^XPuVF*B+5%5I~}Z&WsG=|#Q|JG6g636O01uvI>9rpy|7YsMa= z`Bse_uldckdA(Q@-M& zHvS|sol$_lun0}E;s5=%<*4)O-x-*+O3bt0mDCh383!-LJPB^Jbj2P5SSfiAAL|6d zpaM3*{rA6l{i<%R88`V>NKo*4idXBga}(^Qq+h*ym@YmsL7(ZNR4fbl&ZrMIpx~zN zHAl&RaON_*>38?>-U3!>WL(_CL$9Mv(x70KyPm{BueO?gjA#Rf2?~N9*fofydK#`w z=n^ehV)0EN@I0C3t2G}xM<^vF#m}FsH<*|#tI}^rh8QG*a_053z9hQTPx60%cGs^v zcpi9MivXaO5lP0>l^n*ZC25MyNg8O1O@M^VAsYwPPSGOlWbFIw!5y&ZZ@}@KRz&=b zfC87?SXW;jRD!%Jqk8P_>U!VX!Jy4~>yxtNeF;>@7>Ektv=-Uw&8F%uxbCwvQiQ7AkJr!^C z?qy%77C~ej;&2G{{Xcf$`8!FHPvp1?*l~ef#J^omI?+}1egv;Hz?LVAvCtNQT<_zCsygwQ2Olv;pKp_SG&ZnBmi&~d@{`|r!kze6`}a@8Jnm$wH} zU#OBmk557HJjld2b5i6u;jtsS=q4QPF?5{6!x!hH@H*dMNLf1tRk2tb7dk7 z{!mmmv@m2&(%d9qdOI1t1M$Vq#3diGl33 zjp^TS==wDh2jIWEb#w1?;deYBxQ9DbtQWjg^+ST^`s?xcHI>;(PdrQzAIOkdy9B_x z7OFS??N=is6ORo5>ne{TnET@({5iqx-@gz1gF|OZ-Lns1a=z;p<(qE%A%HH2NX}1r z`0!!gl1>qI?4r<01&3;_5tyNxd?)aqDW6#2a2hrTy~8G;10GSqj=mDf>o>JC9Fdp{ zCSUmpJ;4=;k3hT+Psru94zk#|CD7>+W7|%dIAD}=Z%*GdK^9`)zu%hT)I#fq_^>)w zQSgar;2lz@uoJMB;s&2QQA%bFw4Z(c#3@t8+S9eWEGC0nwh8a`4)oz-|0KpKmZBV*%#;S-XaS^JO8nJ1|Nm6pT=ykKh;Ir7&>D~ z)UZMC_eQg*dZRABZ~n(B^og0>1!$T7K5-n_doTR*;xeo?1SjtpmRTNaGa)+U@J%gg z{@MWe=@`K1p1%Ik_A9FkpNt^V-A?~!)>%~%OuWZ;4p_Rc)1!9!{*l+)0mzTjcV(zQ z!q1<#PE83Jq%-~&BjYO!gK>NU3zg3c8A1WYjzQ4xZQ7HNl)~+&S$i-M!mj5QAC7<=6vs~lf`6@*e!PS z`V&6y)c#3y+WM61&i-|EvYGFi6V|UYJO&2+)&pwD(fX+hOWBr^zu14)C}-+_2DGgy zy~O{KJ6`Ru|4i{{eaGl-DxEm@=>XOIy)ehlX(-2SV*_#LyAxGDAv@_AJkCo(jcN5b z<@1kr6Vg8Ro1Cs@ludUv(s!P0euED|e*R&6!Q5^vd|9O{X36@xXzF%sir5jeSHsn7 z!o*Rxf~NcHzVFD*HM<{d*RVVtER{3_JT7twai7dIe}-x2kJH^_|4jR6%l>p7|7-Wt z>ehap2er+(eS1lwUuRHV%K`{F|Cv~KL+}+7)?TNa>)qG#U=K)V@SwMnJ4y=Oe*-Dt;_947PUg!rk zjCX@{^m-Mzk5lV&W67Ulq}JH_ucg~>iBX+zk~**S27Vmze;|x&bJMg(;JoQ|a4)1= zOzuk1V2O^t+cu8o0HI|QKia2~VOH&b^#raEPx0?MDSY<0XlicNbqt5rOL7x6Uff!=eQ!d`t|L0qvbax6%aBq}?*zdUuG+^`9gTb&Se&3DAY#qRj z!qBm*-qtE6Y}IY`FFSW$lO z%1VFwbq@Dkc14Z7_peH{-j5V9#cTYNUwL!fGlOCGI)`pCFP|aV?5$0n544Xs6(~qo zQVRwxJANexMT44x!%%a#S5ezc%0J1-Rb0~IOzdL=^P4Oi{FJ+Jau*zb|gVUK`Z z5Xu*7w%CcKU|9Lg`RDB%H>>wnxyI(*a}Ty^>j%0>0pztM&!8c`?(H9f;T)Cs&Op@& zaobD4is()1eL};nCfd%fTdRC=y&KA`;j;TQ3Uo&axUxwx!}j_*!Fc9!`hcibN~(Y= zCtn(!JU{$J8qS=N$Ed4}fWvHO{)pvZrQ(Uy^xtCPmXaU0I<1a~ueI=?EpmLTVX)r9 zg~*&(<7Kl^+9!oHR-$Wa(p(eP^^E+pIx@;g8}r%q`gsqV?Dm~IwEmZP2SUqx2 z+IMrRLeF7}fg_-0^@vogJ5^oIdR^;kfr)TM%*0w)B8%ME?j*d#7vG7z>_D_VdH#67j_U$c3~ zWT7P5d_n;*U*jt&v&Vt$y-DwN?+5%C=-dK`)LGY?hB%+pTG1tuD5h|K?M*Hn z!cd=KoNxlr9Q7tBk>Hz&Duw}afp`%;-a`YLNFok6>wA&mVJ2)JB^vEv4aE}pO5nAu zw-zdjKk^DFck~1FsR9ntY0vpapDN45XR9Vu_xk9i3;v0E^|8rP2qG!TIMcL|HEdk< zfFq4VjfNWh6klK&&)x2Tf?AEHfZk(}esJ>v83!mM+~ZE2!(DweO(e6evMIh^Vb50E zI&+N^-VB{ggy`k;?HXdYcpY?KHbUfan;6H9eN}Z5)1WK5C_K@F&Wlyp%{;r4HuDXa zeo!Sm{XH*1J0m8#S@bF#-@)$EmpbaBRYBH3ja{6;4E9Y%|E&u5UWoE|wcU6BD*|QY z9$(Ibjc_P6OtOeEn8(TX!De~|_HxVv*Xo#&hhG5T!ahr~U$S{%_v*D|t^Y4WECdUp z)wpF~tZzXps1t;J;~88S4?TltWUk99?M;W54pK6jEhk3)daS0nRve+JT}mDQI6t#N zJp^FYySyLc#H63o4>#~8`h0fvKT_jjucpVO9_~x^887G7?XHG%O9Jqmv7658BFqF) zfdA~`ZV&x2^6x6?<CGF=Li&R6HR!sEz&ErHQU&Ud^ zUi2-+63mEg`QhRngkmR<#GeP%dL7ooO5VN$zUq7{+Q`(!QyJDTP`aY%?1TdRLFJUe zn*-9)S}2+%C8{@80dT7k%YNCCxm%^bGC16kEk)VikB&@wpqSKc*M08*m2uDzV8g^|r8MH+8-lr0$)! zTNHtu4^p$js++{@$iE^#KUy9ivRuhR3hX;=j{4l+EUs~fndS2z$|9jVl#i#g@u5dU zV$)yo$$YMuiZ_->*L`$~I|{GdMyqFuI5sLfC)37b#zK7z%WQu$aj$<*;rt;#AKTY8 zwJ;*L+VCS2vii{B(2#%i3#EL^_?tnC+wL0;<>vz2i96EbSckLy?duVgV?yjLugaP$ zGq=U=ke6bcRqj(ayhM|5Z?(bCxSEBRhLtPV#i%FrrmkiyYVA3m&cz!cuWxrkCI(14 zA#jDf{H|qH#)gSCIYCU)0b1n{P^!PW2NJ5%ir6huyrdF*auyRLM zz$L^@<0Q9>$oXxx7xt7OC3%9*i?!A~Ao)65%1iBi>_qzVB;$~c=glkXb3tcjK$wV1 z6Fy#tv?Ufpv5u~k+&rIeuTYm-A^FEl2kuHCPm<+cJVi3t-g z#cWt=kTPr0`C8X6M8T!%CxP#0K-jf#&X_89!@4f7hE^e-cvrJemYJzmW{|L4s@tL8 z2WTt?G6;MqFs392**IPO5r}u$6K^`rJ^*BQblkW#dTB@Wx^F#FN+E>xV#Q3&_sjQy z)0DB6bbclRG0U4->GKZ@pROryr?gwjup+G~DT`;GBzhuQFsyWsm z$e}%QKgTzPe^=026`Dd<1wG+Z9Db+B;ni_G33f>(h3cWYo4KU} z=FVrHnA)W(G%F}1X_d03)$`M~rg7IkT&USl(HH|yKN5MIo?4d z#>F`M`*#n0zd--s^fWL41`}aVVu4j~%he;TpN;^P^ZLyI#>Tiq=buNprG9NWrDX`X z<1euD)r{rE@46R-lW)jXHUEBGA{1;{O*X0xfq^cM){KCBZ)M;fUM%vA5KLQU7>-|A z^^x;*JFd25)jAGIR|TYsdOYd>EE-G1cBNg^TNn>(B9K@eK|{u7^TK<5XJ`WNkcPIt z@qMjWZ^NOU$vh0_Pwr)$*t^H8x;?9LRAD(U$+w)V`8aV4=?C|SFHKis-~KcFDBM+_ z(l8s6-2S0w0mO^3e1vPML6tAL{kd5W+xgkFD?sF?;m|x9LPLhBNo^*WlW`wBkOT)p zEfoEL5azvQybU8LMmf+}+YB?jt)J8CTa`BXKBljwu*HdaR%^@Vi>kBXf*pqHy>bYN zWG3t=i!4&ozhl_EWjz<_TC|CN9Q*4%TAdfM^cE843IZ1yVr;PVq5_`Mq(wgQ_Y|2dWGtdTB-x%k67c^0Q=GBV zR`ZU%*O&1+8DsX;qfDZ5-z2pvg%eJz%^v+~s^XGq8(fJ3fKna$g3;g^v6cCV{qkq9 z24^ zs)1?bm7Dh{jdi$Qhnz8%b<_*wwAc-sSqmjv2`LJp%%VOgYHl9YP9x)v9I1ekRfy9_ zN9+h@Djj^)LH7aEfZR}Q=gW3WM6%evE*K5tgz{VE@zq#< zZcpX}Pvohe*$h({o*lHO5QUj+TZrN`PMA)r;Z;)1b!Ltgh>MKhmyTt8KlsaEl*e|N z@vRKc&uDqPpYg2^ew91)Jf$%UU}`-0XcRDha3i4DWClcn!F441!tc#3B}OY)1`ks+Jc)) zBhgeZN1h1u4D%N2Ik-NNVb0a%8CKQZQ3={Sp=E8qJK6L;0pb&oss6!CbwwJDQaP^X zuF^o9H}la4Jh@GsR$YeGDVjYAV zuNjPJCMyiTA6m+-{|+}!IPn%xR7_@^*4C##GVeg%kOivt5Zs%&0*(@sc1@*5D`xJi z`mD)*53inM65rbC$&yObo7a~p*xt7IwP_VmP002yzX+jh<*e*XRmjr|Ano9Ng$sq5 z@l=RR*L5}so1+C6av^*wEjVX$XyTDF>fgk+7;1ufTrTBps5h6ar60+323|pIWGCI` z8EoixXAD9%-C^~VKyB~UN!>_8)$gzvLL^nB;#IV154WBshCR$OVkWor>2H)@GI)6b zpB5Q^5C#_4Kn3R)R1vZbp5=QZ_&Xf7!T@0}Pw;+w#_nlPRFT}?PUwv|!N=y51*5wr z>10oq0&c{sK1_NI_r$tW?ajTik&7O2M-rmcvv79F^Tz@eZ$*cIF5i(zUKC*-DBAbJ zOlD~hR6de-Jcx`U_*rW>oUV`@`Br#{K${+=vI>oeZ+h)}za|phlOC6G@nr7H>>#9% zRl`F<6Fw1TRfb17lRm)I>T&uaKV&+T?w%`8J+(gCfR-y?_=Uz%ramQVR{YUaP-3I} z6}#Q7$7E56OT_CBaxNX?!XR?&<)SE9Nos$5zF}SSC4HZ_HcT?SL(RCS@X4D&BPqwg zi({JF?VLaq7wS0G4I@40sgGkE+GAMlZ4FhVx=;6Vt8uve>ti%RT(~<%#vaNfi4W-K z;&ucXBCjR34a_&a93N<^oi$SE7)$iorl$DLr=q%70p+hRS(s|9o;Ay?Bn(g}V@ld( zGYCu=MR$OnmY=}ejEoKk3wLbeqahES7Vyt8-E5$I9-nyTwOs8A=PhaOxm_y3Ir&w) zfG!Q%k<@iQbRoo+$v}Rt!FIoBxm}jh^Sxxy7kq5hJDQiDu6|z4^=G@J!`q%9^HkTw zQYhFF!Xw89e^hvR+<4s3Q{8GKl~S4DxpEN`Eu^FwNaK%5Xe!-??W6S<6cd<c;0JcjG?rk>Wm&eAAXLPq1{SKmO9V*Lk|_6&?5;fAQOl zTajnYLwBr%6HcGI0~dy|sp3vTgO8`}hY6ko?Lt*QwL6`S>1~sT=5VFdJD81^91Mp0 zrnFzM;4up6jh>c$<}R$tL#Io5$!-9bnC!C6dr z317hr2thTb_V!ueik5W~0G&G#%#$XM@-qi3b@d$j#4=GHDH_sV$BT{EgZ z>RyRRL>KeWy%LyM=5v}5&16_ufJcwB8`!GtB43n5=2>(sT4C`);&GemH&hq! z6OH;`lssMxdD)ESD<89m2GB?g2p)**8S?*F^9QoVC#)`)pEu3r1zBetB3+ckJyAwa z&9?|%ZA~}^g}IEsL(439t`0+LhNTk7P<>G;n3=cCBQT2gy+tdO8BVfDnm~uB_R8yC zWaf_It4kaW=6+O{zp*Elh>TB5cYstwcKx*PH>I>>;SXkr8zXa~J|B&qST4hV5_Pe7 zS<08KE(s_uakeU|QCZC1kuyPbgjGV(y9I;VtN40VGyx*25AnIV-1#O;0;dh(JW(bF zOh(3<6M!Aa$B`ths+;P@8ff^Up@dbi!&{eu{0{Xvd-!p0`H_)K8T;iny}Rhm7N3_^ zB6Vu#4>7h;;V3&ngdO{=i%Py|qt(&T!wYWIH-mD0Y2w!9*Gr6!$YY(PbmMq!{sgTl z-jfcj+kWZ}@hP#F^77Ax%gogo3Lxs`D$Y{LS)!_l6>l6{(?04y|M>EmvEbe0@8G7t zOL~}&#ET%5)uz%w(xmWI&#OeW<2klj=^= z0r$!t_v{|Alf2#V(0kvvAXVOIIP+VgXD{FqYg<`(s!FH_-@n~Qv-FOiq88#@IkMs` z!eu~VY?+&bBQ0&9Ww%o{E6+p~<|h22$P-L?)IPdb*P3@iRoTj^juA8ZJ{l$*;znV3*8{Yd;riu*j>jkH;Nl|P>k&R1>+Gind=B8@3s{o3R zxbM6l{vh9b##U(wk2!4`MCEWC3w!$hr#+|edgM2uPOEItdh+JVVq4Y{8FvbP!t_zz zMxvkn&Y{YmfjVL*45k#pQ+5*b-lX-RT!O>gmax~Ar8cxjFJT!H|7qfQ`4PY~|4*YN z@cS4tjx`pH*IMFRMBR9KSiQS)bX2WB6ulv_R_uJ-KfaSD-GuS1zAx#E;#bM0SDo7C zH7>V`s0)E-)UJOPW&+K3<3VH$Cmn%1My19(hM>e!`%aA-G4oM?!M z?%jI)T3WA$GQ_j!OIP7CA@Tq7gmF<2BqBe*ivJ>LW??ZQ%8uB@`_a}_rQXi^N4Xo2U-nwr^OllbjJ>hTtu5je;&o+w8IMQ^KQ{8(Jb~5W; zBH-3S_kl|9^QjM(k=C|3mn@~$vkuocgmrZ1BsPuml+%vH@CrxHhCGe9S6ayMdCggl zdmrF&?20@%Hox!X7gDC1-`$fVIw8?a*&f55sCvgFwoNmS7lnrFua7np^76JiIhDO5 z$jq~zzTMw6LDQF|={t*?`!BSnps_x5Y?c$eke@i@rd3`}!7a@{F%nLEI!pQ1-^}6S zl-0DPyAVz|_5J92SNaQ&lm$xj)eURM>vbri#%#`j_BM9;FADAT$DP`H)1rXXd=&i}X?1UovITb8Buzc3J8_ zuiC~wVlti6rFLq)k$Y=I#=gwAfV5^Yqnga}X|4X+DW%6FBZh2^v*DQ>J`V!D@~Smv zUE%Z2@uqU!2>qT$p`pPe3kH+ydFz+KF+iBeZ-7&i(%hinUUw4w@@A??A z?Q?2QfnFX>yGJ4Uwnh%-KT`tss$uzs$B!hXeQW7soKN+xEiJ-dHqHt13rFErW{&4e znsCKNX@a1_eMZTaLbKi^gTg9- zQ1ptF9^PI_^PYyhgRrRaxIQM}UVUsbOYS+Cp8^d^Gqn&fqNdGSNI=SYlhD?(loUcx z8Jhd9_P8)8u$0CW=krBn-Uard*jyk{!&cvCARl^Woh>LLR6*cWzj-*7}EaP3A}Azb93>$ zr8KhYf?xe>wUI0dtSBwLV4+X@%8JK0>@QT)hQnByf(e?JhNuEd#_f_{J1r!PPA8YE zuJFakpWhkHve1I5S^wi9N|``1Ru*t~b=+ zZI@f6(OO8mFCA6j&#M|d} zGkAX((G}msEF?5-cjqXRsK`gPx?Q|>ul}KI=zpWWtg(K zOf za2gpt@Ji>b2l)1mH^i0`GiiJBC4J79#;+U4LtIF`q0V2t3V=%d`o*VM@hAtKw&Eo0 zcvDha7g@FV@8))~r^?XUQCwVjoA%wG9~d*WS(*(H$WN{wX%rafNZcUr&x|AV7TOK* zP;-{lcD}N=N%SKi`!yrtR6yvh-Pp@mAV7c@Kl!XvOyYeo(yG3}>f26{Xj!FEg$LtN z#9)y^Y>Z~n9u0ouUU3SEb`)HF1i-=xeDyl1MLwF9t^TzWC71R zqxm^LD3Ph_O|bFR-j;im(Ug@dK4bTH3e3Q_b}vldalKG?{oGO9t{ytpa>%xw7;k$k z>?-6L=}@e7OtDIrRrE_ZxKBLf^MLb-`ry^h>5i&}rKOjrXN|49S`Qx|UsvSPd$K?{ zM2zg{>d!Yx|FxV+r@Y24?2`i0;mh4gLT+dLzaIH9XHvWA{7SiCi{g9{c6r`fa|m0V z9hIJzcQ#8h=!-vs)8maSy;WKtV5S+^s?dL08_4aRu1=9NU$D{YjQp}1u9M)t8Pri{ z*=MR`TD$n$tC9{o!c3GK9Ng;r34{L`gV^i#|7OH$2q!x%GHBba)y{zq@t= zr|YxP(;9k&`*r0q;`24J1mcui@7oIOG?ENv z#j&6-ek&lU)A|drydQTcl6D)7d^O9d#$8b<;+sW&MdrFCi191 zXAgR8CHgAQ1okp~`4(a2sbPTP@Spt=cu~6Y4bBfBcZy$-_C*jSvdpQ)fBCO>M9AEU z3tGyweqEr~jCTS3Eivn72}{2uL=@iu2;Mq{ZC$A#$U_BM+^a=`n}Gj z_4zd|{f6Va|05$$k@SyWmTE7o^B&_(*m&rV5H@l~S-jPqokt*-Zf7O^!4LkzwYAAe z0z4D`uCk|`!6Uw`xK*O%8H zBM2jaDxF0pL<|m&x@OtBlyAG4-(DTSGMZ<_E!f^3J1D(Xdi0If<6k*{oW&7$sW zi(}wLjfXn$&jPPU8Z$xwjI-WGDzd$}m`nH3hR+zQ2JVX&Iweb{K*iQ{ipujhn15!w z9czS*mz2L^Astx~!H^E?@cE5x7W$ohR$A!`=eIJ+GMhKrHmSLkanpbOxBL$-l}38! zx4>xddB+TWaRBAm4XR>I05bdA+jzF_;tWc+jq675uEnw4yjEcH=KpE_b)*`446{9& zBtd#`{+i{C_2Um5ZpQYP`*qED_{qI42hvMd*ktgiM(X+ z{TDd56*6}%MJx(Zt4PKG{FA@3=VYCq<6R@W^O3{FdQ8l`l~tpt;0jb|5wcLyFcZZf zQkG-=TQo(aJus}6OepL}A?U#dG*THFQV|-ihayiFfB30EIsbFzuonWvidesId7ANt zZ-HM%fZ<>NHU@Qsj?&oobvKOS)FuARwhN_&og5)>^vCLfufTE5=_632BJK2uYuG?= z0%bd%1yUs*L3Mt4Rtitv@q$@BbM1Y54JxRP0z;yNek~Id%z--N~PqmwFxuqqj&b z!n#rgT^KSjD5d`gJSc3 zS-c51L{~ZonKT!Ad5JBA{eeRliB10hbH6B{eFK$rP_@chbC?3V$%hFyc-kL!s%)c)io?#nXrfB#dk=Yw;V`k zTn6*5hxa(0_0@M`f(qJ)YN(5E0@=^;mu--R`;0r?G&pWQus+pW!`@Ar@Pk?#XrBbV zsm9&G9R2rXhyAsD=n2MZ0-P_3>=R6cg|4I*)v67M@UEi|Hb#q@D~*}v(5_s~16(yf z3l$waVcc8mqnvZa?wFiX-ya7>M1BLxsG+Y~=yv$sWu8zMHmS_y*AbwJGV5l_4J-oInuAIwR zRp{}55|(9ie^k2VSh8~-T^^$$I=^jyQmWc=6@$Rgc$&S6koDTb;E`K5xutQ>R@8Qh2OxR?CR4OTq)N~NgrZl-8>Q)qV4wdeVc zW~QQ|&e!kN_1+X^M&v@Dc%5xG%hJ!UCwWy*6+bds9l-LoZ0T&P(rVwY70K%Nqg?Mp z!F$i7N3DidfI#1I;H563qzP~8`i*akp-flB>B8n%xY=6RLc|GX0R2JO0a#q5IC39S9&ip};!n zB=fr{QuoSTSmNif{Gsk-irgxElBA-!sA^zL(?eEy@r7*a>5nWQ zS)h#pnp3HTcx`AVqJJ*;dlax)|4h3@yN+-172ZU{)9l%2ZSXDuMUE~3gjb`FZ1Y>V zp)2KFeD=#&m^IKB{Oy^_jOML&=UWo$Z}SoqlFj?|6KtE@>kLNclTTLJ?aqo?LMfnw zPA!<*YC{_F8tyL9zk0riD@~@dy+qTzZ%4?(dDsw8$IWXM@XEHCga^)Hr+M>*>-tR( zW+36n1H#N9td~iKop*w6cSDSDZ30)QX6ZX$5PR<0;uy&mYIN#UV3n!=ZtE^>ufP-d zeW$h#qdulHvSK+>k2pnyHW-nXp%cPg(HlSNJDuZYC zmJrP1U)9I(-F>^Dy3BQqzZpdngmFUNoYq~1JxhufQbKCHd*-(PpAck|OIztf#1 zot|0agCv}jVB^E6T@QcZCV>j>N$0%I`L8DI;Y(fV(lW1%=^_Z-9u~OmWpV$x_djkF z-5=QNJ_0HJF%smk#5VPJs%hRBvL@DmjaOY;+d4QX`^Z;7KmZ*8(AC&!gi(V8JUpH* zFFuIJR~N2S;~drqTCFNt7Jd3Ovas?`t8S4J2zoi92~K*j75dWL!<(==cz0jtUt*H~ zeke4o!5%xo^{g#Ae?E;Ib$?G|Z0tYXUa9MVBfie14Htm(_Rr(QPT}*Y9IY3 z$^VV53a#^rz76{Gq_cLw9pv-d7xa5amHJ;QYUd=tK>~fnSQr22&jnxczhChGO{e_d zyeHLev!hpa69}Ij*Cz3}p$3a9TI|ibxCFTXdj|%%fEhUlsv;tfCCI~J`e?_tj}Ul1 z(8Cfn{lIowPAZYxGne`0Vw!hy?gLwx2Kwgc9X1Tx_h^qFNxDP&9Hm$Fb91k16_oQ} ze}TmL)ImCePLX8Vc&GN;~ET^yEGzxS-Bv#UX97xy88n-35Y zyTrJXXlY@yJbX*1*_fM2$aC5mQxd+vmdnhtrxPSkCb-m*cVzdRj-S9P~0cgJaqE5qihE?`89|9hu7zv=>_Z@R+~VmIY;nA9 z$;@LsN<*oT|2PPr0}&95jFO7>9^#ELCAL>w0IM5vL<2~O4?no!Vx3+V%Uim1_W+_9 zqrH~qN!VHC^vOXB8cD}|*WfcyBt-0(%;|jm*y#*k5bXCXCzU+gh&fGAC^ug9L zPqF2&0&^mbvYbTH@f+^F>H9$WFI%aE2FQAMcs(I7ssUu^=MOw3CU0`!Kpv=v+h~Cx z&`3MUVBGr`5MJd`fuAp>ZD_f}ZhbqO{XPTGcz8VQmh6j+Go*bOu`y{q*!GFb2l)I7 zoxMT0iz?k}n{>yaW9*E`73YqGTnhUepi03sFd#W^-<@GPkcSzNI0%6u=MUQmioEC( z@BIO*8rxBULdcIdhO#_V9IFOLjc5~GT(_oQ^VS_-wULRx~Y?8%l<{X?KQ0zd&OC3?TTbfku z=D|I{X0)QIuiw)GRp1Qzn-YJ1fY}^qrq0nyn-h<;{1RZsa)vHp!1rC0p`XSRhmcJIChf)N)u0gj z;z@MwXpPn?4G{qY20)rY0!RaHu+MqNL_I%+yOT5&hTsQx=OllM0Uk1Re0%D>K`DW5{zbP z6xSzr8+R4U8r4O09{vT4zo;@9R(3IHJ!D(fsQWxY1)uJ>-hlN1XjHRKpPjrv-By;Z zGDk_rZeXoAQi`;3&Orn?|wK%5&1;7r;kPjI1D8$$*90UvWCqd|Cwu0v}TrY%Nd8%MQ3iN^~lpc5OF$&!>z(J^@ zJ2mshmKNH4&QnzlYy1OHcD{HSMIY-~QU*>^q*@2PDcsd-)|xX28Px2EzT!Qe5NgbMpS`A*`ilUNx+&}O z1gxc5F|}wlwYAwli?XDW+bNQ5e*npL$ci!mB#Xo{t%&y%0c3h>-;5I@V7^7(UR_-1 z&Rj}T%2kJ`2#+SdvG$LfEwQFwrC0J` zLxeW^i$x9)#Rt-T5T}EPD^T;T#FR4%NaN@$J<+oCIevSao4G1@tRQI{5X@wlv3Sfz zMG6eM+uI>F<~RR?8h>$)e<;bL_bY|~`YDzesljr6x1 zpPyeGuF4uZ1C<<$^DaxZLDioxK_ODW5MdPWg_S z04iG`+M<GrrU}Hy*(P+LuSWJa>r`b=~M@7Z;CU*OEDHcO)uU(op-L3S+ zx5PDpt5OJn+lk&EE(4uQ(dvUAfHCQtq-hJV39!7!kIc)SS!)4>mHMB24p+qTtfk_~ zE2wyLo6`yQ~?Jl;9Z(g&S&F0o_Mn#QdJf{E;q4s5$Y}ba#bK{i@-8vbwV%FKG=c z%J&yz+W%*TS$0?{3oe2FTUT1fRlP^mBrP8JH5IZ6xoJxpq2*liahHeE9%>*&@e zZ>WKoVv*4RkLz|3Q{2$Xw{p7KT2m|-n#gKJZ0eUq6s5-VnL1m!A}Rc-Z2q0>kY8rW zvzpnAN<*KLFI+D1j?XpSrbmq1lzsw9G#VAQhcGo5r0Y7DL4+q*MKT40u*#?qkE0ho znA&5z4eL{O_Y`O}(`)U53IXXluQjA;%uHrRG_SBPi5tSD^y6y+ds!a;jp>vfOuhmn zSBB)?(+?2f_lfrC9TmCX3+kgF1GamO4?m5Sa8&M%7to{7OKy&=&lZHgJhJ+eyB=Qy zxa-8`Notp2>!D_H;?LXHIz7eY3XtFwasZwDQWcYzRj`z2&Kd=+nolw4xg_2xUhK^SRt{Wvrg-Y8XkZIV|dYU zauhrBgEKdsvkSh_2DdrI0unB@AItxmYdcd_?ccVd2Xa@kE)&*uful1CKx}wkoJY29 zJ%1gR2SY7|a4O5;u{)|&^ua39j1oygPJSwt9Gc4)3_fkTJ@qmAMiZ;KF=?UVTr!nz4-28~Wo}`F|!yDBwV+=%Hr6k0MI4LBmKwqJT_Z_P4a!f_ApkOmp^TQ7#$BcuFl2dP-@_6U00BIXgT^{087)1H@6It;f zx)9_JxyDAVz4YXienBfIW1~phMlN3{FNIR`1}N1GrdWz6uv?=NLW|NIjlixNJM6z;YM>I7`T`zJoctZ7VZ?uRdWf5(*O7jn8LzFL-RUtSqJxn$dY!kAa7G z@>!KDEw;1>ArE@=x2VyK$;&{f&A59U~b;`HLzpdky+&#OVJs{P=G-&c9LTviWD% z7uK9Em(PF0$oG#f9$htaGrgs~uOT)BDANqU=Qgd}jAlc9eZ|og4v<QR9Xz*M^9;RRUye_BXs2+dsWq$M zoenT)A0si%fh0}e+4R>R3>qU0qMhsOx0S&n3wD<7ph!JMVJ35Ze$@6e2Z3Z zuvO#99uS9ZG!nvul_|GpdbI$;E z%VI4E4b*@Xsh|Qu3$TNJYGx+NaJohq0#vOk%uFH~bsZ&QIWb}7&#f23&<2}{Qpl#- zc8&EIg2U0O5CF}+QXWdbR0G3)7HGs#% z)e`%Sa^F%ORY@9c%fJH?%a+~hGv_R4sO0TKG37jg3O%g5n z>`zKIi)=*VMo?<3R(U<(5RVH$ylG-}!$Dw1mC2yb7x1)lcyr2gX*Kd6OJr(oPd1=2 z=PC+4*x{*}>v9~@QQVbvI^FHubNkh@%XJ0iq5>I#`_Nt0G@)R{g68z6Z7qZMW8dft zb_C+&&z4!Ob_F>cMQ1x@=aZaO5Axi3fP!M<&Xq4YP5u1-&$~mI-Xr}2TbE}Pl5PHx zZf%3z_Z^OwQR@(%7^1t(&lAa0YQh&57Ft+X@b)E4lvo}qJg17$t?uw$E0qC%7!7lh=M&&z{lT=)OQDc;``t&@@_R$`~v1$%jFW!MKbVOnH#@CaXh1Asef&F$M$t(w)rB6X zrTvxyw(GTaz9Z8hdd>Gn9q7xEyfb*$MAnCI+%EaZf>&0#fu0D*@&f7Iv#gPa0dmm8 z9w-%wQ>6)&B^BX?S&`n3*Aw?oXUf!&&8-=`S-EaScDkDyNBoyfV=@(lOy^I)Lsj8~ zeulKuq?vJUDVL|_emE7x2$IWA!-)sXu=lsl7Z!~B zVPX&ZuN>aF#_~LT^yIlk9+jM^AQoi^q22Cm`wBH5Oo7}rj$2l8j^o?QY@=nQ7c^gX zXWpeA)S)oi9y925#oTYYq7fMD+kuw5@|dO9T9QC50|Kz<7xKQ}9K@gDE%)3#xW18M zOSH?`ot)S&)I@uK=XxhFH#-AV6C9yIzLaDk)vjBsw4CNgA*PuU{Y0Hd{dw^lt+R|i zz!EVG8QTSGt=8$U?oBp5f8QUCHwY(%!Qs|-bC|S{v&-dax5clFoA)Q4?j+15C9qq8 zRCb!p`!iG83jlrA^s=8`g9pfFPE*O!oFQ>knip_e^`@vZus1ZmB2HcQ6xAUvrPiFq z+E?ocbPRVn+nW>Cn%6&3l#&TfX3LS%DAIT`di9E!*h&f`U9m{x{Q%UsItyR=aIGf* zm?rbv6GxjL(nW~s$W%4E!f}4<9SAP15M;B%4w@NmWU*!Wxn^3yh#X zOErqpO^A5<B!&&wDn84$PPC&4+ux6)*&#JE$T>%n&yG^QHwpdzQTcJ#$w-5RfAgpSn zhIE0tETLzGTi_SeNB#=vi8x z=7DUEz+59neFgYchpWA5>Qij&wz2L$lgt4l5|qsE@ZUL0G(<@i;uCN?XP+JW=50M8 zCKlt40j@AXXn8kBu0IZVP}=GBC*cF)gL_d?Q!OIB-`HY%KrU6UR1)Vm3^M;s7jAZ| zH-cujgj}mdVR|=Rlo(@9Aj1SO9Nx(wMMx@(5k_u$`0< zJ%<9Fi<5KYgXgJzx^z))cVJ+kJk(tb5=*Sx5xCj#`tU4r6Dm_+qz`%dvqcL$jtNK* z|M|*76uwobT5X4$fz}1K_DmFbnH>0h^h|KMIpJVD-BKjK@j@-5RT0F2$jo5Jdv8UUG@jH!7*j7=$kchaf}(5`@3pq>Ue+ z#y66pXn<`2s0ewo0Q^wvJNZe&#`_?{*@ra1NA zcEv6^KsCe^8s^UN^EJxu17R82-Vz>xYbW(WToj0*p z=tNIlrw;{aPL(r*L`j5$6-70*oqlaj7SQL)J0OyYKmRb(W7OFKYR6LSONfnB#G)t* z!=Q2=N}S1Db*ED&>qqU;*lhOIwM24C(yvsXAk}&&HNfXumYdF@fCqqJyh4)E^`pbJ z4^Vl#-63HcTt=h%cbQ^P%h91Mai3uBPacF6cj=eLb0t1vMh3q^`1Y18`&PNQVFU5C z*r!f+h2(PHru%L3*VpL~;prwj!sJhk5FJ*q*9w=f>f72>5eVV|BK?YMn-v;)-*<;` zKz8=G{<>p@wL_~RbZHWFV`rm{X0qLK#eM)sdM5$UjM7N&UM_I zV@?7#dB<{(PG)cDeS(@(=$qUpuCsFicD)~9QW#7x@zRHG4=z1?*C#?Y6~@)eIK4>8 z;8w`afp34116@|m?&45iZ$PSfxuZD5WkS!Nw|h~#(MU=abW~;=BodbNFCE9JPrtX` z8$z_Ci>O4z%8(v~ymXF(_|%RIKR$~hadV&i{2G@ z6}d#Mr1xeUuDXERJAWyJRA19+=Y@Q}jK&EGl)tVGYU56F$PtT*6U;G&Tn`pyF#-ZX zF2UOJ;Aq^BVKJ1UGi;m)X^qPM0#&rVv{`1nXZ}%pn8FNaiF`^Hn&zM959YY&UX%S} zAyFP+i!SCus5VT&z*+2*4U2(FJ|m0bFev`mYVc{|Ox9yOR0IoA2ezgE-NYuq4m3jy z9c<_T5MERw;xTdmwFmdz70NBuMLfaA8=($T4?=2myiz1j6^TxQ9pfBKm%#=hRBr&0yk*}mQOEKa5)W2Fvo}iviH+jn37<)x;ec$XU z8o#L)`%7;Ry&WO^hoE2ULkLG;>!NbofkyW)mGEa(=ES@%qQSqEhw{w9?f9ojKY_jd zRp->wzV4J_NSoYN*#}k+n%6ohaEB}K#6?NX9g)L~V}L?*%;m{3=xFfoYli(zrT7AV zfksjPv`b4ldqj+`FE#JcX?unrl^{h#C785NoC|=z<-IW%n`b~JrKZM;VC1ky)(O*wc3RLT=eN;cM`?qdi7c0B-NZ|OExrZU+5#WrLZTOoTY1evMm30Wc6@Hvyttzo0yRcyf!0jLU}aM5oc7IAv$Cw21i&pA9LX zNabDA<-`@Ge$M;9vi&Fr8AK(HBVHK3LwcwwUeqXjS=gFVnY_@DNx0xyIj8Mjl<{Em zmyKge|C9sN?yo`f;|D3@;BXW<{VZ<9V`~KH`wJ6C4)x1vuY;D94JFQe#KV&3f89H- z`#EM_Gt9!m!X!*gFa^o3aEjnrKi?$pE)Kh=I0Y`E;RLa7RK>9Cwt#R(R|wI=q4W~H z2z^bKSYnw{ds(Q-7T<`#4ep=al>xUg#I0c#1E&40?#3Gfp;ePfil9H{G;DaEYyCYZ zeJLMl|Ns7os15aYA^W>`FGE8^!BFB||5E8lK`gde8gzq$!=%R>_tsFp?2jSL4f|w(AE8;3F}0XMoEh_jsEN8Zmeh^k{t{Q zJ9n=n#G+SFV*WFm5`Dt|wI~f4M(^3~CNRL%l%mN$n*Jp>xGc84nK_&;6sMzqLQX99 zGhru>{6qTfx4$MsWeh2x$K-^P>yqo`ALh<_`-YVUMrs16gCVrhIAqUoIODzjIer7m zpLbf;BqzgBMUJLLC=Fo+VV2mp{kk&? z4jQ#Rn2Y2;t&13#J2|bp)2uws=TBv2WjCMU81gUo$_QTIcifOTp}XvUo#jBk8B6!y z2#hp-WmEH0fshIne1$a7pW|CPG(aMIy6pVb(eFfkToveTR`PnY2CcWjDWs*6F=wjU&2_#G@OsGRs7*Pi( zk&e#!QCeo>D;hXg&AJ!F7x1)>D;Ds0TrvK03iQFU{w^HErMgh@QmN;8f#HLEBCTEL zX0Q*VbnFG9p|>aI-E@J{T2fb2o*=fDjVHh={ilT?C^`^q*>>1Liy}y)(!*?Wv>k$T zLQR;&Uf>40`mT4E&cvF=f1}FMcY8aj>c*NIhdDIs*i>QqXHTaZ_$&tmzBKZBn`e|+ z(X>gjN6LaBbQlU(Lh8XalqCQkd<;`xzWwmW30Nl+pslG2&1RZ=HDbz-z1bX5(yDgc}eOFUofd&^ZkPRvnRmgu1wgfg-VnLQHRJa z!~f50Wbkc{EICy#aQ8@}HZw0!b^iJ#sRoKhqNw7AI-*a-ZHD_|T3erfT+?ORa7#NT z@G`BdbKjq;z(wf)+MHg+AJIJ&JexfoIj3B~==ExTz-;>%Es)unnbz(EUfWy=-bF>{ zq?9uAEqRRUbp0lV_?a?Por=WohhZ1;nIY+?u8~cB3R`r`IJ+eCMt34-35Jf z`Xk=x+eDcbH@eG{DSxBz+g9a`IX5EiMlSrs%$-Wj%`pqzhaD$L0lxj1i(jvIe`&@j zm{MP!y}>Ar6R>8~^A1>uLDlZmdA7-%>&KZlrke%9VBfx0pov@a^dusBJYIq8%6A#U ze_b+aK#W;%CR|JvY0SURxIy4OFTfqMSM~y{t$dWVZ@yX9ZF}1FDS~aHd$~W^HnMGD zLcj&Jo$BS-qbu|FLkH^;=Kx0M*eHQZHnjFlR+g(_ZKQW!9~wMx$I4q=F(M0*bcA-e zSlm2d-u;5R+4=V!jk3dd5=p~S7fn-1v8BqzSiDOVs9AmQC`(dsUU+Gsq7vcS_G13k zWXg>&*}`|nd_O)nyp~Ec2yHI|5r6KdQJyLidGW7=YCac4%oTG`K?TDFSq#E*qlb7Z zXquve0kx1&11p5Usa-ZnlXukwO+NDNAY8GyG_6`<;*^qcQ{wkYz3yS=_LP@C$-5MT z9)*~CdgT4&C;i^NCF`V5i%VbRI=@AC&1Be47(}|MHM)@;Slz2b&7Sy3_n`IGYmcmZ z-TT%2cvE$TcYa;TeStYA+@)K@jtX_%!Ez}C$WL~A8-%weZ%`UDr}otc@KAird41!e zTE?BxtIyB0Ovi@_$y#+wc7jSm=sFRB1*2%Xm8}-jMT3yB|2Ls1@^ZBMX}$M5E?1Fe(}Vm&@o7}j2U0EKE`>2s*Wnz`O!_B zwQ2HZ{%9(BoIyDZS~tHo_;hD0YM@rW-A5fawK#*7%>GK}SN{x}rrXT38E;pg*~luL zi^ivL2sZ)qoR4HTGcwoT?Gl>csv!`JJ+OSLEL+V_;>=`Egi62u73tDqyCgB_=wfod z%}B*Z=i9(+85ObK^xBkGYdSji+g)K~XG?0KLXl~z;=lIIln!#Diy)YrY7lMVfCULpfC(PYv`}_@AStN%$tjz9Tx=rGRSJ~fFRnS?x zV3=;qwCRt6$}yJ-E9gZxJ#MeCR=JC2(Y-LYF7E0?qetFxpMI>U9@-Z+e%hr+T8;k% zbsA-w!}l9g!rW-vu^3wYwHh3i^W~e>w+~sQ&AhxJ#wiQFD8BZ_lnRnG!2wOD@5K$z zF4WH1>F{=}-i=gO=!f&!^m!vsO2E(Au<-u1WQ)B9YbWLVg#Do(IA6*qlYc3n~%$2?-Qe+_qEl{~eRqJZHjJ)IF>{7&oxa_(mE0SSf9QS4JS&hmRC6c?|g z^ZN_J?A4gLb?eD_ikbtq98>Pkwat40%S;#jg~;_+4Xg&#;jB7Qi%3|A;bTSa%QS z9sQ5b(yw1{e-(xt$5lO5=fX^poOzi&@tNj9t_wo)cNE$^%1VWSXKlixvQSkX3~xzl z%zG8_smf__*(Y(%lk=X1&8sg|-On1^$_uq)<|-IFlKVaVFN=_jcPQjl{E}7z(s(Zv zl%A_$kR>iF9z_%d*aa93E4dP*Zti^TH0EL~aKp|V8S(zGEr~o6jgld@EVQ6AVWA~w z9YHIP$4mjY7>;wZuYJK^UD=3hgh?H=m|Q5>@SP`B-NA+TKnsVJA&*b_dC>*)^=#Z% z#=j*h^h<*&Ae^nzMBv9L<>_hpm)RieA9?8q{2z;@ znJ8^R4)`)o3(e0lfdyM(lDk#{`a3ZxB@r#7|*^j^e5n+{0S|YphS**bEFB2Fz zL`4q%a2x&J(#c_v|Kmvd*O8DIQpUWvKX+?jD|DLi(dxf)>sPdZo&Q&R{TLYNf3^SR zh)Axgwq5Vw;Gl0{Ab2mFKPFv@onwL~Z^+-)ldo@5B~r%W#@r&k6o^^;)h^9NzR&&; z!6>W!d&`#k{Of4E-)j1% z=?Au$U^kyf_>a6>H6QX`?v|P(EDMkiD(_aI@hfZ4srR7A<2?YKJI=wbMS8BdsPo4= zVMgwu+w+4Dn`$2ygNLE-696U{NyT;YzHVb8@FzXnoo( zEnU*3q_iMIhm>@ew1Uz(bPR~}P|`V!N=pkvhr&=p3@{8s^DOpt|L^PC*L@$y^X7Th z8#z#9!8+G@{^I-n{Ms*zZKwd6Ru90Z2a6V5X+i_aE-U5?NjtMltm7YH;aQ}aB383` zH>szR3ObJQOP>DO%E9L61dA0@RK37_29eqJa1-V7Mkw--wWr$+$bMsKWC_)-49c1q zKbQ0y606^d;s6YL*?}$^U~d9aS8KU=_Ux`=ef%Y1v+0m4DR{Tn6O2QegB{& zQ?_8p)^ra}AqwQJ<-RrZMD_GlT@%8NR~}n|hd)vu(@J?M&=~_Y_#}fdpy=GLcjk=S z1d!ppCU+*LgD z#HaG9Lm6663VCu+Hnn`zlN#wHNLNsRZ*Ky5?{ej-H-Eq|-?7C{ttgMMMBwFnA|rFr zEMBa2VFoR@bHX+Bv%_l>biCKeX3%!T2gt}&SwSK$v*CMR+yV<5w4iLl#p>A~W%a9- zOGun2#5HFq)mG*(!CgQre`3#sa6DYtV?qqjHxw*UN(=1Hx$2$;UqryzW9}&@oP4wG z_h@qYVmitD7LSqru$~)0az;wu6GtP8(DUa@wxg7l3j*akC{B@D@Za zDuIM--HgsA-WELqdIBX)afk|F8v2hy%xI0gF;K{m=JB9QAEnxe?0OKz1F`~rA9K6= zkTX&>m2-JCzd%5AjYW@M1|9Rm=nR0um-`T2cSMQlr}cwSl4MB@L&lfirkFeAk({Zz z=T392tZV)}U+eSMn2Z}MN~@sCC#UqixWp~kRRDhX_d6d=aEA%?10Ed%Xu8W%4Gk%S z(#l%p-0aDu1=8H4dtC-9Rmi?y=gp;czKkRHkjgW~STYWEhLe27FU2Xe)bd##P7@k@ z8SP!Yp&%H-4CtWTUPJ;#nkS6`c#IXq$HjN0hv%H%A~xC_zq>HCyk3p|(;;AL>Uy+0 z=|T>|O`GAaE^(X3Dks3!41-GIWqhC)N5;5`p!d&j1eAAe4H}yHSQU(!C%8b}mb*9( zPnOlvNoiW6^OM1g$gq znpZxR-+zYrq}#uYrd1lYk??hi@W~5;4ZGjIw-E5t29+FKnZLr1Nix(auHUb=coIneX!Ct&%ByTZ|zwuXp%u~eB7ed}T< z`8IO(!M}B;(c1I~ zo}vVnF6QTDZ@+BWCHD$L{%n6e?s(~s!7OR5xL3K4)7ksu{0urQ8^-+-j}$nfx>C@> z4#05qWPchWb932=z#R>Ezw~a`vl%U$rL-XZBkz`PY^;nqJIOkCH7ujM(i(SKVOeF% zkMd~m^oK&;LIY7k-Tezfh^u7`bCr~;Mvwy$zZhuyh}OTz3MQYfU< zvrLMYvII`KPM0pPeZ7QFEDh&1$@h{});Q0Rm~?WxzcR`&Pr z-|wRz4&-Y>r}l^Tp4(k&zdDDz$M{P};!g62r=I-zq-dQbin(Y{O4g-1iw?>K(mqHw z*cbZwpv=Me2^jVvIs$|U&Jy|a#wkvRbake!BaPtb05$yaRSEZ0HwYL%FIE_QHb$T^ zAs^aEs<%FH7TU@;dU)ZxuUT*#O*^*O8KV@E7yOgfs+U-wGzBwVW9%K{O8hY1($mDU zG$%%FJN0MZWHB%dkml?vD%ia@bpZzPkdd`GPV1XHP)aNB4MmRm z)BLJNh{BSKGi5c9b1d=mEgs7&X$%%CJ(b6AP`;e*fLV&UP$gLj+SwP!sX{f-64zIR z<11ogv9PQ+hWp%@_1>tGfwtkkRhcHh>h9h-){m11!NLJm#3%Jloo1NnugrQ+R_!KD z=X$$ET~;4HQ=ju-wUtnPNL_<@$URoo2i>`VI;p!*3M?Hk9Ej@Mms$(BC{+E?-(8hh z0%0BF)Uv+%jpb4b#Imkk)!silV$faqC}qzhdU82cAk^qG_oumRh}X{i^HkdNX{9Xp|?SJ66A& zt9q+#QkB78=KeI>@0D|&Deg(*nFEL1&O{K(sw0E1?#m!XUPW=Kyc>8mdwb3=F}wVF zi5G2-vlTeE#lt55bpQQbkw?b62h~pwu4^;t{z{;&%~_Qr<^4!@BsV(A$i%SLi&f;j z!4Su_4J>&k`RgTb|EfcIv7N6=TxNzw^S9hBTnA4fOU;DOV`07*^D}Mu$AI$X)2Y_> zv31vUGcOU7su5_5R+s*->){X44|qQeW(t-0fRwq?_)1*%mL@D6f#DXqAZx%%hlXY= zC!8(=aTc&^8x#7y)gETvYBwa}(=V@39b!e%Z3qT$oq6^6ffw8TYTh6%y_}YeQWulm z#U!ulSl0(r8$4yH*BXA^Pc57|9U%z>R5sDo78bs`aStAHr6>bxnoc4<)cdI%d)N$^ zo9#1-xn|iG7}lWO=A(i8q*0e(RMxdoHh$$$^HfNuMAHU;+WL0?bB4eL0nkCtbs%Z= z2gj5J!+gp`7vE}_k{in!IP;tj)7`vnrUb}w%HFQ214fUD=1XKa)uMs*or$NYAE`v+wu9iJny4oyZ?o{voTbP9jsUd-Z3Z*QVkrHrMizsPkJ|R9 zYrSc1-@Cl478oo)_F3_;12j@DY^H>SrRu80lghp|H$CtEcxYa?#)W34{M_QPKGD{! z#Y-z~9QbZ~rq*Kde2KQh_64s*k-x3q!EuW^^}c21&*`SC`@mkRv=K*x{$9Hua1X4b ztP1TLQfAarR1+T6Ik1BIeB%*i5^|*c<+1OSxVpDS(=egfV)9n4!K|md_FR*9I!+-e z->Bh7Uz#w{`FXq}3VXt!VcD1%g96ce^GR)V)Y4Zt-j!u83>Jpq?P!Q zWO3P&crQMwmLj~{3Nw?|xme|VVpb8U3c19N@S+B?^%o9-F{7WN-6u(z*izihY(!+c z4pJR;g)2$x-+HeN8m6y@3{0%VVy{^)>B>FIYxwTE=&1_`E>d7Di94S2|N1HHz9CIJ(vGV5Lwv9z zmr=AziwqAwnQl-c<Q`(N#?-$;+bkiagHYR3Ua?mUW5h?E%S+?WAlw!FFmP_?}MzX^r*fU2r!{8=T*; zQCix|TNv|zqfo8t4q0i{+T2-|*KWGUuOa{HI>6R|U=cH_?&J;E#;&)n`nQ;b_{! z7U2P~wPp{|+iYoF@mdgtw4YyfPBj-rLzcVj+fN<5y~j2AWq{daQSKyJ(g7l=)2Uf{ zvG~twgL^pHs$tQ*Da-OMD!)$(s?E;x?OpW_%L5=a;^SKG&j; zP1Xc3$z73opsnB&?PbMhXF*R4C-I-h= z0%K!XB35S)k9PQxRf+>X=;ty~HH>veX_Jb;` zq){pdn(UQF@FjG61Y~^zSLsU=;=|1t z_Lb3Z1!yL97!cY5no;CE#QrQMjo0|&b$H&Vy`o!IcZypK+%8*Itz|{P@K?Kl9vBFewN=s{a!r-)1Dd5O-pFpxSwh>*pR8cdMM|@0YwDT% zTcJzfgI;Qt;=X?LL%&eNwwDbyEEX(fJQ#v1owCpVM#e8J6?3c7{J4z@zrb`}!f?S< z7cae=*ub^%)RNDKLJ)lZ%iV%S6XWCB+6j<(9gU{Jyus|0(lng=zU3!X9rCf2*?Rkr zUx{q@+y^N9vzy%?-Y9wy)|Comv9M_mU?2tY7M1SNls1b8e}90}HzPc#OBY=X#Nsm0 z`!Nr>KC8y{cZM90crsJFtqmezPp6x#!ppJJC&Z7YmEp^srx#l~YN5JAd<-g&=eXW) zZOA~~&Aiu^JUK~J)w8!6{+J4_-a>e(7bB-sHt9SE4iyFFVWa)07I8S= zl@JBDKJOI1tIw+RYCQS}U!%xmLvqCQOl4IyZrxrn?G)s;RRJ>({|E?;Af}7rHmoZ} zIm=m=x;@BV0m-jYdEj?VKSV^7TSEqye#+`G9=tE2pkY!qyNn6=q{X6gzJkgdZCbj& zJzGaA-4+thcj~2l>a}_J_xkIP$m#UL%#vX`&Kg^PC41(CG{k%zE9eMKq4$ZF> z{aAN`_YM0c|Glt|bESqnF^gE$r_+$a3SCJaBxDwX&M9K4(bdS%YI94`;k-peaV?9Pk-G4ar=5>vZ%JywI9B%MjjQ-3w^ z2oCO(ABV?3+C*Jvqd-8t2u5f?3@ zrSni9C|>M;Q?3N#3@c@Ex*_*!x!b%qBZ09c%bjb^{LhVZe{xge6;h5(x}Pyup(ZWk zw%cypzNfs>a}Rt~HQ|T#PBoz8cgygfW|rAkF(6$ZL?p1M5%(yL zHwr&7#bG?^m4@UJL_d&L?5$WaTNvVUF_!*{=9A2IhWiD~As$w69eN>8u#~#ADa~MT z%nl$)oebH`NbyR;e^4C)9V`Z9j)+uBfot`b59G1(PcObaT)R9kSM{N?4mN`skX$rm zz^}gk7VEZTQl&4>8bx=U$t)S(I*OK z*7zT|dNNs7KW8f2VZ=gC&lW4q8*20Xe{L=P@FzX80jy z8wy*fn%aL0v%kWQj8o=-Q_#|e%9s;>n{!1fp7~TBc6@^3Gj(Mr3FFyS)@BN!t}^KY z1&cibep(Y@1V)Gv>5`@zEmd%U-N0CLzp8>(S~*pQf%~dqq?T3yedLqPzh!?8zchKC zUVZG6sfMr|-PmcLSnynI?gD-_;<3JWBqd7xe@;#9o>p6x=9DNa%8!F3UfrlIX z=kwB+oOz4ZHE%8`F0#7=;!F@7n?TZZU1;4fWD>=JAde|L#*SI|UXK@QR;reJVSv^` z<0Wk#koDxsr8!hqs%*xVWVR=s_~484)YHpv#wPw|om3PfYgyyG&8BDKN3lFUo=d=_ zddd>ah6L)*+gMH&ovzg!QQn%2NF5UKJP#jD)|wTB=KYu}iSQr$io@EOkJ&yqTmD@~ z{cIa6PU!mjrMdQWCK$t$7{XFWU6p{C8>8(CYsq z_0fN8gvP$#I@C-kzjToPr%DRYGiqQdxD`I?oE);n2yZoQEO9S7>gr#u8RS5^t`ER} zUx!P3M0ZqEfLix|aavTLU#oZj^ZNhuGZ00H7@!h+1I(t2=HcYL3lzrvUpf6WYn9a) zF77oH&6Ld?Id&5@7WFA#W)a@VG4cyl}#YmAn9bTz7e=aN!Dq(-{To9nEIJFn#T&(-qgAW0L~Q&-b_ z9r0WFqJWC&bK%GWHor^4OloHzkVY^MTYjl)=GrN0lNOZnt%^d;K7Rbmd@vhv|GE&n z-GcbFN49j+T&S;kfm+FOFwCuy7#i1UBv;%$a~#zty+4zXs~hWOYm}>d?j@qN>meMn z>meGwG2(h(FECT)^eJIy+9iC&4R9cAF>92i;i7+R-E4 z$2(1|8DbVsqaQX9W50zxQO^`1$`q200OE;Hz!;WmgU{OF#X~@%rrZ(8_j>f*A}}kf z1RXNI=4^CTx8L3o$O(qMqhF9H3l1^elN511QEs3VZLpcF337bucSVQXwtMuU?!-q# zlacUa9-QLWXi~xP?=t~`Enbs3y>Jp5pwR2W+H~*a%&o_0LKbg0W7n*>35y+vn$6uYoG69Zn@C z!<*TfCaVC-eO?ztDfp%@67Xv0PhGWs-i|3k9xVa10Uq8AT?C*R{iKL}gT~i(5U2B+ ze@m=ZvL8Rb1psA=nt~L9Wi_+YbHsBKW^ApqkNt9+j1a$lcRyK2EpJRV+=!;&sAz37 zN*J~blddJU&d!ovr@Z##kj);AH)^Q0k8kiaR8^GpzK$L7HxcCN3@46k;I*E{1{+4w zXi2r5fKrAHt#!{YaHs$5D6k_yr?73tfyj(wXhk;LT+{} zbCb+k!RIlKy$mxXr$J-n;<+PLtpkKRv)&=S>Jb7#-)9=Ra(0@kdbntvr{dEz0D+y= z5v5hO@T8W6bBH^I)yD#7;NRFw^VBlHwaKr>Y}K+m%*#ECt&ozs3&f zn;mnU19-H>Q&O1s1j=tYaCs5&C2;i-ZVqYWl!ALLsK|sm^+t{4X*s+0xUo)ZWQb{8 z>;`uQJq>QkZzRqt-}xzVTO}~{q7l2EmmdrlrE_^z^}z)3UYMrw*Eoenz4!i;c-F?g zK7wQXykg1|z3I)ja<22=^R`5OuOvL`&9S{t#;UlR8!(egG;M~bTK1r`!<-M?pYkMS z`g|o9SVg_UB!Ee{V=J&^INt!5wG0}13`hl8t!X_-c>t@I-Q>13PQPmIXnUqQe5^r@ zplwQOcsIzvd?a#YHaHeYf~0)f-Fy<1nm}&~G zSgUdxRn9__Pa}h*B@J^W2H9(qH=M;Pbo+4YBa`CYGMCA5P>}|fGAIBLyU>62x!kVtm7Q5Q=2)g-hSIG^LLMRBJ=T4as^wa1P!}9?IkXH{^2WJp zzJQ1wzR3{ZnDxfC5T)09!kQ%mcH3thbDI`XId#FlJB#J5zzC;NTI!RpQv1F3Yvk-& z@;q_KYeKOe4n14fh!B}K(d_H+KB?JZvuZ^^YSS9)2CT0==~y@lYc z{klhu(vvIo-qfl;9pQT_*Zi=QfIOT5W=|{qCiKMX zD*~2%cs2LA2$rorvMr9aDrOf$wVnV;!ysS^(jB_IWFG?dZ7|j~abK-%WY$-R0cdl% zI*Pc?*CWr{Mrt!``2Em>8SYu?Y*;*bamG~D*?`pAT$Do#jmr{=P>A%hv2X~}-cK8B z-`L7fQ|EVGY)25m5D=Q_bv^(FPV4QMB%P$W_wRkEvv(6-8t&m3mqnFp0}UCUQbbQ+ zBw$7wN@g43Ujl|{x{~|W65F(DBqaguL8tYxnMR8Ai|_uDDJRJ`o~x>f=pzhbeQ;J$ zbFh&?AJFm(YMt4~&)(LrGAeHp?p4P`r#enFa@2KYJSJh`infj4w4u)F*Mc`aY>6hNs+bS|p4U1nGWi1T&*V&Kfhy+Is^& zVsHEIU{?q94;zR3gXe*iN0?#qtToYDrIBOPrR!-}-Gy9QZ%zwhI?m>(@91QqnZar~ zTi8&4vZjY@E~wj(w!YV=W#E**kvWqzlfg>b*t210wsyf48aMTLVdr{ph}*fe)acpb z?zyWx_hF~rs4kbn(9A$R}BkThJX<@;bK zu$Tqk(KuqKM$`;jOB&T5lQs<6&^8X}9+?})4>xk?UoO^mw)jaulnfezkn)iU|H7~vCm_lpphnFD=%0i3Upy_=!m(5L9nffMKoLVk-Z&Y)1 zPo-RQW1@xfXj}Z#>>Q-zX`|D^`=&)$dG26hiCC+TOTy10RoL$4&ywCS0@C|*HXLh9 z=LN;E2Nj3e65eP7RyPt_vDmEYj?c6GuXu21WKWINCAv(`v2i73H^g;5^xEwXnCM4C z$>_5f&_OqV!M(a#ghuI?ARR&chPL@cg`sJ7nl5@XRdlK1R>&1O>}+%V>a%(#1lSU^ z8XQvH_kL+3d74Bjsw3`oVP|+)r(^9K8-Y?0cve5ywsO+3db#rrrkDH12{Z*wegId- zk7zdy)4V9~7J3oo&Jo03G~$2ss5G~hn1n=oWh9F=23?|C25R=_F_8A=tpB5m=gJGM z5>lXB1{}@@t3iL>Ixx;Pb9;L4J2Fs`rX(ec<`Vgbu76pmQSl^T{HnbC;gPuH&`X5m zwl+5DuoRwc+=|w7mXw#AE_eQ#by#Q7$<}`112-tLxz~u@a4`0)H#ewTAdz>Se+KA- z-(H@qgMB&t()DN>wS}9d2wAa@=j_s50Bqp=E#zX-br!#CD%q0~_|&9>wy?PR_Z-eD zt-#3^BkE%3D?M;vH+d)x{tGPm?d6X3tXA&bXTZ$#U;cf#jGvEhbHtTFZNE4a9Q_53^B|iGi$!v^Od>hf@#kIL;GlL zH^HnM!_LxCpHzSC6L4*_1Fum%zsK5Oe(^WA1C)LHp^l%kWQggGR#l%!qc7&U8lk6i zjX6=U?rPhprWBaiejLUM7|TIiF5+{1F7^ZJjo+@frJyO1MOG1D^8nL&DUPYoYT z0KWqmbfS#?Mv+1p@zVV%=P4gVgN?M=Z-=&cE`5PXq{wfQC^|p$zJj#uHYdEKvh`JR zkhUuRF17x($!_IK0{|57bj%e!Jw%^QyZ_7uI=R1-(-?l=a&GK^qS2ITFPaHX^ z9WB+`4A>3u1aHX?GY;nxDUiW?Ql2=ssBtVZE~$S_HxEge!3OIW@dI(-*?{GFtDSgw zY{omXCCzU=Jdy%BXLBJNO$N1rP$OF)K>nU{5+h)>D~DYAGA6s6L$P8*ci!P8%xlsf z>n=MSdKLAD(|jvAm)=!n4_D)P9l?N}^UEc*v?qU=U%f(K`}k1k*1@bg$EV6pBOe#U zuRu}myU!I4pNh4BT=x)3ZmtBsm%fN8% zs@_vKm2s`EQe({>@W#Uf(gJvQ=g&YMabD;N>h=>Q9&bdqV@DJ0mWpcA5Rmv>yH8mQ z;v6{~<9CBzAg1Ky_kjX7(j##esuV{B+iiHELE$**^zLdu8D?&af15MZ3H&m3o%If; zknY%D-!iE6VLyNY}oeQ z=8shb@b6fBREZzfGN|(0^#}>+(=PycjprHD4jM;X%J|9^f6UmgZ8LaXki@HE^^K_} zf&)~4gqu$=!m5`ZM>d>Rl4zf1PuU}Q ze{z5P*LHC2xn8k+@p{Ypc6xNYYb*+Pt4KF0jU}yhcdqf03Nf7hz60L2lCWB?`|yUx zXVyRa&!!ABgdA&Ie}~|Ar7!dorWd=Kwl_w~=yXC?hoJ$wUw;5ZAvCXbuPOWu9G0dJ zqvwZFr^5KL>jUK-MB;y@u!QXldCs|;b$|-d8+p=>pz8)~sKSd#R%$lX?H01H75zh& zD)XpeXF`-*=tPm4{)DfJ8PKcK!!qW*6S4(^zKSIhw)~MHFiu27!P`SH^tWI7OM2HQ z+P*@gd0mL~7pCW98(N@`O)iV^Wg@!8uQdCd`)dJUK^$z@3m_uGvhvsSMye*0ZmKc% z#{jgG<+Vy<&Tl?E$E`4!984KKUzwn4G*=66VW!mx6Ar-cIOGVLFdJH^K~!ljXA6V5 zkjwG(XK+SQWVmBMuC{;4+T_y>98QHnx zVP}cS`G4IyxW===3}H-3-X`q^WZuuDu^2<7Szj5>~wPaHndVXb5|`r zjNj|nZV-3+kWTVS3+&3p(%7f60$>G@%8eE+Pg2PxR^)~sQ-08qu70k`AGZV*b63?s zsLWBA_hl<*D-WndI0fh+Ba^;Df=TQs-==bbpS5`KEpG@QGA@jIoQbuH`y&H9biEz#)gn9 zY5a71)Jtb061$Z;sFM4E^|L`&6u!|3|4`q3bnGeBKu|YK*r3&k^^vf{r`dt?+{q(` z7JDXeiTBQ;KC6qONuz1NS*6=kv)@i_6q5rz{$?!Sp6t(Vu+6=51Cpt7=kNY=DG>@4 zR*?cci-?m__bLC%@WpQF$usB|QQoKlhTuJ!jGr~ z1Wmd?rBRGq&ln`rNI>e-#T?X%u_+=5ptTV-gIJbZhM8EezFpM0Sd2=xt&d5ZqY|&+ z>j@rbXz`FqkUmQ&bpf~&@~P=REVidEv@t_jvyE>_ z?{f6PZv`v|gmjSsSs8dfb?f%ZBMo})^ew_USS8)UnP6WKDRl&k(ducj>6{jB3SAE- zP5t4Wr5*#{x&;JpsORU|vwjHfFhkF^GSpdCLrB?4@;-iZL4y_ip*%q9`=V5zyAu!% zmm+|at>Wyy^URAs!!bQtdi~ioOPBYzvIc)S8KL|QcMX4>QkK0c(I%A{xM228C{XBs zUl3p&-zS4#M|<0yo5`ofB%;unLN%C8D(fXTucg@;xUy}|Lb-3FR{4iQ`c9U~AMnL= z^C}RRlInKG)qv}<`%f?7kVd=_IY^dnRf;%%7$bXf%>4H*r@j?{X|DvGfn?Xu&&y#X zb0WcaGeeZGBRa=~k+^07~`iE5sU7|_{r=dD91vOAQpT5YNJ-JGUod9)H!za)4 zV-?-XbI9y(meKyGnuv(iGO{o!@g_g)QLoD~4Qi9Jh2tWZ;*ZKUwLf^Y+o@ps)zM)_ zdu?y`A&cF@0V`4=mrMXxEk74T<^f`V&zJw`X=wo{r4vD2E|dNjA9J41%P%B{hIKa2 zfnaSHE%XemTt!)@Ie0K9hOO9$);+Ed34{_8#_VWrTLi47_ah zA_QoeDs*2^D*e>sAX4=aRX|rCk_%Y25mJ7pHW|5BQ3!>VfzHd8aKi_<>kbU3oI3<(9X(-29#cKFO zMa?kYGSBCL1>=}{(P!%MGL2lqc1!!_Ez@p5F14?iNAGZEP;GiV8vxo>NsbT$z&WL$ z&mMBD>>39t1wxx#e2twK0Z&Z65<50gWSy8e;ihRA-9;YA2Cwx zka;fV9;^E6^n^}-0hC=H#43X-Q}^?&?h2T>Z9SJMyrPVAk@GYE(vHU`*p!)af-Jrvm$0xB-31#aw`W+#CLjUy#Z?`VPkl|chl zpJXWNc4B*gEaSkBw87*Fe@0>Udd&2V)gP(a{b$FCn-CkPM1@LP3@HPy_kCxF5k5k! z97=E}s=@GZrL2NIfp`-fM?yavoWYU2O8XqBYP%XOEt$#d>M7wc8m@G^42#8cnUX|w#^sw zY9Vri49LM~TdKSB9H-=T+sQrh+KrIP_}~>LMm+sWK(*QKP=%>&*~bb%l}aEy>Ntxtk2ShO1D;0B5iD<{e|NSg)VaPBT5C(7De(HH_pZ74ezoKyiGVgEz1%| zPlb?Ah02?_kSm~!KC?!V%jNP8=E+tsWFH@-#OHY7HjzARevXOOdAiaZeE#_JQtC#R zx}0s*C}VL#(Y|qJ9f@%X@g1ieAZP800yo^z@z;hG-WOZ|YDr-B0&@~{O!&R6a-y3j z(C45qKwTLQl%Qb6ro1euH&;i{fW46;Q}oR<04{m#iMuVlb6b2vJy(K=ZnjA;s_QtB z90>qPj9IM;RcZZDgL~ho3asxaRC8+9$!7 z=cV0l<%q`+B#~~XG5I`A*mZIo7Mmqm{Uqu91HUnm&l66(TLQhmssz*skzRp731-JP zcvf*a=6E9v&oIX~p9;`!=Hb4Wn!-5%vNe%xaMahIm_jx9nXaP9tIA~i{OC;QT6PNd z0Iw;lD*o_NmD7UV%9X}bHZ1%&;?jclM@38P7`;k^?ub~o(X$#F0WzG~!}XU#wLvc= z{VX*>n*fDMZ!RU!`V7L}fkJ&hVhjT+#1kDh01^1bAcm!??~;R%5h!0!_xHz4geRKP zlqABwpI>M#1Em>(*T48_WdhZuSD(Z>8_Ni42s$4qG_#DM-js6Jxi4wy4XE=Pd`wwR zNzN9qVlUmDYr^zYEu8J-J_WKK>)E0YrTc~1QttMWu5$FDel13+2IF>b_q%lj5J^kM zbxqaH(P8n$-wbv=4(1As*&Eb%pk8X=ACTj;gtob=x@nYM`*5RU7_PP^m(tHthh9pc zwO{11^?bZ#MY*$_forx$L9c{>t9r}?$=FtiX}wjC%fpCyo37cz>q`UggtmHt5T~tIG5mT|a}SdR+9& zsil>GWdVa0PFJba?A6NA>1Px->%(Q45M>&6_Y@u`+4JjB`4aa+8;SBs&`98<>?5{iUhZ|=5ep2?yG5pdW^tcMTi`)=b0uf zIQ~cKaU>hev{tAJ;ltN|O;(vZDMD+N87cdS%?Plz*qCa>)MX!op6OMZC5%Wm#-+9= zT4>}73Khe^)Vryl$~phID^9imXb2nX)DRw6)5R-G;-xXM)qWOnKhfMS@uFK#%Hoj^ zIow%rr)u9-G#6L#g69YR4H7!v9r_u#bRQBPph~3}4a#(GAvGX8orn`XjpRg!z|~)= z`z^73*_d00+lz$AhLbX#7N&!>py#)KO0{^F1=~pJtSTn=#Oa^lnYPX>+=m}(awXi*uZFCWFsjhGr9RpGj}!xG^lD2o(rYOL4OgsMhi<+G1&^>nHbhpy6n*j-{nh671zA6{oT zP|hqPzvIUqmSfka7zansEihti5+fd3ci0#bw!AihuklIQHXx``ui-#h?g=0vkWhi3 zAnnFD%IZAbzm$PtwfLwX-z4Ea-x-m^Kax#rcYYjk%vDQyvuWiSCVRW1z1}s-OfG{j zIK*wYYQBgBi*qC=voT`$Qpw9r{Ox6oJuLV9E3@{@HpuHLtc{J^ty^Y&p-DEpm@zTB z*BnrehI@U4(CzHn;nlxF&YQ^`E?2SRhfxl5Y2J1T>g6d)Ig$aYgRUJLbEc^#spO(j z_F)9LsLdnne3?Uwn&l!gxCYR|7?knI8|FgZrW|vC%UMK}&!Wr4Hb}%XeJaXB4Ll-w5p563);>PV=8501>V(#W;%7!xF>Afqi?B)~4M%rkIa2yn+sm#eMtT6{}1~Hia4c-4)EHSf=P82FIptZ2Q={cGsUX()702`+%q-vu?dx z%4FMt`bW8^HT4g%qg`n#&xFxagH2!;>4;PvzG(yz0(>Xs3SJ^R{^LmZlqcee)9c&x znO%f41gnqCjuHS9P5F|_!|ytMuiNNLP{Coka9VwLINmO?d1J#2ULMe=gMBAuFab-o ztvGWA)!hy{(HMj$pOKNFsVoCDFIkpL)Jy8H0cF2Op^rFO7?{AW1NB6PzUV+;_|Vqz zCOWuwuprjFSpJ2IWv1vRTdz*b725*P^zjRN&H?`0l~&uS_9+=;q)0?LD%qlyyPf0! zV3G*RZp+0|$rz-HK`aIa#;z9Y!8@@!Mb8R3bW+7YAZrw=Ok*oe;JNmTFEspi&3ErB zjV5Pr>8zIO_HwXmC@o-hN<#jpO-Dk#Zke|VlUR&ci+EceOeZX}LP)E;lJb~IYr8LI zp(sWF!r!&jx7llVf_DwhDM!NVaRXtSFoF|F3;POa^lGktSv1f});m_hLQ;Pl`zDuY zvrJPjSm)3**kA{$5#_$OUwqyG+Tj!9{EeuEoND-ys`|rz&$Y`?*|e)NlHl;kN~6!u zFMxLcfMP$2L+ID$$$L&lHdLV}U=kaxcGXICtIxg7i1hm*X&B2+m%t!f1d~p4RseC_ zAUKTAlo1!tl?ZAyO1srS?i8@C5mtWPV-DL1yd!RyxZ^x0Ys5b_2{*~`+MK_v*^$e= zU%U7QWm>Y;aKjkC3#C^BNoFhC&Se3e5g^R@XhM7mh!p#eN+bTdO}bqG%Yf_;U3n+@ zhdABd`Gbp6ctkc&!`Zc}ul|m>Hh*6u$6ONaInY=xrE?OxZY;xmrTPwbWZg21LYALT z+`#b`DghDPo0jRomAENg;nv$Nc1A58_xy3_M~>pNyF!9IvLo0Y?5uxs%rfObirzvj zUQ5h4L9Q`@P*xM!7-uJ(n{R#;V^{@rYuGT@jQ`zS{%A5M!h>wxz+PW#Q?*B3OlXCJ#b zXEe2Pq$({(l^LEsS98u2TF&K}kqN4IZt|^msaekc5+^*Fv%@vK{7HIp?!8eu{pM)7 zEv2wl?XWdNrU2G<$C@v0R-{Pj_6oFfxY6{t6TW?*xIA2I%I7MnnGMO=Ur&YHk(^y*`MYl%gkW%Ih+A@w)RMJ#X?gdBe1+Vh8;t(N( z-*S1W$EEhn&ZpnMSf5CMonP5)Xf!~ZP70}iq;OVEp1>NizxZB}1x}*nk(%dgb*gPt zttI!$6$d+7oRGIsQ@l!Mm1c$jvxil9xN4vfHdM28@kv#;UtnoQIE!{pVTzY-!rXTK zd;Bm0Mcd~e=q`;1fb3Z&rb21FV4d!sg#diPi{EmvBUTQU$5R#{trE@bB1k$z(6P+- z@0eczAJKBRY&v@DA}KL(YqsU;FK;?)D8HLG->~7lDZ+xB?VKMB2#xh&cR0K!0U-b{ z=1;?9tIpUNvkhcHo&O8zDyM3#4^n}A)t5=DkBUsk1M_)G(#xfTFL$=-6WXx9fQ`~W zX{+j5gc|U{6%HoIYdBGe>->Aa{NTRy0z?hK^uOxMpZ1!Bh)cu+dYMVQqV<&k75*gv zz#~^ntNIG6G<3*LF8tgjID=u;^z-v8&zf|A>)mMaT$RfdWZhX@0Uhlc6Di~Ai~bmW zz$4@9v~;`0)A+6j^}lK;YTvG<;f^&z-h($#Ahp%tFN4)Jh=CiYg3@^n7X~zMpuNL> z$E|{hA&?o5t8&0ph=g+(D#;F=Q{1))r61VXB?CU!r!Ha_vz9!iK6CQm- zl3L>V1({_mO=t4-<;uWJy;zKpmYSs|(5-#Of^?pu*9UY`EKljhn6~5~nA#oIH|Gxy zZg#MQuYj0WR?a`F9otR?*B>~6>Vi~j4PaX7Kil0IJB{irh$QNr^Cz8^oHP4wWi!{F zUmCRh$r}Aorzrj7ApUbv2n@&?##8}R;EM{+KYd3Kknbm?03r^;@*#&o%_NyXxI`nb z(hR=*L}fb`zU838(s!d|N9Jt8CbogS!+i>ggFaWi>pz4Arb1Ef>vZ33rhjy|EY
7AcY z?#{!jRmo@w0caUtDN$OjjVkQT-{QI!W%i<>zlP6aTD=`sHUwmG(K#~kR`%J>tOGPp z3p+2yTOD1fo35Mxg9fL7BH^gv6#gh;e;yA*s>2@Ak0P2lowKM=NK>641bp^R@}nND z&$iic7Wcq^dAc7c>-;tIz~Z~-h>h3jgX+X!%tBlBX{ztbzh$E0%%q}br0{%LSBicz zYA72YHPtE)Je)*_4)A(hF^IGrdy!w^;G|Bdu2os2kQV@-$sN zwECG^4qX$vR6zqJZr=g{q}e|%|H&?0QRu&5X#coN>2mr2_L}|&W&Z%E0pvJa4RweZ z;1qaK5cD0hhy;57|9Oqou{G!l@eo>`WUHP5*4rR}CcOpy2f6^zt1`Cy(zWp2&1R4Z zj4UmEf{TiM`ujO>$HV8ewQu_WA|)l=^9F{-{O8r5Ji}d0CsKBEA8^movqk~r1Eeyj zo0MLGNrLkcX+7qr=GODG{G+i;>Onykoc_hXxb*+?!+ySs)ZWu~NE9iAgp}!&KPnn8 zR0;F4A7|2-eVWEn!x9*$P^10XphK-Kf^@Z7oQ;Niry{v~GPXQ#~9QN*%k(MA4nUWxx8eJ1`lTtTKvxq{Qc+WLIqGS zL^2K375)@x+a5t4YjQ1N=7q}8#jDJ*psoafP^B|XyH#*ea?1M8uVhhTjkXFYeBiGB zzfoR@$ta60AAx?0xP5(tkbged&sXs*VfT7`nN=zvo&L23tWm5pTq+g;DwbtFvoCJb zT!>p9{$nx$uxQe}b*9r)ZyN)5EYHfH|& z(mpu+_58uEvVvXSi^97In*8W1Blbuk+aHm!)Ka=5|M>)gT*axG!9vdAqD}Q0g+;$P zF7W)HNQFaUh>4p+nXeJ3OAeOvCiI`L)5c5@q$?a)FCAh3^%vA>MyjMl92!o6zI_kE zzwjq7{u2YF(63R!B4EN26*h%`K660s{?av=NlxT7ssv+oDFFX36c{KDcnqNiFsP3q zWICT8fVtd_Svz^Xp2-h~vZ3y$jTpZhT9t`SlO z^#}Ju3*NmBaRx$W^u<5lsUq$&9D?&X_ti2ladrgaeHNUO`LP!zTfpSAk<|CkMmZ0i zrfHd{7`loH7e+l_bG@w+FSt_r@Y?xGbo9+P#tiic{^}tbs#Cnp&C|SZ&XrpYHGv;U zFK3$m8jzO~7;^;msGpJKp+?UV$YQ@Hv!MWp=fg*bU%T#Iy&k2p(XMu8elXdp=ekIW zi#9qvET14%qqvIlX|XZ!<3HbW-b&(R<)t+q7#id0Hio7wKx1A}aYZb2E z(%@s!{1#_k$-z}?18JN|WXwKq(4*fe*7zP_kkD_sq?8JCwLnpndCbP=80Lpp_1J`B zmOQ^~G>K39HL->3{|Nu`ifFX#8;#vhTjDgj8fqnp0WU`AkxIEn-VwXJ5uEPdFA(sN z_T6NoMMZ91?{OEKD2--1ig5l5D^Bbqnc;ieczi_vgGi{c&kb+2Wn{E>A_2{pHO#Y{ zXVtyM@Y9idY#~mwRPUr1M&6C|$O`0SJ$wBXM0b`$D8wsbiMA%7Q zM_hk3PxtR!Fpi#HU;!Ci0xR+{uW+aST(4y`p#P6OmC4_v!WYD@TT$q&_xQC9!_&Z; zW=;+%@mX^6Z0X#`6z&@LV|qbdp@f$I{IU|A1rmfUFhxVj+L}e3?Nz8MXwF-d*kX*n zFAHg=_mA=RK<$MMVDGSVzS8?If=?vmPAUt4veX=emHhL3e6s0x@Za#AC;k5?ur*2r zR0sPns*SC=16#yD|2rKLJ<)$Y=akU@gJtu7`3w*;U@yAYGcvUDKUIn~|=Uo~11D${=;p+ZE(i+8| z-_m0M&87Odj+EqxTiR5fnH}M}^=`o8B zx5gLz$L+b3m9V%sXezsXH$OX{RdR$y5z^q+G{FsPu#JYZn-p&;bS`AXEvCf_9C-5DelExQ;NHLDOS9= zySoMtDMf<2LxO8?NRS|3_Os=Azx{p(|H+?&)gvke zOP!gIuvEQT=LJ-Wslp^J!Wq;JH&zJS{f13VQrkwZI47iUOKdz!gOz+%Zs{*Xb;uXIDkq$oYP@P1Gxig0UUYB8#v~mb zJ)9Z*(mOj)CrsRxa57I;G!!9n_()?J(g%*3*wyUPnrweggkVK(8*LTx_gXIZa!+r` zHY&c)qbdEcr=k6QQ!f%L=TFUU%o7H6U;&JoyvKHN-Pn0Zpa5co1yNn}*yDE+R}k{$ zV&*qQS%90uv!kQu{~ptX3YtB^Fo527#Uj5shrSn}kG8+J)dI)uhVgAOwFv|vid}TB zM*J@$LR`c@*|KFk6^bAbRqyFl4h0QI2a&C)sk3cCi z#2)SohWdvrv?&<1&iPc&5z8Ti3+#<%CyOYhHv-grbOB2iDh5{E0SBx8E zBtDn4yTeP*i)kksFi3`acL8ogu%^kk)$-@iU>+u&+=j6>K}Fu|ZU8K&IL<=W932i9-qfrXi@W~|Ii zxmE6gaeZlRLUKftq~#it!4*1aR<%$)fl&^{X2Hv2-yenDsaIpMCBZB}9BDK6opU?D zre`33;m(qn--Vg*;Pm$(g+Oi+l-%gu6np`XYD>h1q!-Eg8~Ld_!M1Ex29=2}WG>Nu z=RU;sL|V_Q*5c;{?89Tcn2M5VeX`_xvB!^hGvfs42gmbuseLlglN&e9SfKgIptJWH z!iw^E5&WRD@H?l!LU%=r2w#-YvEW{H-1G2`rMe{Mm~dUdv9SC+r}?AktG8&Kktw#l z+^A+67^)@=CaG3~+j=vKR^ubISVxB{eL&_rWEu8o_;W>6E|iJRCXE-Lb4LEX=*!Ny zpgygKR2zoDD&pYY8}8&U&6djTdQxP`@mJ{D99B7AiwI>OzaCN+x2wwR7vL;g710=& z$~vE&HKh5J*3qHY_&mGjf#3vM|5Vw^%7B7OUfA$dA{&?6(R)yTC=K+eLl+#t+mOP1 z^mF#lp*Ldht+g)8`&qkiyutEu&Y8bccVY1?UtV@pLe01~RYr!7HB}=~# zLupY-d2nmbmo=?qLQJ5jtK#!)ZO((Sm zrTNf)hHIr0a){Zh`=50@&%Dz=on}Pq4X`XLz^Df6Lx&~-@Hv+0!=Kimq(>-{L35ujTj2b3kjhKQp-wK?fJP}RM!TZ(4sEs8+O zAr~A4u{%wYTun|dI&Z+ECGPr3A7&qGgDBHStQCtmwd-vX_oSCP@+!eZ>3Q-fx)P0E zjM>OpY%;hp?G^U5;G;z!fDYgzsETAR>yO2Fr&x=Sb>U9pFVfvzhBdJ zczQ02mLSg)`cm$wY<#LeG%!hku*vdtB5%T|_0*>tYFDMCYM=_J4NQ9!`siJ#f;42} zmwX$({)MxPr7jk*PSV2G^~x&G(7+g0{bGga)g$mSooUet-6LL8mcMgaTD*Hl*|j(e zUSCW(Tbtmz;PCuU!?jPDHL%#WF`p-U;poI5#NJpMb>KY`$qsM>7Ak1ise4zydlbqm zJujHKKWxHR zx`fOfUdF`X>cFFa|F{n}R@bP!|C~5(DUaE1*mAR8IAgO>I)k14I9jsn6i_?)^-sXG z5n$&Bw7JN2@LE%p`BLcdx^=Q-0470fr5OES440>2?M+oQkFSQn{^wq;bKJDKF6J07 z@j-yCo-Of$i{i5nVeW`KAvtx)Qt!#JniQVl9vGy;Mx4F9RGs?J=58>5=B=$q_Uxx( zQPYXH=;}JPD>@4;q7t;w769@V;@I|5PIDL&EXLh{>``(1CEDuYstT0i6G+l5S;PZs zx_@%4^c|+cP^pU*d1b4e9f|mi;u0aAC?!iWn~tvaB1(pk{wI##%kii}pSM~6D<4JQ z|MHIx=Sej;UhE)|w8)!NI2!Qp8RmRM*PkN@puF!KZzs+r<7g7}`l=Ecg!t5^{)bD96lU?bMxv zLh_B{Ny{liqIjAcKtEUWX+|x2ZPzmkB(eTG1&ssJ94nb-=BE!&z%+hn)65L-ZDgR6 zYeU>H^oLSXuHG}#)&0%~mFZob?3Q8@qe2kJMUzONH#3lzoZyirUWj=hsRd^No)^!~ z_hln^0MgYq{KfxV%xJA;i)l{$W#x*}gnms!AJhEplKIa^(Lnd2~VR8@E|<3W}({J{fdsvl1QlKeI{nc;%T- z17z2HJdJ+)PGU$%N?IGJ?SlTEP5-!3QGM$P_25X4MN6ST;=6-iY)PMYh3dN3&-}w} zXV#6tQgs1|_3Y1eXTwv8dWcQf+n zXh%f5Nc`TSi%TDR7-e$ZOlN~VzSz1uW2mshOI{Cvu10>I3l`TFnkFL)L}-RwDxe4) zG4wiYgJ%xX^9|qAQB~Pw{$NQy$JAS0iiD9D0uzeL7rIoW~ufd-rIOJ@jb z{gv6&r^qtBKh{Dm6=WJ~p*{`zQK79Qsk&r5%0VeX0>qocv~FI zg4XBa@wpCR4sQ#+59+HA)#0=19{E+_raB!d;-wcQH&e=Q?&3u`GfA~;8@qQ6nrlK?3F8DhE6#p>+n^0}VY7L`pMC56LFziA7Xx(F8Bmx)grw`BEWNec*e)TjdF`Ju zAt*pTOKs8y;_%p0(w|P3+ySQd=~aVxC_b_*6nk3AhYpgl`$~(PUrO~(<0LA30Orl) z>1Pj(7k?NuXByb6+nKHxoTM}$-lH2x8&XAPC-2TTK0(=t{&>T_aG|B&LcW0C@NMnj z+9WOP+~(7VqlZwMZ^Z5%%N!tFx)Op~ZO#JIgqu&LPwx09s#=@?{HF%;ct328d1W;! z(Ybtb1r7VtO;H*8@t$L%4cf94Y}`o+;%sf)9fzD~_#sFXQH?X|39;v7_picl{tDMM z39yZMUp^d=^|zVytO^N=Sv7&tejWcH z!Wbe`Z2(Bp^yj*tkJ%>gF(VSE-9Hh~^>X7P>j#Th2)_^fHS<{8)y>SC)nx_0bK@uf znkR+YjtZ}mrQop`k zRnWb>YST))yz6)~r(MFI_IgH-VKiT?`W^9|4$EsTchSlgj)Sn_vY=1!Mqwz^JBNF| zc9dS(__>Xx+S-cWgQUn`COUG|3b4v$;}-@I;|F>sQ&z^C+Lh@@-*dY4t@LOzV zIF$37M{VzBccLO-OsuRlVNV3*y_zr`HO!=Hl^>>VGLM%Z+VnYlx|jWEB?0P)4&x3( zZEy({+IA{h$`;&9m>-{=%#(4K;<$nR?YwCy8D1udi1S%+IS^e7hJ8HZn6~U~O32Q) zY~tHKD@<#YQnZl^cx?OUk~L{JX*Wzq33s+u#1}C8s2rm0cX6Pb)c#)1YK>qK!M8TA zii#o>6^vXCVjA}<-XWXgA0{?r!qy|qp?{mvgDx9iEaa+cw7EO&{ltRn#S^<82OHi+ zPwB5O7c(mWM)vaH7-esv()E0v47#X_8FX9dCd?a2vY!oIKJ`9YPqIssh8yXD4ZZQL zY_d-@8p-Qek&Wr+PF$>|Zr-PIwpYk$WGJ2Dm_fQoGCwCkXD3_A6`ngP0PuEdj4u3e zRJ{uFdUV})ZNvWrh1mTmv>GgOeeOyOezdJm=Kyq0MGA9N*fUL8Pd&lF(n|s*XNw@B zO+zBi$d@fE*#U*gjjWqZw>1;mi6e4-hPrTL)RbS7_alK4%P|pZpQRKw^K~buyRBd4 zXBl7i-PwhJO6Qg_Z$#Job=sX9GS=#;w(lJ%+jU>paxJw5jCrTV&Ua0C+;tnOf2ed9 zH+;?1@~lm1Cn|d6>R)^P&b<3S?0No2oEeVwb*3E$ZqI1oX{3ta-- z`OUqmw-17mcU?8xP-KY?-SqIP4H;pRnox2%0_QKXV5<{eXIj)+>G!@lzA?DGM<~xo z&u&cKq7#_d+4(qp_+CmcL>Qg|6OpR%gw8Q;xz3*VYOnDeJacsNGe0Z9SWOBk5#P!d zl1{%!WsV{Y9g4S7;L%g|n~UxFmQ9_T6vE(tHagtFdlXT}WoWe6wPf4#M!pN=KNK&( z#-824#Rw^y;Z_#Nn{jnqp#p}*X|Wq-2#WtJ1Ab@X*X zWa(z1LOcnx2fABlV(v%f>C*ynsL9w@ZZk`bS;(tiXNnjGr4QFs5a_sP0$t5*;2rV9 zEOa;dNx*v73i4DNKhHA6$G3U+LERXFC{rKPHvauz^APhGeg%7>t25LB`#C0yNPAI_ zDeYdnXHU-f*6@s2pN@h|T`lw#6`&QmXhEq#kNoK9g zPOX{y%Lj_bG=hBN&kwGDUvO-5jsQZ|ebr~oP|Hei#TaiJs`L?=cho`R+_}_Qokn8F;WVUSnDWUywS;@T>9slr25EyO)vuFCa6nYO%>) z@RrMZX2{Nao#4X#RolzfQL>05Ua4$MH@PzbC()OK?YOz0o3=`FL{BJnpn6Glk%dS7d8P6Y4^zi2-yzQ<0%_x6mM)bbMx|3(a7W%S>z*m;GXnn5b z{R5bATF!Mj;tNPq)WhKEpF}+`bF4b`lBkSp-RY5}5;Ko$2 zPF<|hXOTlL(XBFcrv7L}|Cgacm4s~rGBeBsW?g&l;?>UijbU%A!6iJVfM7AeR5EH$ z!Rc)TSs`I|R(H&S((H*E;p`@**9O&B53t{mK-Hxmr#}B$_DWgp8F-SSnhg<+$gWvf_rC#O78=>9Fhe{Oe@IJa#t`Q=lL?@ZSV(Pn(O`;f$>Zj$S=MYqYN zp{z{5F8#@27<2K59gsOE@*etvSd_o0)zZ;({jp05VK`lUhh+LIFL_1N?6ZFzQB)?5 z=gqTwuC0~xibRf3chN`pj6ox|=N}57C+v^m#cY2NO$+(4erNRWCd@`d+ph&5)oc1c zGaJErKQ{5R9jFJm+I#r2LSyr}hy;8Ctm+oj-A89Br)k`8T|88qee(wY#Y^*qTy&U%}GrtOjUbJ$Kt zle+?Rd0*ci)>0(<98XgPkDDK=+RXUX-<3OgVJY^0*x|7zyq+2f9Sc+&0}d)&((%o| zl8!t$RBj8LJ9MEaR<|6;m4uL8Ud05_Wo(*Ym77)hnpT$gb)}3$$a=0_KlNzSx5=8J zBBh69TvAnP&xD5d4alC@9dt$>9#Cn7W?~l{v5#9_S!SnfxC`+`xQDf8{JDolIQL>a z)UnDjJUHNU)3l$F*s>2#r508hLcV8V%=piEMWhSya?9s zGqa4ucl(B;`J_FFcM#5!z;Jn`&=WMQdBn)NOfGuM_i<~o<>Qx@Kx9)MOt_yRRQJdz zXw>LoQtyu79C!gCIQ6GXJeDcOF!H?xTO)a`&zoXGAY>yjw$G?hB+U&TL#Nfao}yv- zxIh_iGM`AMO})VeXMd@6)@hwbS8lff5+`344=9oe5>3Wv$%+pVJci!ISXCx4gtkiK zu4jnEXjSPq_=tULzwz?)sD=hP`3g|KWbCae+ZQ9JU)h?y#l?i>48Eso_e2a;8%(^`T zM^hY3JgS(Z*}|UCz_eV2ik6s97BWwN*l8;oeN^45FFnR4e=&-70BgOyuc7so1wHR3 zn>(#+APY>?j!-$+Y$GaQcS&{kqQ1RxJDyr_HFCheim;Mb1;=U^%|F;UA8!RF-a*#n z;D#mT$zz0XmXE@ZWwWiI4TmrYq7kynGJFfFx&KMzHF#mq!V9aPA_+I)C&~#Vg}uzM z5+YRRmCMTbIdy@`01B>Tsx51W%r?GAdVPyqDX-Vc=mz-g6mt+A ztwUG@7vuA~DN7GaDZpPueTl08FwQM4aVViVNvD9KIfch8~B*$OARaYH(MN_edZT7Bp z{wObhO--iRH70p!fMYgIg?jUP%Darr?Kz^>UF+$ilIhE7`r8U?mA%TIKp0F&6N>RRj4SBn)50={F6>-+!X7{%s8N_s##`?~MDics#jo*TtJQ%6w!5 zdV^0J(v?zytjy9Tsc8C0o|y-nZABOad;w{Emb`0wwC>FvigtY?2JMExW>Vi)>@!Vj z;l;=7RsM(e&-&3!A4Vm$T6V-UL~P?26xGvLSnOzY^dt1$91lu*x^h`-{bUmP5)|lsppzaoJ=DKwzsF+G=I@p+VsC9aTK^X)xB#cJy#{nU>xUg-Hu@|+uUzDn21zK0=+6s0 z(PQ1kY5da!a5AFGm?Vpj5j-~7!dP|yoiIK_53H|d8?cLyD0|b-lHi*SD2JCubUO*r zy#aMUFOtr%%a)MUfQQY2i-|t$MU4oj&K+{m(Jap0Eq4b=L>xT*9oIon!^sLMI_}c0 z+h@-@U1c5*I?DPkGWh76j_E|;n}*nt@QV`-MbNlZWi_Gcea!GLHG4lA%0UBE)ab7$ zhOCc^(2ql zadYRn!lCHo!Q7tUfhGObdc7~*FCle~gBnTAAs-I;p+5Hv#5s#sCf!}N`mnyupZC94;TRd-0fg1+^yFkp}( zkMAyC6~4jp$bSA=`^)3J^G2t4tu}`uulKoLF8c~U&R5yUEX?qahbR?|ebbgNuWk*lyhpz%|&&-Vh$Zy1jIQ8xa+Xy5p8W6fL6f1#A zZygA$kLg8>S@Xs=8G2WOTqZ?^<>3Zv{8jYtvG)90Uc$~o@=9TJ96{HWzd59dEOo5% zFJiJ7ig@X$R{7d)sWPHGRo|tCjXL2WLX)!vX*1)BOsSN_kJ3^R{|uMWAbNtu%-*1{ zWQ+0M3Jk%7qDbjVX0Lp~L!;j#2Sk)${&a<}rSnwrBFu%nI-X^a3J+%YC9$3035G0X zdxiXaUras$7#-Gjl8e}d5w7S0)d!a`)8cOBL31g%Y6${Kb{+T#vWl=I8af9392AT@ zrF@-zaQ4jOKO>)VN2a{O7e9Bx=>vJ(Kv~OU$8Ef{5OgwFl@|$PaGIgQXClP4PQjzF z)~a=B2NT7&v3(lJ(rq%5&Z(M?SI_nLeKtDIur*@_H=5pRrbhsShw6nK~|w)ej(tpN25*5NqR-r4v6YIE%jIJQ_GnCHblhc7?2p+ z@kXi=Q!^SUG>s||khJwUO{h-jtEp_|KyNG{?_O-SndXcy%G6CZRku>;WEBUK;l|-05Cnx{k}I zf2h=3Seu0;K~W}hB~OT9&?|{$vm$5u^AXdngTxg#v&6~ko2*^w?M?)}7t=+xvIOPy zt!U?#zktt@E8E*jZ(g#`?#eYn?^v_(Mfiy7mB?A#70;hkxHn`}$Q#Thsg9@VjUods z#*hn6Ho*bc0z6qh7dBtjoFM&3PrERlNHa}Z3?=m8R-(c*VJGaTvd!#;Wa*)%oRbSN z_?cE7LJ7?PIj3>7YZ5my|Bg!eH3eu(Ser~5Hi8i|)YgaXUwH8rLzwB~By8MO1r*EZ zv-bm82)wOMnxBy(yc)25LBM5;L6>`cw(}&!H;wm@)Pk3b067mH%dct!eJ4ng7H{l5 z#ict2PZw(zOuw8cL8R|4pUiJ3`|3*3iXH~w64175PKUf|o&I-!Gx?!j9mx7@NyfBy zrJAGSHviR6+?XcEIU>^|h!WpoR)d+~m7cA4Z4^nJQb=?sHvedClsl#xL$slL%}{;} zAj}=N;U^=)0GGlqJyfOAI{!P2F895%M{Z2Gdu79}o(a&t$2_y!9_7*)of&I+RFx^( zXt(@i{l1}$qkrB}Y+bPO&9{p43DdfYQ9o_V3O{p5gS<6WB5{K*L^<8fUTEEXz0X_J)hR$2oisVw&g0|?%InQ_Z({9)J5Z42 z{c&VH##Qjjw|1{l6Wr?Hs$u%DYfI^DP0)_l5h!KG5|x`yxMDH*&_Z`?!iL5C)_#>U zS2QiD-t*;Mh3JeHYmDhNhU(ReH=S|5cS)Fzon-OVu01v1c)$^n5?{mKyIGyf;Kl6I z1;Ga=Uq5->mnB4{`PYF)ZsH#X_n|OsPAr2qI}!KQxOw5bEgfINR6Mw1qY^8nIVH-y z2DVX@?me`Or)P?c8cVOt)VHHNztwd91=|?|R&L<~fOmOa!}MCiJpSA#^k;7^lk6ab zscnjSc6YvOd}l=Bz+FA30UzbtzEtD0)>_dNa~4BmN)DIEtBBecLweOanOvdUc%1$x z!>`YX0;N*06!mS9+?d4GjU3_ODE& z3DbR}gLFyrZiYp9QD_sKfe8;^TRi8cH`hZj6hx@>?9rL5e7uv5mBCp7wO3%J_24iF z#ms9oOC~wj+qp#;k4%}Sku>0_-kI!bUrXED==MC@(y<;gM_4{zJnqT2jB|9k(K#Zt zgYoYAIvpPqVDoO55q$mI8l$~0+}&v+r8)~k*iy?-ze(17!H+YsiTwI;vJ#- z0Lm5Ph3fnHuBE-E$-TBK80A^Px4_}_u7b|5Fy7o;&m~r0eXWM8iwqNyQZ}-l5vSx; z?l7Ih;^7wy2=?mw!_~g8XM<{$$pK6YLNlHXnHdHr!JbQmgFG7^ErU+iJ1V@XY|6HJ z>RmPSthU9{X@I2Zb#mKKx5Ysxd!$7wMS2;_D5%!$6}sVIAMA$gx$Jgxo_kjxGfG+i zoFXk=6kLrXZhxF<PhrE*J_?GXfo;f$zjV4y2Y2GXz zR04FAoQ7tUSx4@Wr7ah_w;rtf6-?W4nl{OsX3TBc`?lG8H=8fcTGNxHu53}FBYLE! zd~-a&)p-iEMa8BaTC%Tlz1cP&H#w%>k$=8v>SF}ZSEQqYGFyZm^&{Sqf8EEM)DD)* zb}`7*;GBMi4rUUqwz>6dt9+4rJN5$#Tf38bkqYhoN_hx*mFT4CmLra|C>s6Lfkd*2 z!D;Lkiv{7A9Ch}Vwf3QY?6I47b9eOX4FuL-J-Z`E!@K6ndd+~s6qm52KVJH7kag4L zxaBENu3L^ZPmvuD6xW;%Juhz>c&};BN9XA1dV$S!Eq)!&PLE2eU$ulx@KpmAEgPe2 z>uz4v*b7S)LC?m~&GhjIK=(#)&!cbXjHg4^f2c45J8{@e2-OT%Zr&f<%X2IvScQ#3dmCp-_|5+Ir zeVVaG1kMJ()ptC3?3wf&80(KB?n8x^&F+Pfh;2Jc`s)jrZ({b{Eb^wbdlC2q4(4A} z%+!_@hnJtxBl9#fNoCk@EH`e^g*{v`dm9q?Q)RvwhQ4~aDp0Qy-Wzr#)?Q)+mO=N( zfW|p}B4@rw*q<_>5Tmd0qT&8cV`2w$8ep#I1;-g};cArC+e!0&Mm$#f@8z3^#`;7f zE9wVY2MTSHRm|4}6C~CvKml*Z{R*y2z-%052`U`MvfO5&Vk;QkauPjkx^T=gD9l;+ z6-(jShbLd2SNpHUkWjbR_$@nnv~%KPXzY@i4+=k}kJ*rfrb%gFaF2OAvZ=c?k&dJw zGCs{OOF}MqO*h4CB_-@2tp~$n4QaX`C1lnACp6Dh{%>ghbMb#e^A;5!9`r@|Ge_o0vKSdS*Rb)CBm=4%i!=Jl*e-6W z+XEg+D~WzsO%}$g+gmTYyC&22|1*NBIA{$RX0p%e3f(;4qF?DYVfHM3Xhkx4=O*9Y ze*0^aqC?p^{}nR`m{U6k8U{PCV^r z#Tdt4z{`DzQn&YV-TDvFnc1qCz21&77g9Rz8S{z4I0iLcqtV9w3V`{btWc&kHSdyW zWPcz}-XWi@-b8Xlxn)c}YLTPA?J1_u&PFq_FFAa6<`d+)*JZgAVZ7pnye7Vft6nPj z6KP#5_4-lw3KBFB#E;v`l;}9HGCH zEMW}Sh;RGL^(5(np{5BJjtGK(?!7``X*3;2D8Y{V;+FzVpd*AspKeQ@z$7M>>}VxnT&=yU2>z=r^Gup_NHf21y;<$Ilv zK3d?d&gp5=#?h0b9ysuhXstZW3oEvor1zfZ4U1e~TLCy|dyKE+f`LQAiU|0>*@Y_A z$^0&TxLGX;h+?KP@r$F;;YhJ?>0o4d=C;YVqXh;BYrJnR_IPZf0Kcp)rfjVR`1FhB5l|ZfT)*`t6HnO_caZ4fBp5{Tcb236~iZqM6VBT$>oJWo&=p0=8hqrA!{S z8Dl4rpZ_S96SxTE)yxT0)IhAJ`}Ib99_>CsCuSRIbYck!pLTH!t{*TAu13 za$DcZ4`X^*9#9U7^Zd1@Cs@2C~r5x3ca$(u0iE;fG&oL+%Dp}>jz`8y|FknI-y)G6!k@TuhG9q^fT)bNR z{9Nkou_~X_W{nb!bmyq~2Ra+v@pMVM1XfonKl<~>_FrCBS%GU`w?6+U>9+nWjd$AC~BF${nQ!07D zab-+%np_!E1ijAhPdwlwta5+7JK6QM{nG-Ddj8VB>&@ z6@II0q}RRm$a{^k62uo5=2k+~D4ar)9Pk;vl9SRyDrCT^J0gFs#Y)Vn8`ozjf^^dK zS@-FHB; z@g3+w(yL(Q@J1WG{e|e;>xNJ}g9r>@d0q;aP><`Y>ebEC@5#ysVf^=aAX5b8vWMd< zJ?Erec`Y8((2i?rJf-i&h_>E?-iF8fdX6GgE0`6uAVh^HQ!gX6YwKmR!RYAHO*NQVj$OpHi(3g=xXA%ukoE`_e!Qo!+ zvfWh|od9l!*Ogz$PEilqHO+uUxx;Kg+PD)v)fxBD4mqQSO`yb#h*V zT@k@6>v1;MNfwsRc|B>fl zHJ^}T7vHp)(CbSaT%+esNt>yb+$&At1ek5oz3+mUcCW5kEPnzY52#{fipqwXEk{nb zDt5M343FQLG45Ia{5N5gU33|GpmN(yeoj_}lha)5_TT}*LsGl*!RpCA zmo<}2&0JbViey_8Pq{1&F?0&!(bKu(W42qvA1 z)V#9hCgnzJGgmbn2DfTz zcxw27nf}oGmbp&0Lex<%4hU-um@WnP)r?%tf;ToTCDET zDg9qWlX#m))C}8vJvc%nTmN?rUYa%Z+GMj(njpFG?&;7Fn4DtMec`efi%3kR>F~kU zClC*?)-DIT{*9DLb?{x0(;6e64h(C^TPp zdMFR#c$yD_6yRYNE>=IygbWDZZu5dv3|yH)XO=g*Mh_ZRU3Z_&CoJh`@=+jw(UAV|DXk6ECa`uJR>4pTl%*}b` z@VmQ`FMz~wkyTsuT(F_BN^HtbLFTX)s-rNbq*#Tux^q%q8;2)L-6*I7soJpl9u4F* z`IUB8UE4GL@LgE9+ofme$wihgCd&LmYZ*Whkx5>Es#O+ngV4>l{1IRMO#9G{Uk`F( z&P=rq;KvjoNuKmA7hTA>$Bg>wP15>EtK!wes^}&+ev;(iK<5vki}6o;24oL_+LPqI zjaoe=F%|I|p)1p15aHQ^Nk}P~z*J*t(#-4d{8`&q5}nqy$3gU@iPPx>0kuBNRK8$& zBQoEP{(#^*Hj6Xv6&ajJl!X7UcZP5pzs2Hu*ZnV~gMRHb8U)y-pO+6{vqD|(dX@$>Uq#@Ib|bY91&ut?Ofp2OT#t>pWCT#+TL zpV`$b7ZJt=M3fw?=kvZ7dRX20C4-qh`PIonpUDljLBL7==*o4+vz@n-^i+U*NArdJ zf511<>N!cqvC>+mvhxsY^*&Ye2O)*oHuG9k5fEI9Ns*FujX{yII{scLJSy6*eSzM8 zveu&PNG~f}Nz6ley+a(offx~>q2Cwz5W3fe{Q3E>egE0nJ@W9$hj92E#%0reQDb9V zW9_a{&2)}u##lGx3R3p2LCz*(n<_RQY zi^JJN^?N-lJ3A==fSQz)^ti7k_kBbOJp=XVpIT&!Oxl&nm0)yHcDbaPB(+aSIXG22 zPKb<3abV9`&Dbqzcg3e0phNGMUrxq==letL3r*ZN0;0F}@-l-Z6w1^30lv;^D~Zji zld-DHdHU|DU9nTPlkbpRy>5EG?;G2e=(2JMC7;zhTIv$M7u-Kri}t0cDHyKJQW84{ zjv3k!C30}T48>@5{$L+vUEc9%)3s~0+^3(3n#P=n+CiD#�Bc-3U@BllA52Z_WJW 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

3AU(> zpezlQxy-i3?CGd^eWrDHfkKZLC#EBJB3U&u*Wz&wt)iqUX5Pem^lFfO#jeUCCw%kx z*-tOU&St@~>XuJyys4J_ps4umkEk=2d7U?WNnlUxYJ@PNeT^gLb$LEe=H8A| z*%!2!*U&*3NxTvBP?XQ?!TnJ)_xYi>0YwCxU;%{zYt!^S0{b1iYNzU#U0naxL9fmC zfq{5oI!8Z`;SjTf;1N=?GR`BT#V;&Ou9x#%_{)2h@-Ce|<;-wnr!9RiqK*zm?VRwD z)&ScIyglB~a0qXe9f2W92$Q8w#>ZIzCu5$ZiL5yxUi(rk%8CS&4O=|3`wrpGtHm3M z4;Z*XyKjDfrSpezX4lk)<~UyN~Kb>OiQ&-8xiw*yd#A?Crd*f zjx&lnZ@+*MiV{8YY<+iMHY<6kC+yIYq^U^w#@uV3?E0KthxqY< zg~*w|70HE*JZIM<>pbv@!5|3p`50{DF-(_I2yS|I#W8z<-o7;2`1>KdD?Wijb8ox4 z47KxYNer1$*kF4?eHMrHCnlAU&Le!_jyjg~O^H_krlV{X0jwc8+5}^vTm8ESQSHmQ ztZO%3C~F*@)0fdKuS`YCX(#VGk~qy`HGaNvd~Uo{xzLt!kZ`V3lac2)RB9!OPSTUF zDre{+$N^>4mfN8Xon%__hYuGL&_2K&eFMJXozLp)crtzQqfq?H`HMe&4x~JJQY^2g zE<5!(W6*4O$f@PTX7T;QzJnZfB2jclif1uxuI>09i{@$0Y~{os!LsJ7UGyBcGG*Fa zh4{Qfz3fb^EaUw}FAsOd$jSNagE}ySTX_drztS3Qi>!M2)l_!K$;kz-_8qT{Txrc{ zm3}0TT=_of5*4?h#W!}~W%lH8hExlKb?(hypOq5OW%cxHUkxUHZEaLPKa#x<_`wvX zdf76y1Kx{sx>ppg43`TSW%3|{o;4J^Ip&aC>t2cp_1E|&I)>LJ-(Y^(k^FZD-Oaj@ zbw?Ft@%6&om`^D5)VcfINU{s{^&#{U?_6s0MFTE4EjDCe;-a;?I^YS zmj5&>?3r$X#uY+GLbyA@y&!$4M>ns>IcvWpF*%Z4WFX)I)}MYr&1I_5d@SsPLX)pW zzSPa`(9*CQ+h2Ecs;0h>QN2Ugwc%iWIQt=Av-*v=oKx>#HXe)fSUO#Yy=kpkJv5II z>@V%>YW80lt zt`a76*m>c-T@h>l#?hqLFCbmSdgg&Gw3*m0((|okqW^`P45fg11vLJAVzq zjCRCjy)!XJxm9b`F1h5coV`=T8sp8X+(;ipMA6nQ*N1{$)oIlc-M{OB^(i|2A3dVz ztC_9}PEW6fTh5J8`~z#bnYWWt2=XeaH<#oRU8!}t;S8ErJB;T{@ zDWQQEQW7J{1$qn*r|{t5yj)Ue`s}QehnwcX;pBVUC}n)DDVmi*{whk>)AVz)*v~9)m9@PT6+GEU2Mf{plb6m-N&@uGcktX&Cs~?qSdo=!;J>uG2zDC zvCikuU$E%*hqaTnS|qVOsVUTwiVlvmvWiMG@H?*x25Q3Y6i!tfMolJfnO|s#Q3Ma< zZ2?B#sT-p}8SBb1n6kH@Uu{k^P+x7yuxLq5+WX@tf36RmR@-Xmn3GN)*Pk10kUx6# zXh$I>WraN4oTA%Ui|sj~uD*wWzjc>pSoSb5+hsz?Bf8dlp4qB?@!~}>b6KiF;Gy}c z8Wr2hW7O6!O>gCS7^d|j$OlE!Ly#1g@l9-Iro(9;_ak5Zg86_o!KoFe21M*Bb0&D zZ0=t{t_EV>Xx$wznNhQT8LwaD{Ay*JF3n@^Su~X@D<_)Q?VbWF8bt`6bG<$@P_OwC z5l3N4<|S&BKlbUwP#GEWJZP)7>nXa_TzP4*u2zy@E?k)>G-I2=w)A3+h6crKt7c{2 z=i&*sSzR$!&B^UGU3O)Bg^4v+<}vlJWYqZ%wd8f!W|!gJEIVQ!33(1( zvITGEy{|TE&%nTU-1~?wx5?Ca)^F?jp;! ze`K~KrE&TAP$pWMEoH&GQl!!Pci=_x&WkrU`ununsX=4!FI5K+3szod-5<-o4!IHS znSQa=&@5Q}#cbqCS7U$XdD`sYEPZs!>o%LxImQ~AYb9p$9(lR-BG>>vH$aHQ*l#5j zl8W*@C7i*7BpNQ?S9_{jZ8dROm1Fn#m~4vp=@U8z=V>Z6d3`I#!x!~j?rqZs$)2Xa z?%n^3w)YHZD(l*Yt)u8D;{YNmFb;wesvx~7h=}wOdJ$>TYe2dkr3(ZIy#|udA#{j{ zfOIJ#kkC5`p(j8f@E-1GoOj;)zMmi8kMI0Bo0H_6vp4&kz1Fp^buCdywi=Tm!iQxU zF5nR6vY%M>GWrL;5t>@7YZFobwJRDsEBf}no$trNAQ5GmbYcsng8kb ztC@x6>FJ0x6Tr(i|Ae^6o!$Jy2$hD?@P0Jt()UFT4#pvrB5UhE%+cI+vP)W=PqSgkdY^K09 z(?CK_A>Gj)w!nM80%vcrH3*a%>4b-t7Fpevdnz1<6Vk0WVJBJ z%F4$wDfnJ=R#q1Ad83cr`S1MI?)`t(D|DAWI}DU@w)y%f^oVkr^% zz$|y*_3I0~tl2yo*HOWATC#PT9$ZT#8eJb+UkB+sU&_YtiQ)P_*_XP7E1AsnApLlgQO*1!s)34`|Gn>BOsSr@=ZXMJm9k)3mFjguO3H(WHug zE^n+DZkZ|*>TsZiA%6cH+k>tNSVZ@g;YE*>{HQ^iE;8QQt#(R75N*SvbP1IWzzL4s zsk?ZkAS~>owtKgxedp)&;%1W^Dr5jceoZ#fz4wG%RXFq|k^xWHRw0A7iV{{_k(F(O zVm4-}a1JSs^3M2`E19}^UWX!bD4-l9Z;i7tV1l}vXjXdRT=&cT(MVuIzYGW%#h4_F zQ^{;4Sj<{p-Eter(+n;-gfeXpHmi4iOF!n19&fDz0&+cXrxCofjtTBif zn^SjSZxM%aQ-OXl=1-p@XVO4dcw)Sle%$i&_s0(|s5Ggc{X`~IjSjYbxO9X0MgUQ} zr%mHV5sqMMC@+Ey?aoO|3^l8GS9+OKD%*unC8KATc4K~F)$UwG#9TZx+2^ovRJdzZ zq4dbewy3m}?l_eBI{oF0M}62pR>9qU$kua3MQ9;pWrPFy{p0z3uuqKr%19Z~pfUNB z+F3`^ut57)L94aeqN7+I2S>FcEC$b{2NoTQ?5B^i-s``2 z0ZkK>up7@&K z*I+~*hlTpj&2Lwl?nlGd-gd@IUG+bGB2}J877MJs`@g({0jlOxQ&Vxl-4)7PcGSgZ zFCXPD994gJ_zU@aH4_&byAq*_K=9TcKFOV)nVE^Ooio-9J){d_ha3jUYd<17nA!

WS_VJ21%MI&3=V01a_pY5|I?>8_4LP3$bbQ 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 +=JGgXTM^Zo!q6nq5!9RxA*;z`Hzd`1})xs2Z5 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≀jyTs`v-UWTO9b+%4sQ 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�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

Ur2WwJGh+im3 z%Z$FLHgb!#|6|qbW%X5yMqAHk?|~qNY<==tIz-Zbc2wy<#u_1_YgH9>hU3wKI9P)1v`<}M7qfGkftNjuN9y=MGTW}21nen}#l^{|R) zl6&#TGh#1AgQadg0|Iw-kk$#ap?~)@^@zSW#n6@*J4uKG%X7BaN4u!e!R#Ftgk}E6eN)2gvp>b3sfy(r>D>KG zC(O@VlQk=ESuK2wcEBXF;8DD*KuKm@#EQI=4}U*r-V`Q8fwZm-^NS{$J+6X)CJ}L0 z8gmdm-H9p9zW!0whZ{pA!!QmG)?H?q`uKZvgp^m~d;YRJ6W+G9SKv5_l#YRm5g08; zGUp2P=Rl8V!B)7K16BHn)|*X?M0~=Y+1C`GTO!`WK?mdkB=+J7s@%9Jzy%d^2SYB5)YWjrS(m4XR;yv*G z8H9Ol^iRl5v-K9gdXMUJwp!6M2g^^5h|5^)0IhR@pC9H$ zg~`h;Ee>TLP9W~O)4rdVct{BFdvd_U_o7#cwLGVd9{5K>y44H`A|+AXhFgc=vr!|x zGC4+@3a-6cn~}6Ykj(|qIh~$^p2Mp^=apyHbB8;|b{O$+)vV0c^R>31Y?ck?=LN>~ z>^6N?+dOb32auj$sE6H6py_aU4KQ5#Ca>{rINy*`dII+vMhThZ&^O+9Ym55RA8Z-qzm~j`}kzx74o&w>AZ>&j5I7dNQ#w?9+$t+}3jEknR zv7nu=!An}p+$2S&e)=7-~7>H6|M1);$rHV6%Yt_qEG(bj zkjH#q?+VP3RDXZwi*}Ncs@?2D_t$fb*9$U#R!6C>imW21sRMTXjL_|@A$c%D+Pti< z*(}zXlczl{qagLI2JDJEvPDcP^Wm1#+TdH@SX!12V~og${hlr$5OvoAvGn)EZ@C^S zM`}?eE6*|0A!P$(CV}kheI3Pv(0P{b3Jc{GxQhmM->%ddu}WZ_35(~7KM5z zFPvhq{Nl1>5wPHH!5McoDcQtrV8OvJfQx_HJgU7kR%PHcx?S?JoqWpiPm9!0&;;P5 z){YTmjBg`O!^7IJOKh!NRrcF-kesOW-5TuWzJPB1H1i84NLot{9b zh?qj=BYJA*hdM)EKKIDawpQ8Qw@R-SYX}d{W7=+(KY#B|=a`AiT^nPr#6f1RhjbKn zv!1d@nf4q@C3|EaF8F+^O6=rHxk}NUZBmB5-U!aTIGHc4$fkaD0eJJK%;3cHddcs_ zyBj|cDex9jaXGQ@%tZ{RGhgGJi+d$mYvSgsr3MUDB!H4=dew>QnPC!WgxM==OYnSj zuSZ-Re`9j#y1>S22A}Z~Aq9yw5d*SUnVdzJ9AXk_hP5a>KWw@9@PtcpL)$;JmGZPd z@b){6)yHKzc4vh$wV0#Vav0Y$l6IpE#kSHuMJ2~$_c&NTeruCwRYc%R+l>yuL^OOc zwQ)^-4$Gt+6Dun?$bMPj#9uHBUehbRX&OGgDqUpKr|RZxuxA~~L$+l6%1)K5q(qjN zseb-}X3;^o7CFaLy1`i!)t)^yb}O~IwxmrA58ugabJ`Stp+%ipiEQp0^32Rg<-4!f zER4emf>~h>u){P%ddMLCl8yoc>zi*d1N}^%g0PU%fLWp3&>EeMk1uvwYqvW%Aoz_5 zXy39TcnKtAIclD-Ff0C)yJU3tYc1CojjQ#AnIIDBY1ohk$@(7W(Ng}+wPuR1=U>sB zb#`4NS#rLtD`K{7L4GfL=?Pvgy4BTHh-mS7&9IE!X#zAReK%$K&mZ$XVw9bPSHYHg z&gbLp0*Ihp*Bh49XqB()?&P{uQ~!QRe|+q9!f>lHDj)NrHeyBk#Nk+e#}_};D&@NC zeP?9skMcWI#Bsm#i!_?8Rmfl(oF~^%!uUm&TUi{@vTASsfL_i!c-Kr-LD|1)!VloW zFG|3Abn*fME@?D)f&mI`0v-qG;2BLi=m59g7<~uJ1T2RmM;;Uuf)#Y)NW^+L1#R8KlmW8(;WxSIM{{|a(8!lC{9CRW~IVU`}~ zazDHw%LI;o_`a4zgK#mS&fgFvm{*HwS=D6t!p(bkqcUQ@&t_DQL}1Ecy_#OKzW#o zAxtyO0xQ2CHuKYUVne=E2A%Kk528b2sUWWBvf5Nx9TsfA=s9ZZGo204`aR;#7R6)F zJu=V3frA+GudZ3nW-DD*5RkP+A!06O3~zste0cL!A_#%v1Lt#DM$`BZnvDd1URuYt zuAhQ8*s;$r(FhIH2@6LFLY10N{KC_)K8RoclRUf{-O!LCUH?sd!p!44ukc*}f8Hw` zp-WOq9>zJ_-KFyZD#CZDCmJbj`MT&!`B#>j6v&h2&E`DTf)^zhoQe#a*=n}SfxQ%g zn7~rEbOpNCxFdvhb76oZZC62!W&iQ+UMYw>=E>j~kel+0TY*79$m5XWJX5#`S7fzVCNXz=4cXi=s@V&Y&b<=}O}8L(8U zSMX3%=VY8|OA;h~zP7KatE=4xPhFDM#4p~PvF&cQNv!VuVV3VRYmCy7_FfCPl`6yt zRC22w!NMd#?=nSOLCxN_(89Mcp^ zNOuAhsN3jz^?WHMx|B7b?1PE{B8z z`?N}_RL)3mnwjRp`iD?d-Q#-LqR^T+BQZ$CKXKa42|TTM5{u{hxQE|Co;^SgUU#OY zraF1=;;xO&dYdWWhsaC#!~ekdu>QGI%TaQZq)qb0v#b3QH=TkYR0Rhj86 zCa!0Zr=wfP(&VeIX=JoAop#bYdSzqv_n}|#CqXkpy0r|z=-p6v=h5`c)VH@a=_Ok2 zGreU;yh>q7DOOuupwaH#q99qn$d4BKCHpPC zFDK^}#cCa1B+_U)96Zf*&eB>FNJ2(+CLU_f*I_Owp1Sll7`tZ&BYWU`*X%7dQRJ+h)y&d>{ zz3*n>Ny*J?mQoFJiAm;cNr|UKh0d^K7^&beJzO<%3e z^BypdeTzg`T-BVg&ctnnX?+F1Ml+ftNBm31bNSw>DS0K$hD$ra9-+LH)p|SO-ac}r zQ_tqZ)0XjbD`#HYJzq(Fo?$E{0hvSXn{sgl>P$&d@7sER9xFeXY|rhQtR#igIGzUM zcaq2fkGwg;+=~Q(d0m_*mXft>eiF4C@JPuYXv-uNH)NeT2n_jstau&tR{Iu0SV2fu z;0zX;HO229h?TWYtjUr%lJ#q{1p5^$gT2z9&#x+!l3bd5X2q9|KX5me%34~5rR%74 z^Z?qrFU#+QA2v-w`k3I(Um{lKBJDUatztaXCOHgA>biu+ z`HKXyIzOa!0h?b zF!@~nB%Gw*g^<6aO)D$~`G_W^Cy4+kBIL`z;#VGE{`UZ~1290*_tY*(&3#%j(9@12 zvTfu6a?-z-0^|;V`|q0vg)9LE)RQM&nis9z|MayIF+&(LFDVFs8k!&go_zh1_128X3Lnd4NtA_gf$fKupJpG1)`dDQ zK?^8sWiY>8U&@J$QAI&6NU)%BsKV)YxKNI1r5Zig@}&; zE-uz$MalyGSIQ?|)IrKm^{SV%^VoPNGmK~0WsZ`h_q!I3e)nto5^B6rWO8Xj*RBLo z7kRw95(GB*_oraf@O3A~G*;vf_g7u9r(jypvE~d1_t;p;M|1A4K375uVs!VADvDrP|% za$}nI-BjE_03(hwa|;!5)JB)>S{PIe)X3ZM zxOzVyXvtc{{uKf6+0E=HV?!Uh-y8kEM z4!|M_m>Z!QX-d$c8|H}TY3=>NF>|GcL0pIPOpvDfF&hh^AEx`tWbr4Uaff>l69bg&&tm*(9 zJ%B$L{ka^>ST+Fq=cPP_Mt+nDd@MfXfAa{t)v~`*ci|td=(eY>!hf+whtZtR@Qw=q z!4gg}L-qeAQ}$mgSpM4$Ydxv*<@){HfH2pZxvO*S)?be=WYbf zRKm^}{ty4>lP9AN^&rWOPxgap(suzBVbb=t=fz7dulxvQy!;AxKbdw^ZkQnU{TjYx z7NpkK8#Ebvu2rWAJYZyyV)pQ@>8pO0ddKuBSkJ)6tZ90Bcd(%YulLMJ_N8ftTTNG3 z_IlDg3tod08uFWusWarPX7v0Vl{<-#Vib>Y>S7fA0`_%kJ}!+8PsOKe3?ztT39Qwd zjMdaZ!82hMX>j@|x~o^8+q|#UG`c;>gP=bdIFVYskr~GT5Ps z+r=n)MHpjol+XR;BFW|{)8tUC8f)`wULA&pCX6-B$WgX6{0skVcKxX-0}f_Y%CZ)V zvNkTtM5h!fsnIW31d#^rgh5e#{gX?VzxdKFJSfVZ(TvDQ0*t9}R8l+>`?$rWCOFOIH54+gg=3OQLrq4nGj*1D8~ zkbph=xN4VQ_Z`<{eY;v;`{9cR$jEQCfo8SB$~9w*u9H6o9!~bRaP%3tLb-Y#JQzEp zR^_&Fo7vYfpE@65M0w<=_D-ulD-W;FG*q#qS7V9ktd18c23gHW^p8-;D|`Oh4lt;ET76Bz3*{rpmUXf~QG?Tu2y`OjFj^bD>-_8hA`fe@D@;fnbIU+px zV?38{?kZBHbv%Z?ZF^$wTRPIHwPreUjpUGm^brZ-It~~-FWI7>&TI1skb}wP*BB6$ z7ZfJMcKzl9zk`Eo!}&FGJG(X`P0}Z`*MR)c|JT=dl-nirX$c+il?Wn5{@Jo>6N@y2Cq7I>?v!*oZ_bhFx{9pgJr>{b+! z!EMH?!`8mY!vvR;Kt$>BPr8dvoI=tt-Vxu$Ios}f%8#+gqq>iUK_LJBhK+YxPa+3n z?_S*gp)YJ=^(i4Ku@|GOlV~LZ67T}TPSqu#_=&GfT_6Vm#O~c5>jL||O3yM|RKy_aCA9rv+2R~ zHo_*DeIPD5i6cqZ{d3axNkr@-b9f2Szenr~gNDb1qb0Ybgf8d7Z5?hRL;SZo72|}9 zyK%J38<_Nq>4H_8&yt$TcVi%yrWoO*3^?^-&-*`E(Xlq_Fk@r(Soo)gO2;*-qk}=W zs3a*P&cvq`JZVBUKD)NDO-+X%-$?>Fn5yliJ6tDb!SBB3enYnB5~^amOF?+F>nCNS zOE3>O?+RsBT2HnhX{!RIRvK`Ouj9m zO7|}>-M9bHeH=`OCH_Wdcu%Co*zn#4dIOJ%_>{6*uR@_Ja$C@LXK@aBvUgsKvSc{&&?ra)NDSPqK)ag=(`jUcLd5jdv4?dZRJ9vg7D%It~xaZwbC;n%H@E$xw zwZ&vrDI5p+mHxJ1CSw2a7l=i)Qd8`cn_=wH#fR7ARL+a()UV}* zJ@mMO{6Jof#r9o7_d?Pc+_(fbQVv%9W(+|jWAt=fOo=t))vFRdjtzODkmI0Lg}|_; zJ;K%WvGXyZjG=TDynfp&y0qSGox^h8yO{`i=47KR1%;LV$nD*4VR3Q#um(n@hg0#M zu4mDINbIJ8e^PByuO!1l4kZEV)LfQ*!pp zD-6Cjx_0%Vf=$NH)=y{CnP@YgcIuuBXDg2$Ptv|9?YU7PTO2T3xFz_hfn0yPGGKmXqCyZ_Uz6-ip2kH zDp$}Y_%~0qAAErPv~CT#$W^L6N>DnQf5Yk|djoDjp~R;m36fIc#GN5(+FN&Ha{?cS zr>O=-RAIAYm1>1zm};|fEux>Wzv$_EC%La3Xx>wUdQ6mTHw2llKo%z3LpC~_BchxT z2y++OM}_>}Ll^&$5@^RDA+fjlDvSOXb8i6^SKI9QVnG5yLIeVh21sxT5E_RBLV(~w zf(CbOTp9_IpdmnTcMI;81Z~`*ai^gnI5al9-*>)q&Uemt=g!=_X4bG)SgV0Fo4ucU zs_I|AswYZpL8fK(rFWaCVjfY%aBAcd7DUu_{!S*Z=0Nx9OEp|vH~jdsvi-brbBvwe z5K7#Ef&pI$4UPJgS1c#d7$o;*%-=45LTu@B+lCUm(zvB^B~(PbESs2>pG|eK_~XeX zSsPUaQ9J)VUdw4eS@iCwsxwQV{lg(_&T9yC|G@)`#GUCzh+p4u2X-znUI8W?^bau(xdK!swhM)&5;v>eq$Gzk8sV*T*f?3KZW+un$d5rxx0RLbtrt z$}u$n<)D)Bxn^0IC4EP09OEa+eF03*pd*6E)#K$nI>KP=kG~y%jr23jYm-PSp9&7| zAZjs7O=o<3P83}wSUPfc?}JF!v*RO(`n#%DgL=Gv<5>)01DZXrx069=|Vw1@-JxDS0?N1o^RQN$x*(XX47dfGUVbeOJ* z?4&^g)y6+cgi}nB$6*-7rC~z6dDf;f+`!(|#oCsmoA$v;*)!-)Pj>cfZ-5@ln*aW) zi?T|PRUI8hW@36i(f)&ySqd8B&CKjuH+Up$zUu5v7|LUI>lDnr^qHh?yPpecSnSAG z+uN2vGg?lsc3mnfK@^a6Z^L8jnZwenO!kWE)E|llwr^v$+h`^*pF;h}=svYwq}i46 z9u1jT|ABR73wio4TS!Qnxc)Z(`3=A>RM{aElTy5 zaQ5nP;JaBxf$0$ z(je!i{#~r~OPbrY`9p0*OxuSz1TFQ)KNNPy-g2#003qI`b<}pHj1OaU(I>0&c~2wj z0~famc$Be&O<5J3`>p$SC63p+r{sr&*WQ)CyTcdCM^n-Cz z43mrM?WCut>4i}u_!i3F(@!%QW=a%FGz$A&!9A%BKMcQ?Fw{;qw4aZE4JGGoV{pK| zgbL7~_P)%EF4!=_z^*PPy9$8b#^JrwS$HV=l@lu)$lXrB8wCPZPVYKBLK{H`gJzJj z`mLh}pm$x(b+1eF3kElnMR5qTM8o~a)Ps@wP;7s+7;jeQefY(uwI?} znLz~YR|w&~%OR;zdl_WPaLzv6EuB}i&pr47r)c7n7}tc5C}$&r{~l_uS)jG5*~OGa zkNAXUroWpRrY0jH&iGG( zFJnM346Y{*WCgYh&pOMj9XND<8TZ7;bwh_e4-qqGpYWsSV_wVdLP4tG_-N ztuV%$X*I6%M$Jqe4y5eo))#1b9&a(z(CofaK*s|1 z`=wVJ?q;7&k(E@(8#X6VMBl=Eq)Z1V)prc#>d&CIG8hSbl-7&1<{Q!)mf66|SR zeF)lXosPCSq5&&E0r?FK(~~ofi;M88x(U3_S9X!<#7AxgSvhFz)E!T_6opgPZvWh- zdTKIjb^U}fi;}T7o4mq9IHm*BUz0+6@z+4j+oiZ9({%+(iI8q{U!iAbM0VN2Zo*Et zKk(-(UZOfr?%#~t^CHAQn9P1ZZT$5NEjNU;f1T=b8<|lf#kuL?SE*za(!>*B>@k#R zl1Sy)tlXmqfB!WiB4I{l()H>+jLkEs=fjkY+|VTEWQhR&p#F=7IuU`!kJWAx%yixh zTDadg>A8*76Y{`tmRS~yeZ!{cxXzxWFuwz3TE;e4wc9MB0R2DhwElQ*BzLDM%Sm5E zvUAS7HXSXuC7&0QHthU4?V|Tcat|Lke(}$^BtLY>_&PG6(~Ws^yFby52!9HblFxpx z?6fqM7}|mI(|}(gK|GE6_FEuUXS=A8%UA=ax17rBQ)1%=Qx5~oXf%=caoiKDXpFoT z6G?NU2;%+Mv+so((o6U#fgToOTl^rx`7to#sVmk}*mR=h>t`Nbressx0sp1A(8Bq) z>&%A!mf}ffq}yW;b4UO&yVQ@7uPxhPzWZWPmXoETrZrYgPfl!uBk2rm6k@pSw==7P zJ|?CYr^i&BywVR-gZ=WI^HHG!Nd#`E7tMcOgiACQc4 za{b_d#o+x4!+FsS>(^N^>}V%v6Xw_R6w(|WM);#;+U}^9!I?5=?SXvIET=ORgy>Pc9>V|WoJT~* zO$^~ZS$PAZvm`mWsYRv!aIp`r_CN_*p7rZ^7*D8NH%->xpe4T#z?l8moSX-#MsI6O z*quSrxU42QDANPp3(v{AQBGbdUcRce*31098|;I4RkX*iv7Y!XU$ze_!W-q;3p8{9 z&8;>v=Y1r7$2T|Cgvdq;45=T4*9gd%9j!L_i8}M|UCvGC$F+6`mZ(E7qkD=VYHjaP z`cyzpJ9G3yNk9tsH_5UIm$ zSg_JaMF5r2oE6MH{`*-Vao+6(hl(43zGXP*wVkqpGnrvi$*L}f6JAqpamlFK(HYkG zeb|q0!2Psp9uDT7rGUP>+{mypU(OW9k_~U`rm^E}ycZDi2mfokclDiqO756t+;pDu zAzzw+xZy&K4rP3oyZ8Q#V)Ed-N^y4=VY8T;Y??KSLQ7Kcon(jQ->W1JMxNC98Z}m7 zfgfdDPk@KvPYijQ)zm=8ftBa|?XLcfrNOomU92`uKEq9zGa@`vJ8S!=2m#W7p%KoX zzFm21^4+8c$)_N!k!VczcDNp%c(wgrHue;$#KGE6_ZAR-BoEz>J2Ux27Mhu>SiCzF z{fR-u<_`*OImZ}BIpP|#dh!{ zDe{w%=G(Nv=o8r50+@TKwdD)+g~`;DIr{oOx1nACW!v?BFXLhbKD%nroj>20lC^Ce zY`>PY8eC35?ji2^t7T^;X%rq6D2u0B_I(Ey$!OvlhW1wfe&!ys{NZr?t;0M|>NVoT zx^Zh!DcGrIVYZAa<+(9M4&u*AaZ|y*We%WG{9vC^b1a1-J6)6O9wwrQ)~y&TQuzx@ ziOL8Kw4C1D@Z>}c-mK#fwwXVs9i{ARO&gcSQ&>5h$reY}>H7f&ppx5PVv~4z?cHFx zf^%?IE@m;O{Qf<&r6tSw;x6Ce{^PV!NiDS-$GSPNWtPsMl4{Wc3$VtV9^qPb_<-jO zUhHW`gjwmEV$ij>P|taBi>r0Ew9hW-cN89u)hy&Yy^rGd+a@1*wRrT~hlofg=u$Cz z!WBq1$tFVh@|842uISM#w*Bsx&uc9tVlm&p)9?bVt}tC7@y@M$tS@S@yk96>XZNnB zqQB5ZM-L~+^oGI+HV)jBNx2|m_BAkH2f9|_}Yh@L24wlObUt37V zbLY+1HZWw>M+n}E7hYY3YuRrwH!oObRxs*DU-vy{?s`51@3nc~_d6H$JG(@;%`a6q z<|pK%ChfwfeF0%p04`*z6}0yXvAWD`YNfqZU=th(P21!29CtVGvk{FimfgK=Q;7*^ zP2ciPGEgn66V|&9AK4`_d(d}m5Y=O?=@ze9hA7$b?7BC<7U{oyIQLb0Qo#t=!H%cS z-5I!H0^hOxc`fiV$DpG9vU!<=jDhUV)I-vL$OCXmiE7-H8i}?kO0dgFkDcCJrz-WZ zPnKgMDR7$Tw(el6T8w3oOEj6af-_7Z-g)83$^IwfqrId4Ms+$YSfyklpCmxlBc#s) zN@a#a7=NiZfW|n#{-NVa1pBoGiPXLo(@HK#$E1U@^-Rq_dHHcaVcNy=dhLma)v{!m z5?Azy%0N!?yeFxJG4Xd7=NOquYago!(+;uu2e|PLiD|LV-S@B}5zY-d4vF}u z616lof(R-kH})y!Wq=`vmsWnc71jH?bckLW-*Bx=7wwUwCHY!uU{Q1fp1-oA<%MTE zrk4e5rFkYdvQ9vx}=POt4MrT*`Bl3~0@~U|WlV z6hAcFAhL29>-4!22+uj=(fM@EjCJ7t+mH=0u>4oXbGxj08EEXxOS(wH-$B_(f9+rR$|_#4Lqzn_sGXl;K@cxp zQs1%R70%^WxIN(cq=y-6v1dl~L5tdX3KLMojlG@<15Y(eRmyIbMKoH5bgvb;`fXH@_t!&@jvST z>2tO9)cc>memxZymUVJIa#2?I)%Sn!SaV=yX?dBxqeF7^GJxXXq!8c1)zL8~O|%Kt z8=I)ArJSh!6`h0&)NgeAFcIZFaBG%WEdTAS=7x7R;-GXgGJ>>8E6lR7T^YT5EJ|lR(B>KkTGMd=x=o*^ciemtVbOaq^9H`#WtYrQwclRLjQ zjIZ`PbxT%w<1e=7q|y8_3==qAb;C`i%HzRM{Olx32Q?pu5W0Cv z5)kb@ibClGxkhm{9@ zBe3aYwGpSHkZ>vdLz!sYS^U%CK?!)4?N}e)VdO@pt&@jKsCV0S{h-x2n}~$leF^0= zrKWdVei0eY63W2f1mfx{((?dF_R-H~kmY^9ED2Q7tRDVn+Kj%X7NUtViA!wB_xK;R zGU6lX;x~M2CAn~`m7*QD3gy8)U4_^tz2c~?{zUwZy@fu5NRtQJ*z_2-#5g&0bO>0) zbFd+{c1T)FNw#7w6E;@6ay~B3eR_#rYW0u7U`Z%3fW!zJ7)o)6(l31N?1i4tMdM@g zPVcqEhwI_)V)ODZi+c5p#%3?bCig=z@BB!gUTowXqC98Es*Y~xgVus(TYDI47&xVo zU)w_dDRE+4c*ae=Cnwa4*fB zqb6y;NB&S-uMk2Fc)0C=|iOtjouis`E>!L9=?78#VHdOLR z;@;MDpd^EDgmB?bj{KKdKJoERF0aw`T+@*CK&r;~y|Y2q{th*RrQNJ}HSKQqr?@E; zDNj}uC~-KJztdri5n*cLQ?Lu%<6eFfLTVs4RNND6F7XF6IHte+a7uCT+l>1Q*(uYt zwn>C_lIu{(#MBEx-&!@A%WWuU;3B9#mz(Ba#R269shNodQ_&_dvI@t9vzGa>ztrMV1Fqv>tR+m=_|vE+-RxajV8W}iKFJzO0QjpoKS6( zp&M}iLb9FlSOS+0NBBFoG4%j8PECpMHzp6J_4_m9vUn|Y?Wje0l3t0EGioFWc7O_Z z5+X`?^mmWTr=eB;y#YAhY{pnezTeYrI_eTZKsdqUXsJK|N7jsv&l+L)&-T2EOH#`U z3`T22B8R_x=Ls-juU(Z)Dhd8LjdeVEcGTHra?QnzQ#~i@71cxe7!;lURj&f5Y4t9+ z%w)~JG}|FD{~#WPaf+@Yom#;`kZ9;2$CXR;{XR;}{g=2c`Zv<%CcORdv^+i&qZSL= zEaI36LVx3FyKy8C$Ctn(Y$b*XW;LcYamJ15FuiHIv3B?;!#u>1BAM{tGl;7KTMu(% zWQW2w)yVIS@6zGmt{(Nzr#rt}Gd){Qqhq$>Z;TqRty1y}0@=i8^Mo@fQbZSbhb;L_ z?jtTnX)75UR_YnJS*m`FGiw#)85^A+y{Wx2SIioeTE{=#PWm2?y5jXa6T4>AzO`{T zbceGd&49pl*9@o_$<&ncDF6OFVdV1FDUT>J@S=XLP3Wz` z7<)^3)CtA1?yKMz;rDI5)43b@5eNo6${E0*p77b*b9pQ`u$UeNYfM^pj$ZI?Wf7Y0 z)uqGYG*0Z4_9euzo%3ARf@?4x3tKO zI?1mcR3JeMu^m1ka89DwnPj!~W!jZvLy_-)`1a)HhlSNiu&hXiN)C2W#Sza@t#>M; z{tAcj=DfD2o$INmZ;GFO2q=nV*^4{*BK~dfx;renX;qT*FCUBt_~6?y1|eS&MVeGp z#yLtIw3QfIKwmfoW!)lsL}yLAS1xTyMu2H!pBU%QFf9*x`Izh3bKmAu$IrAQsfWS(9Ok*SUY zRJrwdF1PKWY{nzF)rGY1dlL(Xyl_6{GlRKNX}9n_pvFXV;4>HUL8B#P>zc>>585Rc zkxB#*iPDd~-|2rl0ob_GJwNlR7k)Nz;lB1?M1*PsPxb|{WX$a4;^HpZ0+dK80++~e zHu-_B&xJGa`>PJ&< z{tBBnjhr=Tll7e-=cS?dDu~K2R-l=aX?Yi$7geS@_EwMO6m$C*7+2orZ7b)P!o+6l z>Ky@F9xscr=A!thUF8m|#11vhzFbn>M6 zZ#B2n+@5K>-Cvrqo?C`|COwiHoC-j$Qo8d>hOuO9KjtC0-VAj<*jV+(7FNt=Li3uL zUe;DJg>bqqL#MJWa(_nEj&@kbv*j>EOi2arr5S!T?@O=Nne;I;QH@k_US3t1mZsM~ zHH07SNP3M^e^UoMyWxz1ox)@`u_hkUi70gVWO3(Mj6Qjs9C1~`Mm>~Jwwtq4w`fiE z`{c$HB^(J(_cB+A+qHPvwM7x+NjWm(czM;~;iyshk^a1x`3~Y`TjNTozWu)DP4z{I zQ1+w9bzAJ8C2-Gj&;8isEXX{S6WX+8c&~nwY)+5qo)k)oQ+Ej8Jq;agN}Jm9rkf3 z(;U(rmG1>+8e%+}ljad8@45z=1PcO2t#obKMnkbVbW5eYn(^9=#40;|ogvn5>hUDH z_DHkfjH5_n!w0nVPqui}oH6`mp)wY)+$f#auMe;B&U&i}{CTZW98M#-ehEEg*c?p2 z78N?E6xRK9t+>1`?sXe`tPvw;f-km=PCjrLq|RHQ2uuAJm_*8<17zV$OicGFjf7`W z2L39)9aftP(?j-byjp+aBLQZuG1d^mm^G10B(qm8A0mN`Ak4nZK4Jq?fq}rue0<6Y z_+34Z0*XS~TI3eeNSU&;leQ&dF}TjGZWlHR&RBeEKBUo3ji81XN1B5%Y`>`G4{i0o zk4*A)r`?6C^4DaNI#k*$%7K1kty^78)O1oyO5CjsnW>YFFnnOr+~EpLht`K6>kzd~ zU@ewe9Y|?NV>UwV~nYjbW0aR7=f+Llne`iE#_rFQB)liWs))L)B>6Y}6s>NrOl zb!m;%gys{Q5d2D7dTe_M(aE8P0I&=$m&u-$dwBBZ|>nA^Wa^+crh<^y*}u_4E91? zn5~XbUpN_80>z~-dnu~P!M^N&z41SPDp+>x?H?3Y)7R%TH8oXLRb_}FE9I~UF7=;3 z`0dKCzncRT9}xN(c^oHUz|fEP)jj#Y_#rD(4~QMN^#3Melsn_^Tk_9W{`adV_i)w! z`AYx8E0ydHC@bKn{`JTIFFe-aU)?pKcvoJfQNAONa`eSLiHy#>vFRoSM7zM>u0+6f z@tfGd&@ZLCYX5qvjyEcj>kLzcu>n_@70lA8#s*W`lu7*;VD6JI|J_i~1|;IC2wg|Z zdRf6t0%9jAcEW5%Vr+=U-?Xx{a6m=O`WA8&x^oV~{?r0^HYK;nsXYD zCQaMNQ@FM}v3GJSHT1?(-iu!r?>zZ;P}vrVD6^#2BM}NfzUkwP*L&_!qmQ@yc2I4~ zz|LF`mv_R~R<8e{riPK?I0~U^-&NDaQ`4e2;pkZH2gq{;S%5^%{^4{Z5SnR%O& zfHT=Si_`H1lmYS1PYq5CmTmP7UZG9-b&4N=&8?LPfiV4xR;JsaqhJ1RVru%OtxY_g zmTW}Gk%7-Z=LO-9X0V_xZ`IM@Qi6`QcH*~h-`<$KvW9&yw_m@BJ*?w$gB{G>hf&8E zr6%?DCpYa3wi6`2<~^JraJqy}9*#4C*qK;==RfZ2M6_H6%k+FRB6GU#Ppt&xx+t!f8GgYuMwq;pwQ2W38|4P88y9oP?)5Ywuc!H2-_oXX zbJP2qsx(vkUg~JR`cdcYCL2y<@i@m|YVDPN;T*s4`$v0a(@HKl-XCqeJai`R*)0U} znf}RG0`ik1hR!j#;3agZ_Fk>mlrrsH{7ka(9HanmQX*I94J)> zx5Ws0*Q(uKM_MB5F@tLdmctpgX(=sy>h~-bW@Z6ZM_=1ltF^Tz|J+Lh2mJCsgUDXQ znCuD7Z5nA!&DnEv<#DEa4F}!JHVueX%^xV$?kGV zsKI$2Ze9I`qN>)i0^4+ew^0U$(k22CZEC=MHRrb`qnb_Yb%BXRw)>2fcXGiP=*sZg z3g>_e{L-o>DmLU*PY|Jwj+h1}rd&c1GD#pWHGF%vdDc29_v|F50&$&WDC*Y#Ic|}} zR4zIyBxgOY=NBWxNe$Ey1jVQ=6bD5ENny@wXc42vMlKt8+m>&Tz`T!Qid=l}%@`yC zT0svASg&dW#(J?>1z0ywP3(`nfFM6!iCtZ!5!(3XgVnm~PdoP8Fu2_0dY{KnmG6D5 zDrH-77-*2EC3h*3(qONzbE|1<1AOa~syl=UJ%n8E>Y9tjS*vrKk51V}IV%yOle@dr z9_Q&wZ+6ps;)NcHB^|^cx6*YTq8(#_?~>3CKo9pOg`nhN7)mhRku#EDAc_ojvtmVy z0zRT1Z>V;hS9Y^LUs4*_7rBewb-%gTcT8PN>##k(CdbiUz9C9m{3v8r?-q0^KRB09 zpVft|p*><3CnLLt5JRVZRQySl?lX_h{No5K7X=&88V4hoKlV=37{pw&C%7G zGB?2I7EuP2>8m3N!*#42{)Y5RvFir>)gm{@C`qr{z+!6XGBf|nR^!leyY%!OLskh= z4HO&WjT867tHLs_;jVcxBtw{&=Z{^_kI^M6m*E$iR_VjRZJTh>(Xxi96mLk5zU+oI zBSd*JBHLS$guEJk!a*;>`hqwKt zGq>d(jWoV9v1NRtPd4m?IlWYmCR~XpOy7%7D=lb2#`7Zf6%x4wp6>iRVH}cuA}V0oW$VNfC?@l2+zX- z4Fa$lg`q>J-%Y)NSlYB6*XlIkuQeu!9-rx+*bX}FDHsLR9@b>RlFCGV-vi39uxApyoOh?r zh{d!G4#K|yZ@J|i>*P|mi!yGVJLweJi{ z$AJE{ld!a#i$4z%PX=^*hq%ynd8?ObtVpmlzg&csXIXI#5WW#M>iTi`cFA4`3kxV_?n|dt2{~0AF1f94()d=TYQ%L+{Xn(O>rtjpl zuiR2bN9*R3E%u){;?MtrBgXZ&6yJRl+bvTUOO~39-~|jSt~1sP_9L>x3Dr+IzkCU> zxE`mKk)Gnp8)!K)ZNpA!EcG#Z8)~YaQw7<~`Jr$7Az`&m0lZ3C*BeW z&-TFo{rz8Z#eU9pEbFs4@vHknl_32cD3|y;qpJwVoW4?IK!7AhSg1#iAX*}+6s>3`%Y`KN^a^G%_@t4 zD0bo~{a&Sn%ARp)W3t?BXE)!#R$;_e5j#GNNbvtWS=@B;Z)9=wFtfg@`ujbH^ysji z7~0hmh=oaXDWS!f~49?E)n6qH${7D21FO&-tDI!^ z_T9+1tQ7`F2;?DGdD~2Q$da{VOI?9uk1Cw>4gcqp|Lj$0jXdUg`Gag&DP2NN)xCTvMC(ALqo5<+0mBBwhnQE*VPkWX>0(I z*>ME^c&amP(qk4bPT`y?|9i^m(jl*1LS3C9Ba(KwCqNyg8~(GhFLDS-v?Ek};5=wsZHmv-z1s@U8O3pESb%mJhew>w*!PqjZ!lXH%|?!OyNw)`-Ig#EKc~Z>m6YP*6lEvBtR98A@8)A4 z-pm>|mZ&V^=U8RVTG#1M>xgK;asLwN%PXuLv!src$1Xk;iIk6 zDIVDxl~`xiLFsX1sGC5sbLZ>yeEfG$jusx(q-BBA?N5hQ?jVh>zGU#)oF$#JdmJS_ zqs*Nh07B3S$xq7g3W*O?n~!i!F-*+B-&8CJiYn(>*vUK0JH%*sHGD!G7Z{XFIgdRG z2e%zZ0B(@9{%H1m@NhIP)kSFB%Y=_MnOzBpf)AT!S#ZuXt_=KZFG1KJ;3oT>hi>_6 z@|%wywz2&IbwafAAGM-tjNXJ8T2n11@(wpClItzvdXoqi>>qtEi`yxG*9snNH?|k00%wQbgURz`s0SAq+oo!aU zy1L4djoOPB(s=mb!RP$^eAXrn^zoz@%iW*8rs`2XK&wYCV(l61_2PkE)Mfzfc6hOv zWjZ#FiE3p8jDO@Jr@CH(SC#lJEYuE&c%^=V->Uf5evA8CQy4T*Ov34bkax+yIqGYD zDks;ATFhvdxaI=H6;+@;0DrfagEN7XgH0HVigY;eKLNp!M8U}mTlj+2#-?Vt->djF zvh=mgQ*oPHB~P_wXl_4BR}Oe>Nm#mE@k@s&ge%|v>3K6h^B`4fgz{l_3LJ+blQAvV zIE~M=|A*q^cZ+oB`o|Q->v;+}n$*w%co-2ee)G>B6pdY(23GkvJDYi5M&MJ#fxpM) z+9#%voU49HQ77NFsheuo_sA!Ra$)c6!SKP~1-C$rL>LO}eEeqk>>jq>k5fhONG{py zk~0Z^b%q%71rPz%*YO!A&K;VpKp~){YEmm{reIRjoFyBIZWkT=@zJD4(&03#w`ILz z1bJfp??kYJ;eRB8QFZsmC0{`OngGHEb7FqH?OEUw4vsIKA!1K*8NB*1perWqSyO=m zs>U`8ZocIL9nn?!uSjsr9r8rJeG1aDKpL}!IX&}%R~ST-x5cv?_WPkDC!b?JZqCtU zpRu&9ebde8EB7gAD`UeM5E093A^yW_F8cGdm5=@{Ejc?jOx6pxLkfyY1GB2)4I5J8 z8zxts)O&lXx$RV3-3(IbrBA;PtP4qQ_R{+nzCR;%!}CH4w9k1sh`<491sP^Dd5uBL zo_f=am3;8(vzl<_MZk&t?I{jUVIMqu*63}IdBruw8I5-cCf+%lc}zz&aamOhI43ZoZ$8?%?LBzjWq*#b7SAV21vA%K0n>+Tfn$xK+iF0!gE-W zLTuZ7@uIAQij!*?idds1kB4F=j=QHLPE==$y-7x(66k(hDIYX4iQ!GI6IH~+qx>&G z@NlrKgAv@&-iIAy%JAjs#v*8`%r~7LPF^Mikch$inhBdzazhEX(Q*iPdh*8 z&;6#+U)9*jteW~UT?-fmPsADVhZ1>TMs9oLB3|x~Z-NGSbmc{lrBiAmg$ov2dVFng z{IPsxOND>OpoMFzz+H91N1TN`!VgVMQoc!tMD_sPrlS?o!ZQ`lbs}J-!B@{_UP4a5 zrd51?Vt@k|rY(*{9+va8f$Kv8JM6-VR_pzOHgkJwqX^DM!_Bh{Z~H07QWtkCn&p8# z;&|~t0Kb?>UERNd-}B}`;CDYE7Ewd}$sSregmt}@kT5l%0~FCLz~dvZK%2uO6pS(Z z3VmZBe!n?KDH#_#E55^*LI2MCo)v8cg^*nh?BBDZEvdTyy);y~5c~TL#1gNe*(=o4 zZh)J?({>k@!N(7F6D!ZF!K(uDN5{!`U-8X&?O7_d>D)`0^M?uuZj1dJ6w-92KE+5@ z?!^#7TtgRuvhEHsNFL~zjX+(DjKm!F(#iqo|C6w*DIJfEgg~?qggQdIb7vh zyAg4b>!Sb;(w70J#D=fbt0hS-{OJh#Wk0m1V3JeX{h>TU?QYU*5p+o52TNtBSwItr zLnY}jvF^PGy?o9nEI8(`(9;)2=Z4c_@-S|DSIckbah@<4^$^DhvV78iVG`rZa%vJH zgZ5jeIc_cCxGld8Ht%~QI5KeIUeAUQ&}EuZc_Vx78G|**2v0^>eDoyu< z7n+%k9WVqJJR9-1#%D!m$_vERdPMj(lBdtHXEpHeOPPTJg<^*RF{oz1)ag}An}b_p znzC$zm3V*pHsyx>kq}M+-FMtnj%YbNc=!?t_9?+-0J16svhtFCEE2QZZT7n>c&TS* z{f@h4nje0eAl|9516GPWekA5N*(qW7;4llr@RK(oXMSM=(NvegI)PXBEVAu{A|G&_Z#kZg};mTe~%$%k#WV~ z9f{#}H58)X#E+)X9Xg%+DSb|yU8>8cUJ-9vPs})ZVGt8>#spZ?gw3z6f%_B`%Eqp& z6nvgJ{kKN(b3Rk0PC)P8;cgpEEWqYgnrz=ashevMxPvx7JwuH67`>!f5v5M+qjvV1 zj_aHct#cfiQRS0rb$;b_l=ZzgiF|pjWQy$j=m7lsEJettab=kV{hzVl1Nrj4&z~^g z;1~ab_|2+HZW%)`kfsVpj2vQu?u=l%^)3+2Z<8}_8LN9y6`H1T}A9Jtn*vDpN~(?;?_V4}yjLetFbN=k5pXJgZr%4#Zy8jqB3 z=-$h_TP|O~?*=$3To<}Rukmj9wOZ?QLz1#gk-x4_T3?*i4g5sc;>?G-$^Er!J09SF zlN9cuerD3{ZSq9Qu)1SJ1V@}6|89r!m$MvLbYus3>8>OfMIk?Zl~x;WwK3^#K*nR7 zH<^lKELi{)x>1a+^S;}>Z`y94#P3#Eo0kIlen+>JOBzp!UK!8!1d3MSA4(1{b;Lqe{P$OfnfK*>e85lZf{*uiKvXC+#;U{iGuoSZ_y>FX!Whb!mesJ zyns=m)#?&eIK+6KhbHQWWnRO{XBK^>qnCE5On`ro==4m$tR(2@czuQXf(fVdMIh9> z@MlT@kH?!5OVHdT-3`wYwnc$sy( z0U_0*DtS>lkN=3DZ1Q9#_-SGblZLPI6y?^H@&8A>0Vs}w+^2`W`V%@J zL+G03pFf-#anK7?F!M^I&Z!!v|6>hwgfi*I74Kcq0io;XUG*=%+MJq^P1Rky>XG#g z4RW`wEs(CFulM19n~+a?OTptVNTo;G=c(@osQ@x|e9bk-f;~6YVJJc&f=4-e&@=8G z)d|=Uvq>_#M2E6J{BulZzlhO0Bv;p8=ulMhN~GDlv%CE8f*Y`_k&C+>>U?JX--hEk z)=uGelS2R?{3NUKgtO%J8)$wj+4X$wsuO#0W#H2*UvBwX@yn*Y3~T&j#{^ho$kt#o z(2T87F6x3ej0ymT9*8e+l6%&SXD3tn%RnRJffTD|Y zZuE{Cw{O4a70#OeVYfcJJky!bU|t1s;;&$xuYmJ*nLj>?`1jzquyINfZyRu4d|dj- z`f&MUuSny=^8oCxX$E;v$jc7*3Aye;B8_=p?JDT3>AG8ba}zBj6Hf7eG?20!d@ zI{V=<%m*xYbIJ?nKV`U^xOI2|2~Fd*KOLKiv<{lk{q(O1-5x(*`EP-gpGI5a+NgV< zjoRMFo_&V@Mp9xtflAG#9TyB1@zRz}wvorhfo8tDw?*fV!Q`wQMv1_|1mjo!*r)S1 zB$aMv`Vxz|BS}YwW%6U*O9RAcoPc==RZw&vqNzMyD>zdsYUDGNz}#gytt*2$eYD+4|1B4^`U&xhiuz9<9*phc-hffvVtk$g;>Fb)IcsHD;K zV2IyzId&W8&ZCbrz|O%?L{LfaFtM^2n(cvBhytZBI@Htc-%R=yWBR`s;tZAvsMws&3B+nr+O$rEj`n&(`8;P!b} z@MzzDA;9Et8(Ls=>Uxd0mT#iTj+d@iDX3RlAP_l&0=&`?)94O^u#%E}-5)g&q*J%~^3JU~av>5k&_No1D*-4>3m#4Z~a zf+re7EXvsbP3B|z$@7;Nk>0Q~Vz`aK{#ES7y~x7`0*ULZom$RmAE{P&Qc$ula=xdO{`A5`UQm=|mi+tuFg=36k+`z{GYkYtBS0hm?+xaym&_)tmxC6#Nc1-}r zuxu@Ay3?-zNbRv&e+EU{kh)iC{H}VF@mb%l(9y9)Kro3oN+A*?KPtYu=plZ^{wtXH zJ_!ljrWpu?Ufr_QyFq}-Pd?>`nE(iTWHd*TbUa~qVI-S0*cyQ;_7^tC!pX@wTCwRM z^y6Ant`xWS!CazLvNfOtT4s@z~JijLR-8o+C`iQ&_gONgI#31&~E* z$aDBi?e-q$>AQ`jD#1lgl3%se>jRpw=^&EFbFC`L(2w@X$b05ff;b==&J~Y}^tUfw zCqZh(WOmH(D(Q{tyM?#dZ4eW9IYrQP`l8M`Jufjp`r^$M$w9d8a_O44<8Y5>*~;d3 zEld%^Z-F})Ne{)DQIpCmolJ}?O2)%advY^qW_dHsN_oBT$ivA7Z)edKCmh|w#CE2M zlTOEt+rfzcRp4b39!T07!u%M=mMRr>eu`J7N+!JDlA+^D}RxZ&BbBh_#l-Dr^B*_ zy}azMJPg82zna4Ps{!gmSj2R>1JoGTPcch#r`Y^}`3n%JaqwwQ$IQ{dO^U!yA>t|~ zCWaR=&vCzOwnB>p>!e>&4&8+vf4$yiB9u8hGa=dZ7@NW6`V8En)Wdud1Qy@9+kKSF zCcKS8p3UMqw)iF9L}m|eE>NnOnix~Bc7OsPE#X_bC*RwFzTP5}PN_edig(8yeIcD> zEei|fSC&WG&N3X-FgR|IcHN2o$pVYu>zziy@%LTzX%bL_Zu2PwWGM-2ir}_2OD%5k z^=bINL?c+N1JQ&y`g8YMuk$2?%pKqqUv{f>A#c`sSI>;CJ~Vx(a;|xQa(l7p+0!rn z_2lwdNVwUM?qud9@+nY)EU|*UtMT(|W=EM8u9;|>R8#YsWaxVKS~MUdFLM^5F-~VK zB)#b3DK_5m*k6QUDv1Lv#u?>7|AWBtr5m~1ZK~sT5d$RzeS+I2^eeDBU3~8XM*vEf zH5;_vE{P=y&?}oMw!P+TJl?-Q1Ift6`70=WexUW$`{bmqax1}<*XH*+O6V((ExdJ1 z^>b*!@?Y#*pv6dKCGYd+&trP<;Ukl`cf;$WMt&xvJhldFH`&66(=^oc>>J^3>;mIx zXdL+q=&|Ak%m7&B{~it{wX|lqGquOzK1YOwWyk?0mx2loGYI}8W2SkT|pa`t*pt& z&(oKEW)OksIK+Dhv7etN*Y*QdvVP5ZPlOYDibnbreGfEZ8HluacTPmuQZRr8X{S8fcDzun7>j<}P&6$PhuR5xsdp;@imjXsL0k5Zopp8WvvPYBn>kdUJTFODmY zuEn*a8@tVflu>`p9vl;g7v=O4aIDJ@dgT9&y0;FCa&7yzDFKx<2uVRu5J5nRp<5cH z8>G8Ix)f9z32CIe8!1IVKzgX5rE3rvI^J_!u63`xpZj^9@7=cVoxhkFHgsmLYp(M= zj{Vqw7;qj7A1+uRBys;Lzmk^6jqXD8DX6upb7^5kUQoSY1kzm9$Jh|Vmy~LzH=-tZ z#b3Xge(6nfT;ikM-O?Us8@?)vUy$HfKVzucS(0?GHWrr_=1GW8Um!b@0#56-JZ46X z9U%B2))WEVe0o&W^Phcu$}Or{{*QW%aO69)H?uH5&p6#AOY(z^1rG>(Ofdydh$67R zV}Swg&mEuY(jrELrrE%RuPnjq47bpm5WyE5-=mMWnqCW1IhM+cAg_yCZe%p0dn#6``f>07*L#N3fH}^ z{}Y6L{o4nGYw|xgqW-^!N&fA-)-fozBlSt`^2etCP8oe-+Ov8vc61fW2|7M9Jk+K#U_n z*tYhZlwDs&weDu*{lC9m%ozUlFaCBQ{I68D|L=Wp|JK|4E$NbSOiXGd?cHD_Kr%+f zsxg}Os!uCO$t92MZkO;ycQY{!4Vfc2&c!rN^3p0NcU~vFp9C0|F__4irk7YN2thS2 z3k};Zfh?VIjNa7e297y|@)R4W;BAP=8iTK-TlY`B`Z`&P5b)EwXf02vX^pqks}?)} z$_HXyAecQErI&hdu@1#p-hTu3w2f}X23oOOUvr%k*U)DCpjd3qJTNmBo(g%h1Bito z4|-}V{3YP_RxQbP;XxDLrn3#fU(A*hON>LljB{|u`h5%8%(c-|#OxOJxG0HcC4q%r z78w0(jzArjbv_A#d~#Ni9i{7y9gk1ySSJI=XoZ5dHVuGH*We$%3G5jg=PYc`Wkf|M z(JU?^MzcYClg0s~@1Z>l>cNek5D%Q%j%VJXJNpWl2fScnJAd+S%QO4%PwHW$T_cP9 z;2Hp09*oRAG10UQnGabiCQcq957A{>UIB>19U%evkB)TUwCJK^=YivR=f%XtNJ>h+ z78S3o{@}b%Ad2`4Nh%$*)D#t=affzhim3+Q>;YJuwmwZ4_H=)*T{zufYxY8hl<4+o z-y{R5RccKa?e)I6=cfN$tGgh-ziw;l@nvM~W<)NG?<1PgzBL~mq(`s0-Ff9VmNa)h z&Mhw1n+@Kp>&$2vn0Of1H%1R28lzP&FXWhTtZROpnx_;Hm_3=+O-}3XYh)Kc<(=B| zSjRK|@>Opms;%(ZS$$n|&U6sCbnjW_7UAsA?c#pf=?u3Y@xr#Ar~Abeo2QKj-WkI{ zxg#V^iqz*m)5KC=nh^fgY=|esak{@r1g2vLc}Rv@#XH)6|DvQW_d4t29%` zgBjR;U(I=B^k&uOP`MZBT0QkZcIalvaMHDSpDsG+t8ak;?x5a(y-OYl4JbzE#I}b`kDJcmV4b}$x%7$)oRb*LZCWt@@tToT+>v-n%#w6 zqie>oPH>o1JG>_qUe~g8Pz<eYW#4cnHy#BbOZ2-%qsDGZZelyL8HfY_Bb2rmXfJp1mt{ z%WVcD!j(NmBqSzCE$#E1Y_@OhHY1~NgDT7T@Afi7=5x0~0b!2hKs59e&&Ra=qyA^TvI{6fmWb-n`{>#4vt-qOEcEiR{`i zueJl5QYO5!`AdZT!Rvy=hO8Teif7OFZgqI+gEb2gT3*WYwM#(OJ6QhI?f6UH;Qj0% zV?6LHuYO!?m#a$*8%=X3?CxmMd)AB0jPW0C5HNUqR2KRy2va~OkB$N?a?ms-=#8{wZcb_UBo?X1cUJUvfkjXIsTtI}n0 zGx;vWz+6CL!1VW`+KMoRB^gq5v^aj<)H^})M6XNUQs9N>mj_Hw-T{=EafFVk(l8Y4 zAu<71`X#};Y@x}!EF>5&5)9XC1mq+!R9uMq@iyMmO=-#uD89PU0cCxF#OfZxzzRi? zA`Sf_IN!^FvS@hVLq*khvueCa4lFrtfKm&dI0A8qg#_j(iOePBPVwYa8%qh*KX*`% z^m|-D-mJW{m!FjyEJx>#y*z%bjyz7(V~bSQ3+>J86GsQ04H6TN40qW|NET?9?5=8r}7;0EYB%_SWWHq&4CM z45Bkq$!{=U94}Ir*n-Q4h3^2Wsplgl@8culx^Mf<8cP#hU%$S^7dY46YFu`S=Ucyi z$P0YSoOBtmrVJlb|+b)YJJ|eS?icE2>o~-yy8*OpxeS11L8K*E>~&?9y2)V_6( z{@$IDxQ^#l#&8rXujc9fJq3q!JS$$bCco$WMdU2&t$4S5>lb_ALY!#}qX#~YrTMja z8ZfQlU|zFSu2#g}aSa=>TYP;UzQ}yRnV$@l?Q3kE@2U{$#T!rZNpw2n*#b8u>vjg} z4R_X5k`dUZz4xA;oc6z}F5jc_%GAoWZZALtRX8W}Ici8;-m#BEv2}H`a^m^I!cA9z zuk7RrY#!oUEDr=|f%Is#zQtSnCEgq0f5mVESHS$}SS?1SWq92A5ND@lGv$DW4hkt3 z;TS<;R8BzDKp?0^Qk>-!^nK2{xzdO4?wG;bxRUmDMjN9wZAu@HNkWk5k7VfN4>B~Q z^vdCZGn5GC!K+8K!GC+#HGB2QPUdW?!{wbo_(7x?<`3uW^T(bQ+$#JUsYbXrT0MaG zoaW2;O;ni4SgLitwbL?ZnY+)7LO0tF@$Aa5-J%3+??ozW9}r{uQHl|zin%CaBq6=C zL`D}M_J=4`_-%(d(YWmk#Wxkdsw4&@j*%@-;42*c_zuVBZ7#@}2Cj z`OXcS(CXfVSkn!xuqmK8_|jj)v5J#176-)SU&anUd`GeGD%NU%dkqhsP_M%XpKB_m|Ce`ZztfW=fe)uaZ2R3#fYS&X-F?E-zx;ksf2= zqIaseCL;nF(RjYi>-6kphO19>;cf-b0rUg*W`SOeor_k z1I5)&EAA+6pjKYWKN_P1cBR`-3e}2n!%wYZLrv(*MNsy0)7ZyV9?SWO`RiA9 zyz0XYg(WGK=RH91@o1B%XB zU9&0RJQTgKe4bL~b8=;MTAri;Ig?h}1*I~@hjxh;!O9qMe*i(5?hT=`nvs$8 z>=NjE|C2>F4E>)ivZf=V?Wvm`j1wH(VmS-n5FHDf(90ts51-qvHsJ&bUHgwLvQCMY z|Am20smA}#A&Yv5ea+n-%#r{zpl-V%n94aAr5rK_EpBR+t5Dqr#K)2O)vf#*s*c(D z-mgHbk9}k%Qa*Wc#&2o&wO&L660p4SHP7K%waGPZ@(%1fSUt*?T0 zrt#V-`Uo{UaMH!HQnNi_x!&9Af?Z$sK@Lt zfx6xpHAvPRGkJS!@U}YE=*`#|9+h@q>e`D!$>+$O6m$+Hba_%#hZM>3q_V0 z$W^ALDj9|;ZE&|?25f!QS4QygLm3Vby3ZUa>LjdLrJALtQTS~Ns}j*#(w~b7imX%H zu4bQ$kzzDbkD>g72sQ^jWa&*gP)W`z0}KH#A1H3t@%Qp3Tm&2DuT?bz6KveHbwVd{ zyfGvm8>nCjhtGbPU|FATB*6^#&Z#q&F6Ez21Rbx}3-|YYGn`mQVR0OxwSx0pPv2v0 zWh?cpEFxgS$c5)+&^V*u#`>XDb8Cfn=WsgLPYeqz`hnxNBYD*kbq^=o}qPA`f@YSs;c!$3mYW*{?=p&S%v*>yy)vsI^b z-nX~-H`M3tpVTM*|Csu8kiK}R;bd!@*pdholc+G>-M%~VheyoFw3R`2rj{MKOO;bI z7n|=UxgSo}%OB#^sCBe#fZg~!o3TcW`A&@o;sl#ns+U=D=6(L?BTQPyYnWoSzj$Cf z#jF2g4{W|yxFKpS=BF~wi!Bsa#0e8?!4p$5V0P6%Dky9ni*w_k;O7c6E z7a2RkQ%if073zE+5<$~`GBWFwocYH~YFGz$5640y4ag6|wp0{)KcR0=BOaCYR)k zpP$C1DUm~N8Ag9kmUOGnSPJKn>jdE|1tE-KA<}V9);7rs?IaH*Dc@gjMA*>S$N! zKtw?e*7*pFj4KUSidH&IuL!-d2$kp)&ts^Nz`fu;94q2nn8g?-hMnP`XiXJ{>m zwcPG9L7Kn*EvIV1SaK_NG#;F>yBk-l`+!&d+Y2TLCi#qczSk>XTGKe%_2bvF>m{=wk*yyT68gLDPxX zYISIZltxk~5{O?(IXsd(+UPU#!l6lUhb66pCf=vwXx`-8>v3Nio%K_`pRrL> zB!uFfDRvJ~&*I*l9%CE|A+wf1g}u(;4U&doSSQ+vc}6eEN_~? zmMydy;6%?YNCesS$n_v6W3OBn&~}wEZFWCPU_L&0`(C@~pfbS%w4*R2KIgjwUGFv{ z;_8^LRgIfgWL^pLngfLrMUqb+Gk+#~v=?7q5Z=2sc!h+|MBk5cp}XC2<#kSRuYXE53C6j*r>-3zTJSla9JnX?C2pj08?KQlIx8T{;OUN=I9tub z`z;`OV}9-^eH^+ zD0G5%`FB0A6WCmJ+o~t|@2k2}H@Vu8S#}5(qI1r&4mP>%9n6JcT!&b4`aMOk=z*TJQwH4m5BEY%jroZmPru*;Il?fF|U> z4N{urU>wzJp-XI>T}xyxO4X*7f53b1`|2e&NPfIig%&=Vb&ualXMVt_SibBM_Joke z%N(PrIV%ckfAh2VR#oz?78)@fpUE>Xbw*)yjs$Fqd!48+q5hpJbxD-tFRD~X#0=#` zIhU~I4QzP6f1sA)43 zw(>*1C4$B!|Cz_??RYjOVFKyE^4gSEXYu-D(hP1xkFu#HYcb!<3cFK+J(DK-Hn^yh zi?H2oE+vz<_3fYF5*SbCZWZdm1dsNXwjjASNBqm|Cdit%%G{hmRK#<@IWVaSHA@4nA;XOk%uGh|i+;{d<8YKQej1sY&=DG=!9$uG08w z-C1?w=dWLngzP~r@vif_j(Tteio6%?@n2l0Q$nM@`f2}6QAQ(Gz!JHfX&H;NctZ8; zlo0+~51$H@bG}!~U^nh>efYRW)KxPS5dC};8hgR(&dcA(1Yiu|XHG3UdG#W9mkzIA zDu+M!GY)(5L6aHMbc>V*oH~WqI;#z~W`o1BRtVgxDV~Fum+QVVY&%0F9Kq@TXj=gs zIHYD;mDZZ1cfewAf<8_nsPh08zFsKa_z~SH$e$XTef*EuWHt=nOLmhP<1@a3@wP4~ zUOU;$6$BI#D3l34AQNKxdS(@%i?d?+Iz$At4um-5D5#~+2PDpSwbIFZ?nQ4Eoi08R zkCYuD!7!nwzJ#g>8mN(K9j+r36o0UrIzCL<@!q(JbtWp$N}{*EtQrAxhoHJF%2e+ouoBXC~FK z&d89bOcEK0y%WLm;`aCYXdfTUBsSMnJd#KF z!@fdSA3kX-vA^q_>|{R2wX$yYJ9N@ACZrad3rB5z(!J0@;i~6dd)y(~9=*|EcH<~0 zJn3vLsUC=H*YEX$v!zP2d6mpc+>u|4LfDgzuY|@h1r^nuE6(GkS_mdEYo2bI&2O4q zPa~OKEEWi+76D(95RXlm1TdOP(6N;4*!q~LR^K2ZTElt<4rS5h>yztke9DsrY@Y+x zJ-BN7UV9`!r$hh@LUXKVf3O!zG^cZCwcjOC$XYI&GIlnCV}8-mr4R4NX`%%h*+@&O zq^@_9Ou{2YUOrwXI04~fUa%Q@+4}-N>{UN!F-vNh>=ImND4BLf6G+rewxZ{f{jDKo zXu5_NJDh6toyh1SMa1Uc3rGpJU-ZrCIpGA}_fR(agbahxonAwa->E$&rMMT#-5t-i z;%OG*WFpg{M|oTE!P$@AQG4jroM2Uoc$6o&jFZasF!&w!^?M~M8 zWMK;+6y`eJ;~Y^}IZyj>1FxjxnxbYD4sfMxM``U8%kE*AHJc9Z##>Dz5PS$-CW~5} z(0zcg#2DnQIgG$_M>RqbE)C#*2r{n(6}rKOKT7Q>bEK@7Q~y=}50M%s`VG`m9IVtN zpCua4?IjW{*p)+!0)KUl{u>msy| zql5g}Fl(>cGS)=N^^?Fg#Ds`=y4G`fb) zC6^Nt=tzek;dOzTygpYeVt;o^Jv+fvks4exYX*(mniMmyhrPMGOkQGuE;y9nCRA#&(q1&1@gDh8)+OH<%KUyxoM&uFML`hf!^o7%zGfaCpGcTq&3ZFTumE!87r8t135 zNAZySWXjpMKZ=O+^Yb(m9(Zx+FrOGBX$9!_w#IVr??Ho&7hLv^uDqRe;DR@Bgwm?K z>!W$6BRuCzh7#2cz0`bkzU#jfAub`it^Xd7 zU{ebPrbL(*IGbdxEus471U6S_BnVVXi8t4XrI5o~6Zo#7(pJ=Dc6FWIY`u#eBD9U| zUyB>IBm|NolCv(2XNL5m9D0Q5qn~WZVY`qb!9{do04`Fa{S{o)2?XGxKlQCo=apzj zW?oU`+!}X^^ZVZ#!q#!b{|YW@E&c~O&oRyl1Bw8;pXB28cy3FJ;M@0C3oMR0@opBz zlJYudX&<+$y4i_pO{qSnHoS(GR64C{(JYVhTMXR32KF_WAj5kYT;3zlA)6qR!`+~cPonRc=hVb-xkk!msk^wp2V%fxz;>E zjI4?{M>{L!}ShOiZ}L-p4V9sfFR>>$n5L($Q}+t{%aUf@$=uoh(P(T{W13fJ3%=6 z)mnaeHQU9y7a0Aqz(E4Rpz*!1d07#;N5FdoOwyx5XklRFgZ0_k?l*`gdka^>D8cXu zQR|8R3?A#my-sf<3>lK&Yd4+EJHWze{L=<3L;T^D@@obSlgcNZ-cx};t(&d?8|!9; zV4N(=H+%_A7K8%1tBx0K%$j?%p2!}z?eC?YW+v`7`0?(d>CtWn6As0)x2-@Vt9wCUR@R$9C z!IHBZOcHVk-2rw`)fE)Ni8iG*o;`Fw{w4j?z-+DDW>CD-4zC4LUSPjyntaDp5(-b} zDI3myPjwZX5`Vr~JpbW`15=;UzZb-T|Ir_Bp|GEy3^)SSDI4iqK(sG-37@W!r7{jA zYifYp>z@A~M!5f9b{A`0AmI3<1lp@#gCdHDU1zyH=^vp zkGoL6NAjza<-@xOI%tDeQeEnLirAR)H@X>SlHs5)VPL2xBAz?(w{x(a^$)}9UdRj1flIriBO9ju+woKoBdg$a7CN zuf02f!5YhpTNJ&LRjFD&e7FX4Z}nt3=yGp$kY9-FT6#hLU8SSNlN@}!xz{F`HC`Ti ztZROoIdWvEIgIwK-FoL_wpDOpqQ)8Cx$(}zv2P-YW}xU4aim3&^sNBTNUF3X=ysd=x@%2kq5>H*qHl)711tdn$iACiJ=qBf_v(!{D8w!rE70X)~ zY8RyG=EIs3y3%ay_>7AS26ysde#Uox$d7o(>+yJzq7TqHNU30 zJJa{!gD3a%mC|Ff4Vor?{$o9Ggr-lB9NfGj)%6+n32H$0vG%+}tJdckFaF~h{1#9%Qk5tr+f}%a_ z*emM?&Mt3nP@ME+g2iTwa(-*|s|Smylic6>G@EOoN*Ca|TX8-9XfR#F7kHiLqT-WX zF`I|Gy1FtmGev1=HMOQ89`_GYqno|zw8EBS)t6r3tPd+AWh1Vba-B?3k#L(>7*=I$ z4)dx$gW_%eMg?Y7_!Q?OVIWA3SU25@{_HXM0Iuq8Djd!G@I%p}ic0PKv#kUSH_uko zGj^m%X}kszz4FlK>=x(nvW)=qLC-iX=w9!AUEy;W<#s08W@TouW9Fb+=mhcg zonyscLEbw{$ze2*F-3f6gb2j}w|dCdoj1-U0!ehPU#DqLhOSt}#sPR1Imcjc(KOx| z0P74PYgkPkc)j~O=jK-7^Pkeq!8Vvq9FmE?!t-`_A+XP-%hk2*iHv0j?!!uJzzj)V zbPBGcJ4@{Lj)3siovxivJBT8_&oc!y{a`-*_ekWyEgpMv<;@N0=^4g8ooPjzt~?!fadff3}@Rxt(ys{*nGNq4wfg1moStXA!iih_0A2yxHJd9pFuyS(;TgQ z>oflR20EB7_R7e3`AKsVaVIVQOb+^wWs`+}%biJl4d>ZRrj$tuq&dVb=VRWG>B2O( zhcQTb95HPI?h+5e{dCP^q;+%MBO`39Y|my$l*LftMBhukMcoyMSiMawc$JcQGi75; zyKAvn!N8CE(F1heqJulxVHS5wbfI-!e1RYdW&u)VwY#fLW5KI?!rBLx00Vli^{3HR z7hc7M=X1E1Ehw3};~55B7iNq)Yfsvspd@U85$DY2;QzK)KK z=^B!ki_vA}V{!yN35g$eZb*$6#X29k)2B$Q`0Z6Z(&@ZBkc9H;Ml+x0h=9X;yjvf? zTK=1KzRDNt*nAijeEHP7-V;Ysk2jQou>PR=i}ZQ7(pqvLys7>NY{ws!k= z3i4fRBpnIGLYtW;G*n_K34>cP+&)Ha8Ehmie@HFI?d~Tg`3P1x^a|iPVB`>_rsf7K5y9YBha*&JS-=zhXR#A@t#Xcja7pl-O*@ zCe=g^%^gNUm4=sbiJAndQvxCZ+l4q=Z}(h^ zn`L*M?owBPE+iylu*D_jBs`1{*h4JYp+qv5%o+?ezW3ooo?YB3T%U{MTZNz(8EjR5 zE5G|#&w5!w#{>~@wh*c!fvAdUjc3EuW@)V4ctwem!E7hXe)u)iefITxihu`>*4#>% ztv)Ov>t;%7%`#ioo0%_mDFYOdUd?KKJgum3P^6=^jK0d;$pxl)Hu z5N`8%z4+jeeAmH@7lWSXzF*JLk`l54FK{tw^kYk<%rj|tXyRxQ<8ilkU$4AoZI=D( zDX$R}{md%G>-^l#2V|6&Mwfcoke@72dtE%+IMG6!MIG+|;Lw4oVQeQKZQnR{f*9x7 z542J(i+t)q!}&WFSH9hflr6U{V#$@yyLifHf!PXiG!P-yyw#>!M%-4uk=;B-~nLVHoM}q`sk@ymo;|m8nL;@zOed#9Bd@5c3iN3Y<0C@J>h&imf1xG&x72SWGOKx4%E}*(PZDw4 zr3;!u+e{;MZlEq>ZqQa=8W$)zbCQVZBSVBzvEJXQszrR&HD`UF zV*=6Mf@voI&nC@$uPx(v50`!+pkq~{B%dCc=#?NK1bK&WF1#6A`L_%rv`#s+wSqd~ zI<7*wJu16pe8{}P2=%i387!!?l+I!9dY0IlJNhVRZJdtrCx>*$Zy_(W>SuvAy44^!9lrB|CiDW(;iz9X=#Gp+8y<-!BGqswbG}jjA(_C zG5KC6PsVHDzTUFncv`^0DSz!}zX4~MKf1rAMly=PBqk>If_I#5RDkJ=CKkho0-VUC zx*7ah8i?q$rnB*zYJk!}6$cxU!>tdz^GI!bg?lXz*a1Am2{|ztwGfq zr0;$KenXzg8HP_ZnT}Tly62IMxrCl#1Jm&kRwibl}?#Rnv` zLEE?OxbRyCXRLXck=6scwPo`Rn6#=vy!Q7w4k%IH3YV{bfjxWmm*zOi!IIk`6%nf~ z&07CqpNNDX`rRwWud_B^SRY#`y^*;<ye(>FAq!txL6D|) zoPtU_k*k_ovc`1^vT7~1hJ_o+QQ@OhL!|m_!^fydv*z4G6f{zscApPASOXW!^~LTw zNN0r~(^#*$Ku5RI)o&oHQ309x1oGn=25gRS$77}^GkF+gsAk0a8qO=;6lVLPcw$^` ztlcY>*%*>y`Bs*S2l_AJtL5Tev=R9)ElQ@`4J^MqxkCTes%bLyp2^K!@k7sa65|2B z?S0~E+-S04_s~eI&`spPbo_90RSMDtpWQ2vHsgq~-o}P0in(e$uTHXFXzkYSOc#0awHB%;I%?(i%Sb9^Vl#kTF*dq8?To+7Q(AU%Y@hISvl36kGj^zcDS*Tdf62Y zbFP<)9SQ7A@l4w4f&@8LM6nQanphNN?ltB#o5SCc$7udGf#r1g)rI*;5jwW=P-7be z#0jL>7{q7@vR9NF_oa9Z=E#SDIT^6%-LzSqk;0-rt8d=%zPaT}^LGEi*{3}q#kta_ zURJ2%5-^=qbROx)Rwkd@GoD~U!F0KXuJmhd$(&5PJ#u@P5KTnKay4kjtV5-qSV=Ze16$ncRY@cfkESf?1uWTuQ&LD$Z*Ha?E<4hb)Odp zvy7qC)EL{;wO>~3Ui)TtXNVXJmb@yHN@}bn^C{WH+7MTDO$g% zHshTP-r=G7d`q}D9+`9>WO_I$bojdXL9}{}r$n3{24%SU_HcBDye^DY+ry5mDGnVR zR|+ZQ!0r_fj0J}6(Gt{n-)%QTQlPtT3Hd#Bxi-VmpYZtl#r%7IwA_X~A4N<*tmm`g zzIhE;FV{oV%y`l$B6XDM&n7qqHrX*$nL=bojR_aRTJiw3K%tC&$U6cz!x%~a;^y#r zVulCv#ky}`Jg4iZ1{)zt0OBIQ`UuAJ%&Bo2#MCYQr@BqpmH&xuGt5Hkb}4qNxb%MZ zde4(X-fWGU{b*?ZCK9~tCtL^)W!PDKzz4W%4)^%fg4D<|#0!f!?h4+Gjw#}*0n|tD z&hsXUxbVhUnBei$8-jk6CX9*d@$0O{-8@*SKZB zu{@t3iT@hDJYnK0KvoNPG)z@Jro=CQin=B8>|tEuan<0#1hVFN{$@uh>#44{)M>&P z?pV>pZ91{Kr^+oocwj9sY=^XcB0Vz9%~pjN7{k2SET9pZ`-^;&U|`@7*yYFLqjPvH z&TGHD2w9n|?8=>=6Pk9A99Ga`zQYo z^GXf?G%NI25Y|~b2s&A>7nM+Q5=N2}T8A*J-cEo0%Z>_F72Ew3ezazA-=M@`n}FHd zynn}St|73?3XFPAQwzKTOw1ZmPbcEH$%IMYN>AzXSe2v98H-(<}D~Yeb4tU`$`zw zOXBPGu}S}A!yuVUjy0S5)_)t`%wHeJp-_)ly%9i4oyhP_9eR@zLVzw})0|prn)= zu@~SL%SJ&DESu|#g&J?$Stu)4FgjD-T+3mXB^^rJ7lOPcr@oqe#5c?r7E0>>n*ZOS zn+^5Fr6qbT`_CG_!rsVuAucZ;1zwP)l^77HzY_fT@?byKwmNeKf{DZIhbP;aj_6WJ zb}n7n0dXGtY(|?ut_7XUj}K0c9ERF1&%^b+`fF*Y>Rn=yt8jYRgnN2kd=k|*Q#Niv z$mKG(8p7&5d}!`G-M-mEMtPSJ9R+o3adtZ3D4uca(g@~3zFbUdF@is)0!Y`SQ(w^^ zr`+B8qTf$5d7reXIuZPdT>ihaYyJcOd6Qy%BUzQ$Z)MUvBo=?=-YdLXWMqL{YAtD~ z;_9ZY3$5Wt*!A?np>8#o5mYH(InSj7f=9+%A6{A4d8rm|33|e3IYz?#)UnE0^)tP8 zSKyzG7oTc+Yq~0cQ9qm048yw+rVMsEh}Sa#)@B+*HL;-4iRxV|F#NoV2lK_kQQOCk zylycyhWSB_^_ll8Z~T64Lg$nOt$DjPH|=6C#K)^iKlK#ID~9GfEV=6wfkD6Qp{9}ggGMBB#g>9NQ zP3#>DHm-xwzlh-?SAz$_XuQtbL$0u}?y|xzyr}JyRwna{4S0P(@of-$g_NxG*m^fS zR%zVtrx0Af3K0ssc-|nh0(}~;ZG%CCYLkz@MQ{h$5u7?C(8bsKzyMwHEnwim3&d6s z&VhFN6vgy+s7e1B3_X4sgaXT6}pw_u!=B&17oA*_X@LV;&vZrvfsoKP0nguK6a z?B9zjL@H^))88vRdvzqV_v)@orsU~sv{g$B*W35JeHjA|*se$+u*pzhhrhFFhKIeWT=n$3+)5qzT$<=EI^bMrFl_W24)P)5 z?ab)=sPPHgDSSq&Ulie~%Fd=OzG!3e8@5O@ttSzxCUycR^$4Z4o>8PGVch%u&ka)h zYAtpBkWT61FmsKpFam`D$D(3jrRAN{F-p=LiL2R*0A*3hlclDe6o>>47$HFK4K1_z6-pW5$n}Hr0kHkXraW{XRxp_b*+U{b_3_S0-JAdFp!}xynY1UWfYApp#AV=MQ zDmDLx3k?{ER%GdomQ-za+%IrkJC5f;JjSKh?wi#tn%TpJIF9?Eubo!ug|D>mp?j+> z5XEVsU$dt?cB@D_G#C^sB0!AItRWj~W^!ZWJR0Wb_O}{`!t(hJ0kD}cy5sF8O6mP){ z@LC!&hclnY=sF{t@mExdU0rRLCs;30{PXx{A_^}!(9z6OlzeIk_s}{~Ug%>v>Vq64 z-?Uigpz=E9EY4PdEm?Q0C=BHt80jxcmFRCHyB{v)QMDNc zd4f_tPK}gq&N}{Q(#?02Na?0O?7t!1EaLhp-Mj>(oAfL!0#Hf?m<|JyLz^!raTU>k0=_Qbb=MG6T`P zf$VMF6u)>C;&+MmD5)L9gHs;bYA8SzVL$MoFg|DP(?o#A&R+U+ zq$#|P`h$fj?cZuQKV$cTE1}!F^DgW}NGk#dvxV#Uw7-I1e!WZYY+8_DSzXoi~(r(=$j_m-=hh2n=v?$RnxN6S7&&d!Fw<5j$-Vhd^J z&5_BuPF-w&;bpnqN~3V=2}6(0S1)_;NHjM7oxXF1+-H5_-a4);fW26>CmKO2gHAMF z?iJwS)aExV2nn-bF3}qj!}5JknOdLOxOLBCs)wQ;N4zQ(jEzrDvho(U17ZV$`AK5)~jnCL0g-7ZkUW7<=Qm%bl zWqgZOqgXPOxtdWhT={hL^8QyG)N4Q%QZK`{KOeVE4Vk8O;ODZ>zFdIRg;};gRTQ)42RT_V9zhF z^0d-9xwAOH`IxU<7;6-ihc#S@@~qvQRn#?^d7^d-m!nC0FKuWkfOMyh11p9aAf0N| zJrYUH$wen;ucX55O|jiyuGElMSq={giB^Q$L~iGJ53LKOrEuTN1Ah3H^5)5Rg%T9! zKATfmo+^uH9pCk^UtnBwp)M?qd+{DSovY=gYJsZxeN9(OOQ>d5t##GNOPFR+h4b(O z8$#t4KeVo>(gPenf==Iv7cCc_sgsU%z{+kzy(gd0cY=T{Ogr}So#>|QCM_SFGNwBe zLqu10YiuX^84`ydOd~XOAgKpQ1D_~nS`BkF8Vl~$!fV5h660|1#ZkyEtK$YZX^ZbM z`N%CK)DXvXzsZ^{>9RWL-91Y!a$4uxXo7cnay-h2?OpsV0=ra$aGkC+?UQ!wm?r+p zi-qo`cJ3@B-~sQDk*?im=k%<9*zM)>NcI$-*o5`9apvV%!QBZZy%NNJj%^)|E(!`Y zB$$}RStHM(dhxk&DGAwGcSVs$4YSM0_%dwveFrQr=VDT`+G@+4G$b@DgB}G%fiIs& zG4L*w9dBLJ-t^uYmzeXt_kAx^nlpN~oBEgA4X3p>Aniw6@*?*)ah5ngK_+OI_Z;F+ zPbLweWP6(59zD1Ql{Qa=ep!@1u0HnhV#Yy1IX}qE+^;h1t(};5-;ruCS61>^^t-x| ztHe^%>lKF6gNlM;XQx@=lH9nrv%WvjaebqfFsE+$$@xRe{mB+>6a|kqBin9RhS|XU z{ImN^OqIQP#vWQTRBK`~H)kH);>C4$jhmU%4|LKbpME-KMxl-(w>^Hz^0lHl zWt#7>Utq9yLQvz4%jWbqHZ3tm2ebMYaapGhv0ZF)Gx+e4oN0-}pss zB=>QG+quBX*cyr2NUaiXZPg~$i5m*atWW4U9D31u^OBOJ_Z&0v^DG&`rYGMl&|}_K zHs8F-{fO_WMi+~z%1zOXRp^7@Rd$saiK?Ei5uE`SHPP;gxNiy+SEv>7>rSGk7?X~7B@eR(GVq3q0@uJZQa_CRzEKG8t*iRDnE(4*0SUTNcB zUi}SG;9$7c3SRlFkH21@hz=SG3YU6Y+i=C9xGZ)yxQF6Oat2*^6_`AQmDV+Q`ER~)xLj z?AW=;m;9%jf+>N*r9V9e?xyupr(OB$!-B~|f;a#AurDOQm+`L;qd1Gp>{ox_qobo! z)z-Fp`SRrmca@j^Q=@pT9V1 zvW`^6;AuP4i#rdOJp7?+*}SXfb9C+H&4Wx^6#B{YWJDg-x?ZtFEzw?SJC*gGVk7pP@ZR+3Ue18ZUrPLimDV14?}0&_HRM@N$q$BXurq0s{vYjfq)0piBt zmgy0ukaTpQ6hG2s|E6PL#O>4i$^G4Zx6p$JUtP+0d75Jm70k>FbCgO#ilu>l_V)Qo ztSz=`Qw#ekSuf;x>B8V-oKsU%ptIOFmb{NQ^(>gc>_46t7|Re6mtt-eLFj^&)k0+w2~E{yP_S z^U;B1^)t`ci!TkK!$WoNqH73izI5xSHts&H~IeEl!iEqEAj4m=O7$ArlRsC_a?CwY5F8b zVFY;VJ;^P%$$lhAD&*!I6PvuQt3yiQYdG=k5FGWh0(}*^{Yv}=WB{Q{m?SG&;%|^I z1#Zo5jSF~T_dTws20j?Xeq4zqcAnEKfe{n}dWn19(L_qhgxUgzj=xEP(kZ;vVh3k!Q)%&wgOjs`N9)-T~Q(%jT(N&I^%JQ{O%;I?)PTnvPcxtlGX z)G6r9AAf-w=W-=WeJZo^{*FE7PNBUU#Szc4eBx!QcQ@t}wv(ar@aGWDeOQGCMYzmH zQMXOvrk_QfJN1N(FjHy5V3bWl?PeCr?NKVT<5%H19yuGR@muYqnABd%;)A)}xWDBfx%npyvCN>hg!ANJk zzT$ACeOaAsRwhJKS+V}>PL1M3>Iw}iQI|#4Mb5GqyyzBvxUX{TY zW;ETtdehzaN+41%l;vKCjos}m++6vSkLh9-N?gmF{h2t-?sq#;7 z4yNMmNm~xDMu;*{49HT*j-%GN^42X&f7>i|^+8fbW9~r6Gc(jEta3<1so_c0WSHuZ zY^S>uQ=F~Cb#@*@DKI$;2y4eBrE*SGO)|;21tUC-zxUH zFX3mK;`#jvRh^a$MH%jL**aW(?7`Lj%zmzp28T6qrJY`u9hn|acDGmCk=H$<^la;X zP#%U_TZ>O+ONVHNE{x}A9X$_C;-4?g&##|LJJ43`Dz&H@$te-&F!vIz0;cU$XKh2k z6i3H05U>Wj~Tul(`=HNp&sAo+7_{}%ryCve3#QST|%3`L)P;P6-xe`@h z*kOeak}#=s85Q|U-Hj7c!W4E0K9BmEFc>f?k<;$sP~-`+Zg_Jh&XvsTS?UrxS`A1x zt?Bw+e|WFb#GjiOlI0PljwCg$)2-=3^NG2)*u4xSi}^CX(Vhb>(U6}f$2|!v;vjP# zBXce$g|E<`wR||6-~G2g^@yHdWF-4W%QUnMvm*kU=MG0@k|93|9T*b%9-KV2ebiF3 zCn7S(qoj}Bm`<3KN-H$LPbp2{OIFE|c2=HUJ;A^ZzBT1k0wtm|yp$iPSFZIR*4*p( z8KU1-zc(@R3sa1bh~bwbw!agHgji~x7(E==?0=kmAUsDTYvOA57jLz+T~^bX_jFNF zMX?2yd$-?ALt^X65l{?7@+nC#FJy~KQ0w`s0|9%SebeGHRaXb zx*hbFUz;0fPkjCMuf9rjBV~1GHF&Q?i3ifQ*&tH~Kb25vBj>eHQ^C!d{BTxS{%4cd zZ0^FH?b=E6-l#1FEcM$(iwc^u{FNRlkQ0ggwvMHyhrL+%y(i<8^I zN4(cd!}Wa}(?PPW@n;q;GF?~;ruTwYewAZV;EDdj*^jk+iu~0JJ|Lk%i}k9b0~|W{ z9hKV_5i$N*#{8#o2mM+WSC&aoKXxuDT#J9;b~+BHYVC8I!H_YpS$(ULtJwXX2a>x{ zqHQW`1T!b3eMHr!j=esJpaT)B#2nB+ySvzO?f6^acYysPubbgn;*|bZ>5*!fS;*@! zdvf%_@v?z6;^+8&#)YOo`$V{rD81^HvDptF~f?^bf^d?W* zwD6t`y*OqwT|zjK{7dJ);V-V$N!Z2+RpD2EH|Sh? zPP)=Duvf2J!>3Ph6x;`{%KVGI&SRReo@m4Qa-_yPosB#?EAAxs_O5={7<6F9wIdML z&J|P%RVprp%o%yAAFN1JN*K?)(C9KRRF_8`91&1BJHiP^Q-!~;V@))}Z>GVgcQi2C z*zK_oY}C$`Qd@?1tCc6das~+S*bHYLd4=5G0q>PuX;3@b;ys#ez?X-%1xeKw@G1

+8c6nh!M7j{{o?jwEo0rXwwkY5hSryQ4t~ELD=Wxl2xdAxcd*9Fr&?5Q(-T9M ztPTsVM-SqGt!!Kz>^pjaC^;l9?nZ~5(_h7mRouNbY4-(*s|fXYcDr#oZOMj6jZ2yV zkf`a&ZeHs*1}R@l zJB#3Yi*rhL^lRPdl?1yeC8Ur59oJ&+I14M;B=i~VFO(N%&rI3eWjfQoUalL)Wm-VY ztnmY`sf0t7t1Wa}wiEq$OhwExq6PY5X6y4~PdrRXNpc~c`o}DBPFT{U%Vm&*w^5?9 z*^8^loS)RZU9mPk-akKHL>!u~4VqDP*?zIL*68n*Vt5N>f~H=l&tMD3$EnP0#8OLW z7Oe7oYMTWrtKph@0DCsMh}0caCzYnR{>5t$^kOdd_vfPJ4biGKvI%;cSP0*0Cr_e2 z6h40XE92p-v5-Mvg6u!!5Wlmqu+P8eY+xI)d4T=9I%AS;)8_>yfR;$U6X)?&v3mUy zz)4_Q(HM}t^k;dd0@OlKuWSPkxBaad%#oFR2(Ca;8;00a0;IERp~6Gc3mR3@9sHZKcwVlU?n}e zWjx}8o;W-${sW&YzZ#at#dGo4<~Zk7T+CnQ)H~Msf}w~A1Z#JjE-BQU)$gFo?1h=# zoU?xv8%;IF+}!#U+_d4hl_O8QoN)a+O+v`Zz7;D&%v1DUT-sZZvuX5hNu!e8@TjLI zCv`f0K}F<$nzB>+|9tH!aOW)PDO&GRk*hUPg&u?>Q;h}}5#SzXoAjpcp7aq6@AoA2 zvQaOW8>t3c!t-){x1NC)EK{q7ZN(V}1kV;y#t-_0 zi8^3P;yEp4sAYEWUl)kB=XZdZjJ${Ug`lX8JQH{7bWM^awJ>I!0~g%VMQUSYoWx3( z4Cptpfb|N;nCzD+unw716Zs6**KyG@jB8tmGB^CvPsr*MCclB{rn?W9PC}+W>gz>X z$xW>*I_#fZtEH%w!zDjlm3@*~{F zMx}|m?+6}OT}q;uUj_?~$-@AB2!FUzP!W#O>QF9w+W8c`@~sdOde{O}*t1vvm##e| zem-HMQ%pFFlb)IZYr#*E;@i7HZNBH%H$+P%mrG7By%D#wUnrn2t!mCBbrf!_;U4!s zVS^8?0)LL7@J$0x;_(hAUnXIkgUifVI}x^jKc#;EU>vHsS|{9YyI4VgA=WM4SQYOt zo$Y(AnPt3*{ebv!4@XXsxhIOXl-qin6gKZ7K1Z|a%KcT>HbWYLm@U_=Z<3)(xWoJg zG9Td{S()gv@czvZWf@SV)?e^R`FO+oX<@-GMk!@40KM=!^?vyq_!sg$1~9iA^r}5hZ*>ySUiC-KjXz4<2GE1!LZcU zQ#0DW*@kQybU-p~F2ueFw=#Pl0^*OWF@CpxZ88NF7>R9eRsf8_1EZSKpE^2ltHoQ- z_~D49kKZC}#i!dPZ~x2ddyzfqs$m8zV$9{`mB!S~Ed$q~vdQ-jVx9{HAw{N21EQQa z;5u36UH7+k+VV?Tjz-+Nn-%=6PCp1ix<-SjS$_1b;yFTHdtZ2Uq6u`xY-7bLy=ji} zArx4iw(OKo4{I~Hj5MvmeTHaea7p8zrEP~d(IuY!(lt|3YtW-VqczP!YwEc(`A?6V|1csNPwqqfyOu0Ivo$>mHxDhPi|yNI?< zO!5+jyQLxHI}R^@{1uS29f@0>bcrR5O(ag%vGrT#L)h7aXrgI_L9T7TW0-LJHlV*v z5d(EuYkZsK2%kKeC1s}EV$Zy@vaGqQGh$s#6{1Cd(Co?0M8nQk2H}!97^LPv1X9qJ`@JGl*tn75ZD_LPvM;Nl(QQ3vyHApo*h=I*xwjzt z*N{=_>v1JmCiAO*MpyT7e-hcbUT_jOKmVrLg}onTXCqjw{L`Goc|}O+@r-na@_hD0 zL6?S--qBrE)R3x5zHQZe-l_rXG`y1Rj!4_~rM1ck0_Q-%u=z?*=~ENv+&aXvOIkX( z0hbXu!My>lp!5&DCik)hN@=2dft>Zk);>AefYGhL0_NASywr}!0W7n4VxZ&mreDRr zDC&tu@&0qC{Gc^BdZ;9ofBOnr7NO-E(crkG-PsVeqQ9Q z0b{~coQ>_RfC@1_-)P&&Tj0@V@<67PrQdI}s1^cvzWmQMAqIv~_puv&0%6;sh(9?9 z!dDKh>A*ZK%rt^rcbY>Ov&WVX^bs&H5Gs#Te2QO*{WiW-pEOru%c7Cnd}UJgm70ke z$id9iqQ3OGe8SA#OC=0l_)3?05AeJb^@ao!$ zgoiOZ4+=$H#p*V4kxQQ~#y}^3&-2gSnZ9j^H&kGz)Ctbe=|jISii=^0ydsZf@o;d|5@HW{KDu$7zC)40G8F05 ztmw~Z!5UJt}n~@)Z8JSu{Rv$4Mi}4g)&`3^-vDJvKv5Qst3cg*Gua(W%tpd&9 z;BjtR5M^2~`cR;80a72KcKzN^8gxic%PPv54FZT>$=x1p>K_Y_Sy=|A7xEsa>X+_b zBrR?aq7TucaBLLHb8VRjHzp^+pG*gFx^nQotte9pvR_E-yKb~xTCNPoD2gMS7%s4x zBty5T#Z3)mZ7VnBp6Djr)J_13J>`oT=PwD*un?mo>c6>V#IyoMMY`48(j!gq5ZgUv zRC;pk;BS!OWTD-zb+}=)%ogZs*xf`hY;J!w1A27H&Gipt-hsTu+Fm>a#Ggbk*K8#L zYA^QWZ96Q{!^<7l!QEU$lT3es2Pf-qblHT#R$Io(%_0WvlKC!~ zB(n=FasgKR*+zt%S?s2@RGFUP-j z!xJV2We6Ge?0)?EJAUj1YdKvmpBrkw8>b03zRY)B9;IwI7$jrOdh=5q`{XJ~E`EYv zJq`QqmgbXRd6k~HQHrvUm8oy@d!~-sBsJWU`k*#$rW1dcC;jf-kNLWOVMU0nK)%(x z$B|^T0%YScr-V^}%v`wylxwTPCUQQmCvJQCj`k2M+Bf&RAmyR2g5;)7qqIT&DkhVy zW>yJJbCaicGqi}6uNp0nWdlklUkPQ=3b9D?nQQ~Bd_pC&_i65Vk-kmeesl*xOsb9< zsER&VY#WaHS3!-%oMO#me(gBZQE$8Bkyk!vtq?gjg+f|SDYwJf{6h3N*0BbAw_1AA zDu)OD;uK%7X?VQny`M=L@Z^)PiorM8wx#Zx7Ki#ZI4d~8Vm)?NO$-kDPvk$286C)D zesj6$b;YRrih3AWRM7xg*HYNr)4S4sd&(;qs=Z(`S-9x4B8&p%nc25C=*?7&cz<#g zkWV%59v^vAwEOy|{EQ|a1A~Y`iqALH1J+IRk8dL6zZIwF)I2KWMhO1Y;w?OyH_+8Z zHaJ85tYVnqPkdtjNeu*-&_ZYb9PZs;$<6)%!@-Nv^E-LUZDM$EnelGAijanG&3+K; zd%^X=JU1(Bv@LrzYmKqS4;EYv*Y~j!Z%j5%)(QCp?^UEpGiLjaCS;$?f|>8Ibwbs^ zE$5N%kTRv&PpOxgoJFoaVl4n-_)WP|s~PMH!ysGl{%rPJA_X z$LQq{n=o8zeCI)A#NA-slUC`$)^R7^abC?M+AZ)qfeD*#f(gaifRh5)jLk^*=LP{&Z!2qje~s5~02K+_5sMo$!WsVZ*{8V#E>U(8 zCb@klU-@)%RZ5>4c&1QeAdc`S75L0MWuQuNwyP(YHI>~By9HnuH+FL+Nnf_z`R}cI z*oUZu)y~O2d#$>QQd^SwEw)e<*)WviL4&*JkiU|iO{CSt>dI}E(L#N>5mOV=nOS&} zo7`&XW7>^K!7s})$wX;z8Dc>Ba9w_;@F{FB!{miSogcq~*Co7C^Ix}={-IKY4gJ0Tx){)mu0v0fMTtK{X|@J z1DZbw)4Ws*i4&Oq$FtA!*SvN5k-TzZ zeBmcDx9=U8bvqatIL<5|n*>RUf!fG9LYw(X;Ev??&I0mkrY9Fv4L+Pb$4BOW)`pcs z9@nvsOBXgn?IS_Gq3vT8f(_H=&$$|Z4GT*9GTIhCUZtp|3+NYhRYx=fOD5vrSNUte zXjxo1JPs~K3ONxU9l-D8NTky!kl|aAFYAD{hrM?a+el;mYBW+8VfXOzOHRUh-b);S z%qm&}tOUu*s_%eX{o=kfuj;-FYH<T5NkzYN%s6^E>gOK>0$zanm`^DQE^;a=vtzw74#!Wot2k-CXsKso zEwH$!Loew(54({)jJI`dJ5-V|L9jX^)Tu^^V3-<6uCudG&;M82m zB4Pk%3B;n12A{Npkbd6e*J2lmxH<~-&F-}sA}z-dt z2O%ZmCft8VT)wRnZr1rG0r=FgKFFn4RjFIX_Y86Q6G#Z%S0q#%9p~y&8JhKMs=f9n ztS9e&rI|1V)opAmoc(Kiz7^+BE>H^5d;9KPHR&J<`x%pk-P16f?2$j? zxh{NE*RHAGFumvJ2ZT((PLP!6HN5FQO`WXQw1wKKhlN&9TDLq}hjai~w13$-vE9hrCjELDF#%@eH~X~20YZ{Y%y3H^FZJgG0n(;@1XR9eDOwmn!> z{_Lq?(pQJ%ctnFA=4Apzhm$i8d<9@dn|x9tT$+)df0FVjCAI}qtieX-W1!y4a756$ z(lI`<9wT%SoAowwP7jMEc~l0{u{+JfbJ-58V0OK? zr7jj%=0*`&ZjxSK{;=6MI^~9($!9nXMvkgTwkUQap=lXRU=HT!fxDLaG^KIaf2 z3nBB(c+*~um8aq6?XHy#e?62;!^mIk{exYUH#P*zx*_(>6cIydIg#SykXU1%-j1Uv z*?v0qW%;jf?_w3bvJ&*xxygHFQW?XDq19ipC5zVk8Kz**?!Ppf$-&%*O!e0i56;HhyOUR>fPV3>nHrurhMpbHlMxxUP<4G zUuRYJ*(6y+wpDt&Y2yoxyCv4UojyLIgXa#FEz48&(U(r{>lg;jH{P$5*B`%b)Rus> zvYH7SYnWsVJ4P4RlM*J{;RBZ~ur>yEZi+GP?!bJ2aDLeO61r*lQ~15(&Bk!Vb_avq zq$VUJSOVes-$0O>wsJB%<$A$;GItDLV-J!=oHEj0pFJ&qrJ_iy&UN|T#|eA~0pCp7 zwS;23WiK7ew!{>R=iP!C&*Ea&A;J`|wG(=udC~ri44?i4j7tZ*WgbwrNnKHgpL!;l z#h`?lwq7vuz3Fyok;-CnZNh;_Ygz8g_|s<^8n1GTZY0@fY<@gpoS-Vvsl{)1fCSvlj#?=jR9b7xZ)2{>jYY!H1)T zn&iGz=2A>oY#)~1B5NibJh>b&dFQ?!f7Z!Iy_T0-Cq@c$4`Q7&kKUy22)rGtZ};U2 znFmfOKR99f8D;%PGXY@q7>-K!gEE6Cjzzi*h7hOTC4hp{7{t`NG;neMv9axbY%UEy z%1mL%#l5YBcViM&)!Az$LgHBfzJ6vOG{Fm>>=2Q+|WDc($EiWwby-=Ro%04PnR~D)I zMaS<0jA(|OA0615H{_Txn!BPR9y zQ(y%HFT>#6p?Ns)pZd3sg~m4DZ5~9fMm(7LcP{ba#eZ>$0Ce-exy0kw^}o5qm;6qUj_c_2x3Rvy0P-ralXyHaRJ zN1Z}0(hS4~$zu~aeW}!5`nF6bmJ@4j=*je>rTm#^86u;l_B)a%k-x62ak^x&OODK5 z>I;dYHMl)E8O>&sH8G*0HrN8|t$0hf_%w15TiHRgd>1>_$`**c(=d|yeJZYT{*VfW zNY`-3@IJJKuKI|jvM{`C)&VD%E1RknTdW;zu^5wvK-6I<+Pc9!#uihY>#b2#Z_h(p^M_MAUvFa2v*Ikbzxpwb*4feU z);Y_R8BG&u{lL$bINA`fgipb#4tkMcx&HQxNB<%oVeWHcEf#(T9K?eNq|+QSgPLcN zWUxtMxlSxy#{A*W6P#KJq}f-~RpKgZ=FLY|~+&X7d;}%t~|GxA^ z=JtnRRM8*Y5Bni&^7M!(jzdG+R@Cp`ya7i?TVdi14AY9CZQlT- zAR1~Y?b!4HCKQxeqFtiCktG;4l|_({0==<%+N8uid0(!~9!cu6Z&+uO8>}q+`#2fV zQv#Ic39MduI1B0r3)BG4h=7FIuctChc$x5U|J!liBs8T^ZsS=^;j=tw3|Mz!xN^RG zPws3h0D|RxiJUB*nn9OiCGOlAb@V6-InVHFCLse_ZgYzX;LraRJy*5L8ylxt&zvdu zb*FcJ4Wa$`ElDlqS!wFzp9jj2(_1SvSWLKu3(xdMTo^R@ECkw+F(!Fit2jT+fBH18 zPCQPp9w58x?N!vL)KWU`-G){6KBgem&yqOLbaKMBg| zr5=j=_%yEF)1iL(bYi0Y^Zx~ea)I~VV{8BMS9?Hi6GB{xDrlsot{e+X*djO6iniO> zh+R`rR>nwaK0-W<~7g9wtp!$&FkayL)v4TPq9sohyOZn{7{2_-(k* zCwlb7%|8=8HzYW#aGTn>1OK6*yp@8X9xg@A7=hB5dPsbUOVFUOcWr;?lspy_eP!Fo zv-w)^D*6y%jU-+&Q+WDJZ7V%OzDovPC*#9P{Fc0oNk-L3)(1x58#Nf8gx<4ZG*RE8 zZoGFghD_u@PGpJYzmYEt!otS;K!oR&!SpZml zkT#Fuuo%QcMo*xL#IZ88qsv-2u=i)$N@f=I1$Nn<;}}fgzq2}hjxh4oy4NexfA(16 z+hwI(@ILaZELtqlkUMbp5*I=8NUypS=HFyl7CBH=+gihf`#UrJxQX+YMv!yqJ-%)8 zgn`!F1t^)`p<4HC9txN!7#6|Uh89xj)xQ-JqCy5$HqgWPAH7>20qcXn$8@V$?Kx0^ zq4se_dOjTH4j0V_x;~sb5Rh=yqq*h5FU){20fc5@ck3iKCJeg2~vF~t;pAY<*TEFga55q_JyBG%UO%KhVj4l@h zq^5fho6FW&E{#F!CZGB_A1ny??vH*vg44^LJQrSu0tAks>{zn1rFGm%EV{a<`+i~h ztaDywno~ETt_tjb#YtIEwXeX=|J4~@}xy@d+}E(H~}TsEw>!@HxFOM}XUUze%fskVIF z=xM(V;BJq(lDes8c~@mG`U|Vuw{^B=4@Zq#4idb))a8eVnd^|p^jXjb55KS3Aq|@K z+(z(jmye)Im%f2660qnl*#dw-Q7Z55JTXyv;$$(9{DsJeOe*j+^7G#1a=Wr%vg^A! zMsSGy)bD5D^{0P@Md^zU=firy8ldw(y*VF9yh#ONRjGQPV2`Wj`!S1_9YKkLTBcYSyH^+ad8D|8TmKnpJ>W2t*5x zX*qJAu3dTe3H-)Y$=)zeK+5q~-}`l9V#Ii`N`D~T#;j5_wtL@a4xMU_Wv@WC}tZ`y!eSQW#3oA<_ z?{O$$$w1jzsS!vlMzK}bx+^-UI`q()uM01xG8!%(XR7Y6NWYG@LLN6YbHMgxL+|en zxmYWBIm92{ZXA&PRawdJ*!Pa@gl|HKS9&P^wnf;TO+i^uh_+tfQLmnq5L|?a634YC zydnbbNN4+Wm3!vF4zY!b?`S2znaAx`ms_cHa}TDU{{r|G3k!95*`1kzqyn3H_-K1;@!@N{$vks-rmX@7_M1F)YsJ^5w+^Y!T}UkZY9&n#i@QtCU`*M zEoyvwd70hQ5A_~1Bl@ae6D9wmQ#ek&G6n}YcJEOOIa(}(BZIsIzyqmG3RBBv;zW>0 zYG82f)Y8oOd>KqNsd%c^l{0|8-+Lj0Fh0*-qiNjl-0GfWI4^(O6e(41)BRej&YulA zDcezGahUsA6%N!Mk5_bxyJaJ+5YKN{P%*t6dte_rHYX`7+TK1FV9bM(o(0DzCqOk$ zGiZR4Qf!_(;Xt060$-e+)a}=5n%~xxh*Vt*(abz!Ykv9G*j=WRDhnZAM$2&8?lX3S z2CTX@_kNfa=RbKqnywB_hhY}xf=v1J2fc2}0%{VWq`xthFR0DQgK!HGo=h&?(sg6NMLb?UXPHKX7o zZGSrbV}k?$*m^`dSfNT{5|HH zX@A{X>ZJj-zBJcBu-AMpKccPwq1NM#zYnABSkt2j<@rPJslWgacmZf>PPS>X_#r%1ImN=gQ z(m$Su&lrmw2QNeH3!6G>?$Df=@Y8ppFuqS*OHHb!ejAlT?g@OyHB11L1 zULIQ4PpL#K0-%bHiF5 z;>TpV2DiFXui!_Ut6>ncJv$}2Xn)mSe84dT0u<_i-Wo8v67+fQg(DBWldeu-hf4a~ ze^hMO^oa44BwsJ)ufSlN%;U(ni=1cw_LRj?(=1kOa%g)6@y#=6{vXuwu%XTV>-lUf zoSv{flUf1*h5D0kA`sPQ-Wp*#0i>FZDamu@+2TpCFl1a;R$&@&&wLnfrDfx?$fss5I4-NLWg8kSy;KMQXuR$Ho73B z`L?*@$5%45=|Clu=V9f5to4+npacxe16k1{OV?x7Y~Ayi3#NA?u}w1ZNSmcv=|s@l zugeuGTb)*IvyJwxhN+XLoG&Y{=Cr7Tp5?LB!%&SIZ8xcLmFVWcgT-=<60}_)F;{5D zCf&k(jEcXKK2nVq{COSxX;y*!dm@;v=iek#7=MBa>ij6Xhr7E`qmy?lQvM zpk?KQfR`FSZOAS~S?=G7O=0jWHaC2&fn!?;y6u50)lM=D_a+#)Af7yjAS;*9s|3nX z&hbhGHoiQz4S9_>N&8Ck)t$o8S1*aV%Kd0* z*d&8egQmQDHJrrtrm`870mwBoA6H*YzjI_~;5WqL_r!-W^|(#^$Bz~XVZ|vpaRz)8 zNR&j7UMEAS>48#DE&~MEE!*2)%g<=+1#jT?#3ud4;;BrUGfmBj2l+wFlK9>#eJFME z$aeiD?dt=hTHO-86L9fRfFgE)+iL+i-d`VVm6PhQSbZ$1_y_j~fWsM(? zTT5U3J*Hwp)z&3+z3LkzQOz*?+`O}1T5|`3VcLYN#w0QVlmvJH6d3`1)u`gGwD|>N zwgr8l+^wx!6N$MDM9_6!HUVr1)S21nHH_TSe)^oIV7l`e#UzCUI<1ZZE+}TqpZ}|v z!27%;YR@B%OyEr`F)HHCD~W>3KLBV*w4iJ0d)h-ktD+A7d4o5J+w7NZ8Y)#uV6YMN;Yyyljf^#wXKI9ed_skpk z((k@I9@%3kmuwJ?{rP|?>Rz?DjQf~8Lv;Yj~4iO!&vmSk0h!1^;1##N&` zOlctJ8zFYx;ye_8jB0mn!h7C`eZ(H~u}=;Eafg3S=4h$Sya%lp_}WO)fWDEIr_{{A z%Ql5rGS6TkCMVI7v;2JVrzJJr!~BL|cBW{)kbw7X$_;f<_CS+)FH`tH*lMClJv3rw2Nj92e?unbMgC0A~i+{e6GD=XOVE zow5Pm>i~O`sUX1^b0BD6QICoxoSzjAiE0U2xjM0EVs0~F#?jAa(c0drXYpcm5Aqu4 zU$n0pGd%qME3>l8wg<6>u*c@i@{#JtM&E~FBv>}QkM zRMxytPm65`TO-n$5kqu+I!#KcATDU0W^kNWfetqlRps0g>HL%x%*WdCIhNPVTWi7J zgN}9>!+>q>{yzmh?S35>I@RkTVl@JHmTB)L)qf9)Q+v#|(9MEfe^@ z^52r5r>H6<6NP+}y*k!&sl8-Lkm^p9J|DWi38iy>z4nm}q2}l-Hp_tMTu9M7_o3WY zdzTu$w6i5KH0#A4THWuZ))bA;QTyzQtiA63q!gG>HTQvue?4Wla>#m=LUb~zB$NY>>C}^^k<4KY87I0bh5qtko_0e zjhqcu^HYN_i_a?VJzd@V)+=hM9mC3bHeW*+3^UUB5Rt(-aL28WTe;mum*?l#vUFA- zixCt$!qLKcXL12vQ60g{U9>;h?iPHz(=i~9TWVEnYh6|g?zZ0VKEur9;(_gs#D(-P z7YkTd1~`Q)9+~q5S6r1Py6geLBXhRs>8^gbs~Gmik12n~i~YI9o$^eHvwOdc8~9mc z0qp+~rZ714jXoH?@!I*K^(V6hh;KFi6SX@qZ7$m>0Z-Igbx9bN-Tn{m6ZJ9=LXDh$ z^q<&g!nNMQEkwM9nrWv|9ZL88JmNs~vASH9eFn#>wegD&tC!q5{7Au(#%ata*W?Zs zwqdBjbLs-&1>>U^}K z=mDaZvJ8`!LbHNz;(|*1ZveR?Ypf0}c5A6yDM7hCmpBQJ@+y^~m?ejWon#{uGqf7x7=aAAn5C;%ux(x-a8*Eg?fZpejjKS# zDMP+}*G7hFy1ASOL^vHka99pf%~<9 z&FX+|pt}3TdbSyb>w*(N3%ic~CK8~-vTqSEZ7tis04zvD5_v4A12(PrZf9r3TnhDb zkN}2G{3iyArgTAW_=?0tgznyzZu6N26u@xM^-$gOxY@;4EOaU;3<& zSEBSzK5vM-x_rBwlZ9JeM+vf4#yU=|vg~5ke&|P=sH|TP+NMfJsV&KZ?kntG_~lVN z+1$$)bNb=sGZO(yeu5JkrdHQ}5Qup8uclv?ksct_9;1sFDvD~zrRWFsN`$#CysK8^b4qpBKtIl(s=@Xt6G!tCa17sP4QTc$$*sEgEpA z9P&A2Eu_$IU|d#57WrD&BW<oaqCspPiV@wIv91G{W5i^lBM~a za4^tr?KGC#S`FI67NUqHi^h7@&r>aEvdvM`0O&;(J8Hk-XTx>X z3Uug`P)y7}L$^xu?~wO?=2lR88F!EtO6Po%PcQAtNNqlA&iZ9*WfYdZ&@_V3JwS?` zGPwU92uJhv9#cTsMjxq{rohqzY$Sr&UkhPr~H3xBMJ2arZ5vC|x`n8KN(!y5aO<3V^jciO;(X7{;Ic1e7y=~aucx>O7Fic zX5;5xO$!hH>MeFMJt@f(I*41X;bkLy{KI=%ZmZvve9+i;K#3fBbpJBGm1uZRH(c7f zfmga!Rd_s+?Hs$Pzo$?;0kkZK0T_@ZYUWu8_SQ^)S%gdqnDa}{OHQVTZFfT==fcbll3}Z{S$@*-kiJ5O z+x#Y3C)7E!IeASl>hwNjR8mZzZhE?ShK=?2-(nR`-h~2+$j2v)GBYHm@DCt0Vx)|` zoAq7rTHi(ibR#yy;QvaLhHr||#iA!%qH9`1-bp7PnE6T8LD3_j3fX#1PG4X0f;<4{ zNQ}cmy+@yxL;+?vcv9@+YAecln_?M*6En_aRm3DqudhV3UmsOlYb|BeEBf16)LU4F z{8D-=fv+MUovP-CkL3fLRDqLG!bhIrMXz44Gn#?HD96X-dQDKnW z(kuqsH~nu3)6=^Dg@ozfdEh!JN9m5uH%m(^*w;L<$VO(i6DB}1SUmbt%<8qZnnSZ z*Pk_Rz@*6glxA#bBIo=<*xMT!!^mJ&(S zIxIy$y75$zF%F)Nf>Yo&nN4SJO<%H z+pQSZBm(81$yKrLLqy+Ub%RwRuFaXnnN}Y=NA(~lvBA%%w=IdftKYc>45q&onUEY6 ziU7B$HXRG{hhp}m@AyC%_RN>z4&VTCeI~5uc<>I3%W5M>zI5xG5$9WcEE1g@MGZDz z7OVA5DA|nr4u?m~-8uvF6AdR%wN4%KvK(&^N!N-heTL3?6H+{#MM3_d{k8sv%i;7M zp3p3zZ7&vF(Xg8H)EiK%{e+pj5VIDI=GnsvR^n- z9p69h0+K>*_90vsUfzUKHKYz=C@l1#- zm<&bc{1(IcdZbVIH_^<-jpOFm5CWg5c*KuD2tt0*&WAQ^+^LLT^Jc80nd>6z$NWcV z$UyBe*ZSB_)nGf@^KFDk;1tS!#Cg(lyJD};(8Nkf=sN}gp&9-!)Tp*C{dzbveG^lC z!&%7Ov-)W}E`JFe1Cuyb!s4|PwTR?GN2eqFUJ0-d_v)T0AX@ldFE_k7UTcuJt5NSf zfRTRwL$ZA5!zgEi1noTV356uTEne{7c{tn1JL*8;8YB3UWpS7vZH(zgxO%fguRTfN z-0FRKan>|(Fj$Ff05RR>at+XHgRyo4hmF*&X(&u0Rhu> zJC1WGU0s(4#cKzCui_?4#>!^lk?nYhTX-x(#XO%t-E@bem+80U`sDSQ4aME8 zdHD`5<`ajF8g$m#Pb@mm`h+Xw4qSfoL5AGyr@wQ`AvBv5D@jjt?^7)Ttk?13n0teZ zLh$&3MYH=G?c@%YvqJeKm%cZ!{ekz#OG7?QE4eP;CFM@)CtEJ<{pQykUh%xI31j*; zUdtZ4z1})hNA_58Ka_ipcew4nNQJL!^0e$h-C=A|jf0jJnflM}%Z2?!+L9({|EgJA zm3nrD^?C^rfCg|_^3b(R3)k(GAZVyr823LUjqE4vAM*6)Zo&fYKS)jwa|PMC|(*!4SQqd zOYOA?-4+?={rN=wbK+n6`1qpe>Ll&rw6fm?HexAJvz`vJ`5uc=(}T-T?>K675@r;} z?s5ed(Ngau0#V(_gc|wzUxwM^1qa?kl;U%Hv|=7<<1nAMs8~cwyZ3aE%k;2Y>^RSh z9&_oT{Wa+dZ(r4>G9BEjl75dJvBm4@m(YdIZB#|Sr4+x-hJle-ouQL{;F=NuX9;+2 z`49KIer6q=$6FBp{vSwMA(#yp-gS#<70Wf({ho`J&w>{pT%#JMVPt8(?RYqo0jmMz zSKiwXeq-DLlISktd(^Wjh{}e__OroITK*Ay{~{=xuag_x_|12A(uAOXyk6gJ zt@o%Tc|?d^0R;%1B1=Q>!8gu-{5Ufi`((w&7x9A~S*WUnOvL7@%2RHg6FGUp#{(<@ zc!%}CjQjCOU*)VEy-L-JY=%Wh7#%&0#XuJIjVvK9Wy{{%mxNRAuQ)(EM+8c$HN5y2 zOlAeEq8i!pQoPQQlf?r+jD3@cGtHae(a||K3g)jDi&6T?`PY33Mu0}tOZAo!x)`QB zUjMRi6Kluy^HK3@e{!_D^0ALEZ^S6ZDm!$3>-5$J_OCRb>{N>*fDB1?&U)Y2yT&-BTJC zk?!85f=~%kq^H2a#bfCM@o)<||HTp%46H(WXRFP^#!JZ&HR?dkdQrLmC!TXzmo>rv&3QLRreQvQ3=)fREr_doJ{7NJdoC&H#>K1{??%dH%LTJ6Pll7!8T4` z=uQY%P1uH4iyxo$QZ35>y?y@C#J6MX=G7H+@DS;7`)lbTo#%SBd%C)IQJ&H;fBmClkq!7fK9i|#Y1l-0DOlY#eDwm*y*vOH#r*9H zhM3Y)5|;RpM}s!a{vjCt&qMre(xudhku?uR8@KYY)4}f6R@Vl?eoMF2VC7TE*s&{U zfWQ5*$^P?YeEITa+22UY9{ueppB?`48~{$TX?ZIj4g_*RGmQV%>>qM)|MvWU`TX~a zQU5u5%D<298UAA-30jn&|1B~qs=TV|r$|u)p<*P5t3sCj;2>cOkXw8a|ET{+EfzFd zJ@IcKJb#t0nsoCEr8(H^d8NWN#{X^Gp`B*S{au97{}YY(&q1SZ#XO#O`4d@mvORx;M;b^I!cm-&>|*q_8<@xx zvbC=ebkJF(>gm!`RNSchY6!alec0ZmHakKS0Hz$?RfV8B%5?*tL@07o?|5N3!_Du$})ef`Ds9_lM zi~oWAmEgZ8f8E^p&bMjX5}DP)e8Of0vF}Xf`e#*zDcZ_!sDH)do9-5 zbm=zQw8=K@UI7*Ue1Wben?`XloA!Ye3#_{pVwzTx66W>u7ahbWdN(jBZSHMHYb5c! zujZHbC%$=?$Mt7P>Q#L)h=0R}vaz>+SN63@8qmo!%QkxQUG~_TG)1ktB@?zaxYvgq z{!u!A;bj5|n$FJlQ)kMao{UnIqs!nKi@sv3c82;2( zpQT_d53Njgthd0y=ismWSwTBI?Lav_F1SqusfzJ-jA%W-#Inu&gZ80gmT$mJr+s>$ zk~F^xi~IU#Gtnxk1RGiy{(>_sV9wOn-$M4=f=P9F>&)JztNi->W zhbO1~MV8nLsiY*yUOlbtnPafSt8VS_W?&wUOPo5j%)6gp274ALQ+mIh_c_SskjM(# zx^b7X@W>xMNJz4)R;f6`P2WUAV|*+x{Y-=62A^_Uk+t6Tgbp=ti??;QGXcpyD63A=G=ouzcx&Vi4X+N7Z0o;i(Lt;`&$^O|5G?o#s4XsD0Tx8 zUr@8<@7{5bK6_6HxP4OcX(TkZIvDdD(v9|X;KiR%a{@d49x6iY%m$bA7$1jNz)1U= zH18aZ^gDc%?lVusW%VL)(k5l9O}8axeRxD71v)J#bms^Jzdo*{zw_wt1B!aWyn!NW ztJ#xm`n}YQZpTCB#KFsKB<{(*+KC3ctP>WuU3_VF|G`jfR!L8Md z6#*Ed?&33Gk?Ef&d*$i-8}I1pW|V+~v66B90K_2-OBsNfPc^PGS_DL=O!E0|)|2~Z z!32fG5LNp&$8Q1H>OVXeF1w2GYV7`#Fwxl%NrZWFyU-$pn$@-JZGnX1;vZD#@6%vh zLy<2%X5$Tyx7(?J_}%nP>Vq`2`+}RpHAz>$DfBPa^5&gSfm0I|;I0h3ppPx>>&__8 z7Ch(>tEqkiCcYp-+SBoOlm%V(cJg*=)rfnjDs6Molk??`ij@d6*ki)zc?I+@fj*wq zmzQh)cE2-wnpe)jBKuF559&Fs?>wfVuOIW{ArRGTI~2Wb8+hfVyL%;DqDKxwb_YZ8 zDLpRhwP#L7nIK`X?UqCnHelX7)acpG-r?^Be$AEaJ-l8|iP0Ko%=E*s4)ZLWK!4<2 z1!cRtDS2D2D~I}FP3KYZ*C`vD3O2ncNr#&H*_YW}=XKnbUMMx<25w;EpiDbUypLC) zJ2REn`)$+#zH2=V7JGN}1zew-08dCz$Y|_a4ByqJz}XwpOKGJTA{0^C+G}(+l%AB` zF3v-aHbw^=9tDwqV1u}BOc8-<=D_J5O_RrE#zTVnem-u-`tkLhOk6X+d>AA-%M)#X zCbvD1+}#)%3gnaQi`^L?8JXE0xXRC38fVv8f2A2`%nl`)TFy+H0&BY(A70*x3Tr9R zqYqjQaD7YV`*&X^E=S-aX0riJa1Vd8$@>$p?dps{dTm9WXAV#u144+cN?`58kxrq} zP_F6{@_=5>twtqK@;iY%Yx-V^?sNZ1_^avWItP4my5R-EDXpQ4T%)t7m&a2Pt@_QE zV`7%aj!2A(F*DfussBmQ!>ySWQP=@6F4_L+Le_)B|DlkT5B9%M$l5{r|6d_%yA(!Z z{g7x&c_u$kmwoM*xpH^JLT3?jqAg<#mgu=y6Nn!_{*?I%?_dSx!Vid({2Cd~_TPmR zZTh7blfj`^70YBRUpAb0{qXY*aBst zab9Jw%-pQ@lD6kVf>K@IzBM*ygQ$8CLu1ey4I+D;0gvPcNV-*I4HQ)QniUmRf%R5n za6T72`|gs~Bkhk_@s0q?Q(uTPCI!0XWu7Hnlx3hr7)?M)pE6^_fZpt9qP1BDM?dG` zg*D)tN5f7x?1F7oNnua@%n30xj166A^=)2L)`!~T{fio1cJj?C=}d-ulgDw;#6-*R zLe|$m{vobt%+5c^6;*kXpNLmREQsar=un6kX|tk~Ai)|@VR{WVl?*}*1ZT#j!mp6T zLXWyK0vAoPCWKjd92jxF~{YT{u?Gdr2s0~R=Z}a$(P)ytgkxQ^41L!}n zlaH-H+xG2?-4Y&cQ7DFj5VC47xF(@tqkxinD|kq|35|Hz81jO3SB$G63k24jo9y-h zOuU2t)tcZ{ljEfRrO%Opg_59MN^3)%T>`L3vr?NU=rUVoYA`5Y3m`||>k?s-e_CEG zv$TNS_c6~JZgw~`DQ1URiGq-(;`!rcHEKbgE)e@Pn3!5O&z9|9y!DcB$mw_Lf0iy< zf81*ervHUsEj1q-jMtXlWpN@wpc4`RkdR=X1S`b0O}A~_{LJqNbqD6-#Vneuu8t~z z8nrX)2f}u)?FvBjODpwudgIsb7T6<-H)P6)F}_d_ht;HF*X7FElHX^j9C%Iaz>1-+ z7P@lpMG2e|*$E^H4%rv3Y_=`VY}6$NoaEs50O8Ket--u3GTVI`&)J@|p>OGTKh4*sNL5v%_69QXv;C zPT_^^D!OLS?3n>nn>IIp78UP%Phz5%CxSgkRzxi)!@L?lts;RTum}@4s#u8)?$%1H zc!usFLVhKt_Adr)WR$0_vO@)OroQj$U`GFV4v%|w>&bzgC*-#w=*=KP;e|eV(Bavy z)+5c59StTV;EcMuv!fJ_?&wX#z0O?NDt(ZdKC}J|kSY74O)TY0vVRJdN-(5FuYj(e z$U4(BUn9g(D^whItNYVShsk-|eWu6<9fFp6>IJ9ExAIuJBo??J8bow+5{0--Nbxvy>65qZfdiQS(Eg7CGOCjm2-Wv4hwCvi2s@ zssXB4{Yjr`_9j)s&@feK^x}e>ZG!+un6zZ6*oX#r4I^D!GtL zKencnCFS9Wu&M>MdAEjE-wnYYIFIcwXPF_jGc3aTshSRA#ihR7y|?m*P<;?AG5vM*mwy>OP+5 zbk4$s@uhRPs1|No)7c*tTyS;)M0~?ZwQB496A-TNmsn21@knIBOnGYy!>aBMq^ecO zHBa2rXmP2@4^e}@?Pa6y-ar9K3z0Ku=(&!Gz8!aV)e_Lj-ssbj_hCUCpb8W=a|1h#tk+NM)j8F5vo*st|cAsvhz>=(P&bi^*UHUWQf~m);HeM z?*cJ4M042exmDuZswq1i=B6~yS5rzm+*EA4v_HHtGhr+=x?+Q;gaDO{Y5O7d?S_{ z-8<%P^PuJU+1hqsRR?Xhd09s@P}; zER2)A3rk|tN`6@iEvD!T!BB0lT8ElKW|~Fl%nOLerAnmw4zQr^?)EnpeBK-F_{2|J zHQh>IMYfK6AH0V&X;o$R1MB_27NJJOI-`$C0CQcF)+XpnXt#opJ+uk2Zy+_`>?$-J zp2gXFD8@yb)-}uOuLr>%SUE|mpu3PN!Uvf*%o%SVP3LlYOb3o2hl)IEN6(qCyR|Cv z{ZL&l7v5x+4p8iN9rMT8b6rQT=;Z}wb%_M?HIwd`+rKJ|R4`H|v}pXf2*MmqK**gz z-1U{%2ic=3X8$33wEv&U9!(%IUWB}Gvrk;Ym?Y6~ zL4+yHd$0(17s1KQv-i&^MG|#;$kXJlfTjXE&{ZKfL%3$|5fZCf0j1B$R+Sz4ImG%@ zrb7U14K<93w#`^bh8xzY%#hm~3zw^}SwDSoH)e20$>{7Ay4)}qH*3JoQ4z)EPcSVi zf3}tH;LSD5zZ_{gz<+5^btixHFmAMVYpzqh7n1uWLl}5s5&cVfha+bB?YK4SJn0hp znKw#s;rxYAxog`B5GL*8NdPDv$xRdNqU3G#kN;@8qf2k>oPyVX&~7XN$!CR449}+} zqqg6lckU`TfSAwUp+$q7vv^AtPlakr))(Hio?Pl}%}=g3vN~;kTj1=YJy>9kF)U;a zq?o8r?R&)B`C=qB^+9?)7iv5Nq-1DUX(M)Q)inPIwv`}q1-?CJ`>$zx zX^n@EZD3MR&D8UfzV>$2yV)2lmGn?yubo_5M65~@Y|D(>cxnhDwF%t}Jvkl(?tYt4 zpSyk+!zg5Y*miY-GR^C?7&>#aoz_t%#f&$I$Dcf~!1}DJeQ;}WW_+|bV7RhUq{*|? zg%&Mh(?#Rt?zy6-d$6Xe|JRC-^O_UtGNr~aY3ffi-^RU5lw~u?iYxwji4W!KOej_sbYxblgNYhIM>h9aX$nKnZ(E zeW_WWnKCjuQ8Onyr~I>R)b zyx{q=M@&3Vz)Zift|5ZUHc9e}-ww9SMjMM;8ejSQg?rY9+=}{^l~*5L?_BtNMmT*f z^5sz?#Ft2D$z)8L5$k|(fD}FzMeY90b2sU;W<NhfkHs_VpE>en_hI^E9S0X!fC!N6cg6 z?9}B}$0e$u2@=7#VjvfTkc|m73;>BMwE45y#^bgp`UR)dJLR%{Hnl^U1#N(0Tac&! zJEvQWmgw~vyF!z9O~JhQxS)i@$@?ac6<-C6>=FsuWKl`oZL0F~U#<2d9%n0`c%P>V zJg43P88)a`w{2HI`W}F4{pYDklYm||EbJ4EghX;IU2YVtJ(}oDN#B5!jf5@c?BNBP zD>cu!B_K8|D?jav+-f(>LT64v1a^C1Q+JX%vI-;^u{YOxmfFvU+yClmBu1`LMq9_W zWNA^Kh+B_JbMlXdKh)7uVvALR>2Y7-;rST(|Db#xG7 z)~B+wt@l4v_Z9iSDr8c^E8-A;vT(?`P<>D=g^nybhBo&_g-Vp7ahg}`7ayP{`X|bO zkQ3d7wr|OOS8UB>GmmYpB&mNE&he@}jj5;ySz!_*O6kpteEWPrP*cNsWsmM8z|Qob zwcYfY$?iV#BiCofK%eHeFdoFD;brpg!iw(mgiU{!C^uNUwfw&wPx^V?Ge_RfE_JCh zKlG?v-z9HJ3|L7Pc7rpfj&UgX{=rF7HrREZM>RHnHwOVlL7Qsx5h7z5jVyiJ=Wb1< zrD{DYg68T*@i$2WE4E)`?!6m5cs(xJZEY)i?ynhJsxopg=_G|gi!(3&`h8!; zQPge9Q82w6%K)m3?R-vhxxU2g@p`ZlJSm!VLaZrIP;m-s83u;zYfg}j@_3)!QO78t z&CqMvD$4ffeI5wd!~VYklw)8BhK>uJFA=cWvQw0n#qfzG(2T6ffxL# z6BU&EC+bAcQY#LmORMVznIjmcOr8dl_DUDj zguM*~$yIU;{|#IU@njZ^cJH7{TU!J=t9B}qpZg$^IUO0{jDAMlkjN#MP1|l#ds$Uz zht@wvI{P+T`+m2Saam2pLW7*m{RiUuk3F8fOdBGc`}u^zYX{2pFya4@Ow>;5a_4Mf zwTxT5Qnb~7a6wgrNv8xb5!JCKfYV~7=9NsYKL~H5_Vj-raFT`cX!S*+fSG6ByM1+6 z&p~pU9Z{MWK75^qsPME;77=I!DH^w_n!T)0@Qi|ymV@*)+7RkRW7DFddIF2A5*%aB zS(}^PorSBTr=oRIXWg=TlT9INTh%{o-_D+Qv?v{SgV=zJu$KT;%Ys}qaE{~ssANtdQZd%YZGg{}cz}V1wEKEu|(7yuxGeQc@@o3xSQCsh3UVgts*9 z4Qk4a{PQdp!^Dpw-I*^oM-Ahy4E? zFw?Xz4A(zgQB$1>TDma(BAuSuwz>#B=oCnXc}FM%OyGi2=#P4TCisoMN!A4@vD~HN zYnH;sGI?zs!oAbPEv;J5x$2VQ!=b9saT5Gi3$ihGP_v=5`zQ)Y5b4IaR ztpqrp^%9KF>02D|8c!9g4A$Aoy1AHZX7e$z!sQY62$0sP@^R)|7ZTclN~E_jb39pl4y{%QZGZ-!_#-ORX)!bTA$n)I0OwJ; z@#?bGEMR^w6Zx$tu!_J)R}-Q7*~sdZ+D#f3^LAnXR)l*a1BfhJ``?zIJ&kX^)hQrN zeD{nk3TBbpWh6daK@AXAr@C2C3q) z!*pxcus~kVnTJfi`U`Y2QDo%g`mbN-xGQtc&YoWZs9edZ!*FA;t(|X`8X*!$m<&6Y zBYmW!EV3}=Td(>$n*D*bpaIf{;0L;eii?y$foh=uPe9&AXAxp0{c%O9eYe2-cybhm zO@A&&rA_^%r3T0mlBe0!hAaOn^t4mJ6;7>kio!FECw4p=XGH+~{B-BnzPtdQ$Qoj6 zm}x7Y#%Z&^W@0DcMEu98*9-5P504y6_gd6*e@fhB*r5tQOk$SHxmfcU%OHveo5Hn} z7Q$GhKGw7|jW6vzdF2+J*r9;$&o;ATwR+|lzUm8zpCDEC-Ar0h51m$@YA#Xm8~mEB zJ*&v5H3b*3jrN)0Kct){tvx^^h^8K_5J%puF`pN34^-Xg>vjmDF=rTF;S-FnTy@YW zGR}w{F&XPhwcb!->lQ-1Q9#w<&4#&gy%zbl_))u4GG2=s(|zN7=lbB@2Q!P2kpZNM zmKQFHn$HB%jOJ@%L7otAjlMFwc~W~%nYuFnCj{d;pE-{{z__Q&ziymsaCZoja^#y7 zrrNrI+`MJ=c60Z6gqr`FbzLts$-N3&JtDTcqP6!}6eNPD&OM_W`{oH0R?WmPyn}4qqFmI8d-6T)QD^$?_v%Y`%j{yw_&CT1)%F%(7hl__xP?+1=-je$- ze=&2kb9CWyao&R_fyNmBiv&Q+A<|nWK#K*CT9Mv=BW>0?be}%esJVnx&`M z*A3V|G3?MhF!Y0t;A|#Jh_%NUsF4EhkBPNF+vsHS2C*21!Hm9!ju{+6doi0e-Any6ao3c)2=(=j&>yc)n)iI|%7cXk&5sO6SU6m77zhj9!6NfyRW9Y)a0QxiR_U zT9i__JmmTWtBS^pzza78-L8^xy8jM_tXbTFMrC`V0H$v+`pUDHP3-Id(j25wq?6 z&7J7|qUXUgZ#!%{NI+=o@tO;|cKHyRC-h3ZgutqsiHYf#=iUiq zDG++qy1oOWoEq-0X4Y|KHs%=Lh%r3#_`}@}>orM$=Yfe0b$-G`(?ge7Mo5@?LA^FOp@& zr3AR+YyS3OWo(Iwb4&hXzjO2|KAs}Iy32XF33SZrD5Sgc-g(`bZ{!Z_$@%-Xg}PTw z#93?cFQ^{|vuB!3Y>E^KpNMo>BSPT!;1A)n-^jIlL~%}Ob~!vC0lIb~q~1oa>6uoK zO#slUg96PD-wXYedY`2t)>CM=2Tr`i?B+Ks!TjWMyGXcu(@M$qwTo}H<1PN+@9+zi3r9)i5XkuE{wE8fU2oXkfN$7x%P$5v(9?-A>X*&z5tE?KzCd*nfPDqL!c z)b`u2BZkb7d9_Qr-+I{(k5)XZDL-d$-z^oS0O=6|e;yR``@afioEN}fY@jGIy)bw%57uQ|()ASH^_V5E(YqxefC zZW#sp?&52gR@WAr=&wGL`3-OD_;n`DpuC}s(L~m`4No4f)%&T@pPQ9SNzi7#c&?46 zvhvv1SV+A(Gqs=ygS}hAq}jE{G3FJJwtrvb)rB4c)a0E0%%vPKSkO z1>Rt1=d{j)4c-uAq0S$k@(M~CCS9pJG>&)9loWi+%Tto9=6+0Zb*K}^WT&5)#@G(U zDNAoEb1yAgmFZ^IRtcuBZRXXI zoWR1{@p!n(#zhKIyxzQ&+2HCO__=u|sJKN%l=A1>Y*oMPz7=+g|E}|Ly5kfqm9gRG zC-g@92u`*vOFKY>R9o7~OZd>dM-C6mOSmn7b=tmu*;qb2wOXb&$}KQ4I=JVO7MT?} z)LdZ9L~$?_oPIA_pXnNBmWXkLmL78TNF?G;3;n6_u>6}hw>{e46c@uIk8XSL!IJyF zTQaBgYPjP8fWf{H0;(r` zdZy>se8k1()uNIo1nGg{iMlG~lhLCEh=R%~p|w$DN;4Irk;^g<(}LC*aEtY%-P3+S z9)I<8$X_QrH8&$Tla-129P?0*q5jOq4TBPeA;EvqBnqJ*%9Qq8m*HJVn~*f>CTeFq zbqS-eWo__9?JT>pxKkPuT%gt;1o+z=$c*Gryl0&+7p**BHP0Ysw#SR zt8>$#f`pY3pXAwUeiiCz$kdxx3T_PbYQdUibZ-7HPXd+#O$Io`y$*9k7BrSxzVSAg z;mbx5`=cQPwyJq)bz%qlkzLJWP?Nai0Qd&n$!@-z7OqS51EU=xc9%qdpRB0~tIWMm z3hqBe8)84z)tg>^9f)?EC44u%sf`k`cWiW`7}rFs4?TZrLNF|ACK+}%95GfxIcx7u zb^JVQ=2=;M+GK7$=M+awPolr^R*a(*`SoR=4lGmwx9^Lq_G`zl`We51Io~PUvrar{ zzik$QkQ>Fgpq@ZB*9y`3>Rq?Q`Y#fq2j03!o`~C#Px~Fggw|TM*8E+yv+BxIH6Tbl zdBSsFP*h*ip>x7X0u0)xV!NcK7U9^hyJQ}c>$I{u2fM>u`vc)3roLV@r}#xW^W$$@ zpZJjKbXK!E4`Coo!zg4Hj$7zpr@IZ*={U`mQP%;49`}!if&#lw6e|y^1ndaer6Slwq=(YH(sQ=jno86G^+Fcml1d zVvhq3$!nefsBPRidc$^!RVAA7OCATg?$@H!GVlo^LnO_CD2XrGhN^9_q&$yNWGVMP&C-`^mhpOmLwZ85JMw5P~ll>3?{qm^?wd-Fw zjd`K@b?=(=di3$wr9=R^&47l<@3jXP4r>C-u9{9v8hUpr?37aHT_JR}Z)7|R=(TpeGNDKra}4IRA4JT>+P-5?hEC*=4JRv&2{= zOoXq;D0#VyTpk-w5NI~dF)K@WvA9}zhw1KUc9jBXL~DAU0p10{{8?U4$Od#vQe)Q( zvpO@*NNm!j3~j+BoIm^!vHd6zbC0u1%rbFe<-h>LSDb2{gx&IzRW)0jROf8JMWi{{ z4e>~ftdY#n1i!;19TnvTrTd};Un9-Sxb1J6BMZ?D=C zb!|r?6jerO%z5vM#!D1vvjj~3M&Gh~L5RJV*&z}=qU=7AgC1`0YyXvgl=-+9`aLfcW9f(iQ-F#JGS zrEDloKxim;N$G;?W!(P7l^8YsnwTh<1me~m3dYnr$!IF$rzNL z)|!bCaf=5T4a+|g5D*ED&Tr#ayG^R&osMPa87WB8*to>2PH(>}(sj~~aggB`>6|blR+87;!W!14EZ^Ht`tuG&76X5=H6v zgOduT%Zg-X;y7*whBHe1Ig(6iMlc(kG@6y+ka+rT$&MUmEWhUj>|e?yY3RjcdH+!Eq^VB_bw_&I_6KOGI(6!Kl1ktmAm(6@y)^g zgo)b0ngpyKz3y*p(9IMXF3&=m#aS3e8kMnSrJ08*Np*hnV0%roPSm@#W1gHc5N~|L ziriV?0`;CH+)@@e{vFZH`3|?tWeTgzBhsB-}FAt+sjLt1`^v;FP3js1DQr1gf#+CwY3|kv*>i}Nx7b^y zdY^UWU^gNsJ=KW16~U$DcPmlhFPzWK6htN-QJ^%+)=ZN$OcHxU%3Pbm4mNz^4}%%* zS@*D+`2V6{U{K2d+{8Qnwz^s%0mekC!`dL*UX9&5`cZ>!az zw>J5}jq(lgYH6Rp#>WaJ$^7nI$Vg`_Egd<2$Ik9jz0Uc~j2jpnn#2fOmPin3To>s- z;HXID{Fp>|AA>eoUL7(iG*zl~5jFAYD7=yANIMB`h1k7)1b*ts*~&yOY-tni>) zD;`m}W&7TDZRb{(SE<@ONUSRvgmOAFWu$xUD0knyb>_as^@7I%y8g1k&j>pSBZS8E zl4^IHt=;3+PyW|j2UQPU@_l2`jC(|mi>8J#kA;PwHm~qX=VuUL;K`4|HfJWPYjZG4 zGYZYRRBSq{GK0rSgo=IRzxev{#+oSE%1ATh>&f{&+#QfM^NesHN>Y!^q(DBQg+UGF z9hXAidA9@`6Y>xd$y*XsJ?Us%`C&(!1l|cB939YDC2VaLkE|Va+ukj{o@8M7I4HaH z`_>8p)8&&!LDgVQWmJ%{NLSjcu1N#zLxq%1ahx79A|m5BCaTA!t~i<|iOG|uZSor1 zn??g1+MZ%bUVcPGd;AZF8_5}|pkTmCoHT>GgbBB9T$B|_OsPVO%g~J!Z+ge659QQH zlR4XJMt0p-!J0M8N@q6`P%>X0LI}UbhuAM=y z_qxZn62o8k`%vqEy0+!F?pCIOCw*Wu$y1U!RN!}a2eSQVU;p;f{Z?9!stai`oUNTS zUv##(oG4@JTY0N)d2UO1c?U63{JB7aK-gEy;S#X^IBSJm^gbBe8?7iBzADpF-R@F0 zB9CynD@>F5?gg#BR2trfGh7g-yIkHCn76m%C^>@gW-l(8MzSQ=RRtp5Rv#_dl@aO( z_B85eu0%*bc}t7Za>G7efd7WKyzMEEz%4uH!GskEF*s+GR?SoDS7AG{l?Er`^pF>K zdu>6QAyzKYzPHmKkXeI;tR#3fd$Fc8!PBNcHtAW-=c)=dgJD5G9D8N-1l!+SBuj7N zd?H`!yTnaj10L`s!*Kq#Zjr_}}{P$ux!Kj-`Sf<3YZMAfGYefrKCH}f3nNQIR z<(Tg?FjRP;^$|z=GBr$zgF)|{FWZItuCZcTDFqSH5Bq~8?(^J$(}38?4QR$&GdCmYKsPWidC^w)lQ0f+A$L*S}Waj+l@wx|SG z%U*$yFwevwAWPG?R*V#zN99EFF-j%Mu`FbmRYMA< zg0mUGfKQNMQLBE>$?UB&SgDmt)T718fuqLKH@B_p#W&mt1^rD5l&YQD++4I7$iTqx zn=e^_I*aRD(<*qf?G_jcxd~ss5}PQ22g&g9Jw810)=KQH3KbrQFb$LO%8-1~oR$}H zXt3M_Fg4lr%kx;Mn5coT1C?n@TweNvZ@!m=DE?55lbSNyYR;n=Ug8)Re=;3_2r`yo zegJBr3nmqlIYjUSoNjxt1U+wf--4H7{>2v-9^Nu*n?H>cD8$3i(TD`Alxr7f5>>H^;KVC$VKVR6QUQ@UlCbr;8mMHA}1Bwo|=ebtID4xFi|gWBGnnK z)*@zT(!-d;vBN$W?ViW=BR%EsNnvQ3jvFu~H8jb@HNa^x+-+oj6+BLnb+gF*=1c|} zSFOXygx}*q)#MY8L0F(nOFyPWs>z%&c9sIqHp~iN%Pd94D2%oJX`5}QbnNDPL1vP8 z3fCZiobFb%F#TP&DymMS{msp`yI%YvIN&9mQGoB?T2V%0GF7nps2V&j96*-&l-f1- z9%%9{S_UQUlXy7tk;C|Bj8bQ@;A@eO$9B0ia;IR3YVpSDw!>J!K2+j47S%8jjMbK( zY%C{Z5278G2ZvcXFg?JEoD_Ux&ubGsH{w5=UBeNdao)WGqqJI#J`;_HUj&_qh&3@o z$XZj$zly3)tW5l?`LjKG>fpV|E_Zx{N;xIlI<5bar|~Vb{Y0ylyW{WuL?ArC>QbcrEqr(1a`J>VcNg-Vupm1eb15n!I)+9#;znzc83r z^N9r86vK&$h~jI)?UD@dk?MdytC1a4(Y~Kn|I0ZzI;5G>f*K|fpsiCCq_V)nG=K+|~74pp@Jg_$Ih6 z7enC>X-63_3b+m4F^jHw zG<0?cbp<2$1TVmilN#R_5|}O(~~W5-%p0wPmPE& ze^Vf6K37U*kcClvY|n(x#_kOQWYQ4t0#lEUc`b)X@bRDL5-bIoi49Sf#hBV z(cG`Y)DPb>|72Enu$zjH)P`Zz3r>*_y=TK5g9WE} zCm!|a_y*g@?)9z`Z4F9kftILq%rq;Dm>RDNE6w<2=N9?!On-;M79#*UCvMs2k!$!a za~iXSB=g(epXZjFmDL6-AXo@auPz=rX7S^71}o6~x`STf7VbJm{ia!+>mi{uvy&L8 z0aAaBX2*j`JGxG{D!Tw7F3_!W!2B$8wGmT4-ZjULpdy55vK8|rA*z5q|Y7aK?(fT%S3 z<~bkp2U5^)*5eSn?UU0*9A+{jO}qH?z~Gy8ce`p|p+9Smd8NHT&p42{#|VcKN6*F= zz|&**9yzA(F3Mg%S?UDl4aDzZM`Nb-gHFg?svej$^}+i%0}V@IMnG9T#3!cVaaCs0 zEoCmzjAyfi9CyM|QcHyxJqWyuhfcD=W?CzhCQ+{aH9mB{E#}W4NiTYmu)b|UE^eJZ zY`(r|p%cCBuIQOi@(gb`-%N}(%o5YI4f_=0&g8NMAB(rk*-w!V=hy*^E5rmGF9OL)=yr0@?%x~eDl9VC||>{g4}MXgjY z+c3oN4OC5x>cdkm*=y}Aex~Q$yZd8`&qUCfyX;=obXh(8j-AE2xt;$g(bn!{=Tz>( zGq?=gUZ+hJyORrx01F7D%OOT^2VJ?-xGCAVu&TGf`^a+6Y4-&FdP$?~K6MZ+t2>@Y z@PW~_+hR4&!0kyJp<@(55vZ&yUO0PIEESet+YzA-x@-Q?j$GB6b9t>n@rAk@#>aBG z>MK>%b9B#!EA-j#`%E4j6ApHv2#qEGr`h4RX7?UZ(xE3bQR=Lr(1#<|$#Pz-UD3B8 zsY-_NY!N@HeII@=Xq{Uk()utu$_-_}ORhl9&3Pcb=*EB2cB-61^c*2#kO6oBnapv9G^>Qwhoj z^L@d={TZ>5tS-1QxR?LJ-n)QVlGSyBjerQ^#~>)fL%fqMFQ+3r-j7<4$;#~NPN|of z*+oNFk$ocKL}ql|yf?Xzs>*Ikn{S4Zhcdd(uI{?5i}H=*C?4mp_SF}>Yw66jCw&!n=quj)vp@0kFaFqHf8&1&9(d0uzWV`?@Wa;g{_@xU%eR^T zAAe}M_l+yBf8i&d`kDtnefquU-|oK5{6+NgpKgBBk39cfOYi@lr+oN1@A?P-`1d~k ziMw9@`19ZPRqfQdNwnXmnhul?dX;9vN+?T0?};TQb+`OnNh z)a}jnAAZ)Gzu^b&f9P$!Pkrw3zw?3inU{U`_xqpu+&}&4fAQQuZhYyFANzwJf6g0! z?x{Ck{rvxS^`CXwt9~2jw)gQnKk|pa_0`|_u|NAr|DT?F%X|Lx8Twm3^Opbny!+%| z_{|^r;I-eobjOG8{F(ommkC^!&g4}^4q@UnO81+_*uXE%;wwAFTLPj|IXtt{U7gs z=zCxM+duTj4}Gxr!XJN5s^7izl>6WOl9m7My^sH|Z~yd9e)$)kx&G8Yddhd4`<(Xs zKm5usze<1hgI{>y+6y21M_=<}_kR2*zwUy3_?OyG{^2`*`K{;Q^NtTc>+(~+{7Q05 zeLVVwPrv$mwP)P@qhERa`Tyj3PyUOq{eyr1Z<1%fe{~fk@PeOy^RuE4J@Z$uec-qL zkEcHR(Acv#`)8~_N5nn>giv8zWbrS`rfC!_osjAA?r)u@X#wi`RRw@+Pi=G zD<5ii-uhkN|GM9M(w!gv{4YHC>KFg(_nloyL6i4=^XDJ>!p9ch_Bs0}oTokQ1Mm8W zAAIw>Kk~B2{?Q$ud+ftc`tM(S(*OJ9zj){!fAVWT_t?$v`NF+F`?0OHg*Vyn``BMR z{XakQ&el`^=9~ZWrQ6TB^lyImDbIZRzuovBzVz~IU;OylpZQyN{m{?<@?Zb>x3+)% z@h^P(SH5%ozdZEPOJDx^ANZS{Pd)QR5C2!^&p-LmH=fsD@VC$Y)wkYw_0L?t@cj2R z=DzP&-tYr|{@TC#m#zQ$man|{(o5dCdggPFz3>Ct?>z5G(Xti&$v6M`pRPaiu8*F2 z;m^M2Z++}n-}3n9+&}xmy>~zK!auj(@$&!kH~v+!uyXz1waMT7^4Grm<}a;21}*FT zztj2Qulf7m_^%#$^3~V<$&0T2_4j=3rTBmP4~;M0{J-Av*_XZQk?@}1`O}Yn`lWyP z_h03npZm)1zvjY2-?Q}Q_rB*h00w`@8z>gwCAjLJ^?e_C!xzuo@vHAY{n_vPuYT*B{^6@uzW>wj zd6?w8Xdv1F|H;?~dSW>C;hRQcAFie$Yq7hFaEI~le(Sh*W7gda+pH50 zw^A2=!d#{9$GcB`1cqt9sI zpE=g+b<(ik@{B>gj&HMrW_X>xkD-Qs7{79V~r-DtHt{37e{R&SN}dT77< zovRnl(<_f&o|8YHNt-?1>0X{Ym9S=)-<5y=U47o!8TocC-QpeA+TbI}#QEgj(P_JTwwJ@R9&MVX(cOZR+##Tzgye zaW?Jt7UjBLp2MKqotSse z@sQe>&`px^W_+G)$#I3e6>V;@&ei#r_zDm7(q2>kcsl=4^xefqH2ErT@~BrDCvR=C zR>ZfkTeO6a-n@Aejl^NdL(2h4IzHEI&P>hMy+AX=AhvDK4?H`O<5yiGW49&hZn0)_ zj}=lI5_+kwP^aJI^K^LDX{GV=V0~8CmhWvWFUfvum%+A~=U7Ro*=7)EwvR&@x=y0; zFm!b8F+Z}x$(F%9=rX7cseT!fv=xI2MpxpD{2^bAiAaS-o^9E#tA$`ySST~rnC+Vy z514KzuH_gJn{17&-PTCyG^vfLev#VOSaW`aRxVsxIGZm|&5^k|SMbW41GYIA^KR5h z1@9pCx6oqEokw`1x5*pb9_#hHjds%5Y4^?a60& zE8cFWIH&U^7B?sFwN-YF#}~qfak$U%9z$<~t3Yt?E@z!+a}|9>yu^;*m@!;%qWrIy z=fsIo?Lw+vYO8Zo@$moodGtFrzFG0AJVb#Pmt^~-bq zygzSBo{;nTCZ{1{ARC=DUShqBa&O>y;_-Af(VxWV4I)$G@HYNT@#p2a2p0=uiKlry zj5XVeU5#;E={)pZ*N&Y?kDSYMw1{G0%dMDG%c?KpJ-!w4IA&p!;~GlR4ZMv>4MYI> zdBEbtT&|_vKJLj!#67uIOtsYorF7D0%nEdP!a%ZA9Vfc=Xp76!m0yXTmgP;W+@E-{GQzS!=xH#)pq(0P*H;PUS4_S)hM(RPXeV7zmA?oLw=OkWpm(-Zj8 zvgR%8=3UjtVmC}2ul$(n&b#jLV^QR|wmer^YZz9xNnCVKCr5O@nvaLJkmSp>)lYkL z%0SeaM6ktftoG!4j*v~Z1l2A?piIdpF3)*}>lv{dXt8C0CYft!0q2(H`XP&Wy?Ys87`aZ``7b=hoRKg~*9DPQEJv;&@-vy{zt zCw&C-U`@G9{cvy=&#<(~;|2uvUboR}H!wl@VP5itod06c^S>&wVxp=CX#odEYn4tz zMr}#Evvrzvi2{iD1XX80sT~D+3%k|d65Jaf)K*(|7ILfvc5|(bHEGZi^g)_pacH;& zeYg7HY*=1QqYYZGvZ|=v&qzP*p6*9ic~8tHKPk8_Gl^HcCs$sum@_0Si~iTw*RfBK z*Sq+ec%rz+D(fx8MU1fD?44>{zKrV*L#98)JLB%eZ8kXFd~3V6v(P=?C;FAAnK*vb z$6?qy%jAO4)kfc{(O-2b7il#}aL6VkMt01LIer21nNGOejdlkD5JdO#UTm{&clW&z z3_=p?g-kblP?cbnw}Z}Fmu*3nYtaQvnoZh@+V}#5xi~l}P^D;(d;CVP_5jMCA<*Go zWX+YzeM^0?_`Y_ugi~@U<=4fLm2ZqnKAEIcBbX8k-@nWwWSp|l<6~GP^SCr;aj?wL zi)_PYTIi6T!~$IlOv?ZVWsG@&%e@e+m)2oO=23eQ@9j(GDM{X9nBtIBB!hzWG+W)X ze1k2G%6p5W9u_wD3y6Gd* zvT>t%Tvw*ra*bS>YU@?y^YY5PuMKfwLKfd|rH~-j2iK;`4JnP0x#nAY(eBOVYi>C@ z`Xd}!Z9Rwy-X4tBq)VjCXajt%GFmqZ{m=_T&Gj5pvtwU}#U=1H!;PF!H+iUsZY`r# zdlCJeP)1wmSVMXrMtn#rX&A%s?}oAaYHfn6W{6ydY0yy;H4G zOsc|YBkZ{sIgVy|0c_PQ3bc?hu7zO$T{{XA-;t`_7)D!RnP_|;jF%2@u8>q@WxN=vunYBHeQWh&XgOh6G!+7x7*_ zzwMGG_fjh4{er_uxv22$NO@pjTowbC&*bJkatg)m>yV+u2nYIU0`tVG6r>FDMnK(e z!H;*fyWBd@udgw3Xylsppb@C>Z)z+qt}HiJp+)n?n;J`l?i+8qe7W_e#wo4z51ttM zES@oS4c4HS;Mc_tgg6%e~0@8Gl>8wGVrg`W>C7W)TIK1qdT2X_IJO z>S~4^1fCbVq+7t$>KSye*|Fxr@MR>C&m9lDUqjMrFQT7%lHRX`y#Ryk$nGtX+iVQQ9?ZE-D(IPK1jtANpD0OJA-J!#t{g9b`3xhfx)ItO- zz6GrnW^}|Z2$LZ!izD2QEYRYN%Yh5O5-i>>rk`7OrNvtxHe)kCOk!#B&&=57$TK|T zNdi$2qsgAJN1us8%db4+jy~hTKO`M7Sv$V8n2(*~u(3RBUz3v`<4CA=7qnob%=uKz zN!`vFf49E{-oLXVLK?s*uffoD^9pf>TCP~K)XjIr{c!5r#i|^Zbf|VhMx;YE>aR+N z)hLRJowW=18JPgFETcwi7%j-*L!?pIr(u6iVd|6L4q2#+P!750c&{Q;W+uL}aG1&V z(&-~YQBKnhP(ClLxxERKv$$wQuh`%wd?HuzTyB{aZ&uwHtSgDJ4NrAPTHLc2Fs!W< zuBFyS@pVo!7#dFX8Mqr59dZmKQ_r%MAnJjgwAmL&U1$aTM&)Dn>vDI6ZwSw5-gNfd z&=1sLjllums&J(T;Ml3|^hMSYc6BM?yhN;5WxscIQsBtc?(4|e5KmS1HlOBzPzH{S z@`g|3T2NX8W3~nlz*RX-IshZ?;E=87^q{=cRcS_%h_QiJ4t5Nz=}sSqABq$mbyZhg znZn@!-k}y2x)}>8ZvLd-%G|7IySNtP^cuoIM1P1c5f{DU!b!KT(jftX&>A<}k#I}O z_1Y@@@9-((E7v4;M5b$exIFiAZ2!wgj{YkecQ;D(G3KFHyaJakwYD#cn0#XU=b^)- zvp>#B9_oHmidy@knxcUzEIgJy?b0QN5uNU|uU5n&>S*Y4D+gwjDLLj*il{~+NnI*~ z``S&M&N1hk2xP>rt|s8%O%=iy$4ccvx=Iz>d;knf^--KV)km{sI!=}{Jknsx9G72x^ zz3FQDC&Klr77l~C7njn()O_Xs#;Ey)GECx2aV1J_E{;wy&f-b2;R9PB!v2eZthxrq zD3fcsk+IDDN>OQ~SE8pF?h-~n(K5x#Sq2f&FXfJ}hX zp{`jTikC?-9&7KAt09&$k&ZeGe;bN$%cBiv;crt3e*O(`vItrnR)HCvt zh!2@dLwP{k9cXx+9g$%v8oE4ZatHg5op)lypxa?!X`zA17)A^qT5JWbj>*tv-$gWX zE3UjwU(4Y3tTo$7IExT{5<+YMF(n8Cv`orDi#^kFozRIvO!S(xOfIF}ZOjC7f?Qup z7=Yb^Z?ro*<=8pMH99m8h4lBia znvHmC7Y{2nS@V$mUj z7|0VBgwq+Gu!hW^Kd^jJ1cB!AMIHoNk}nJk(TBQ=Ap2NHcz6;rWZ#9zmNOG8WC#K^ zoqEHL+KZUr6HUJG5uK5E4C@pah~o-OrZESRFShBq$oz73$ZLW}6(Z0f%NNQ6s*x{( zB=lpSBgjHW#x=4n49!pCNHg(0b1l;ieB9A=Nmc}j!0;X0w;;GklLJTyW%DRk9LP2*7%H~~ZV5uh1ti^m#pjkp&1%rGLy zh^<(@Abu2)@Y3B< z*Bmx}D1I=Hg~`6ov!JuI@Ql{w?6UcQ#Js@7A|f;yX{9<+o&cqRTu5#Ox@B5Az%;~i zPH6xnGL?-$%G+6I1|bGr8z(77d{{A&YC|58J=7?tdLge8T7>{=z)aPz-XbT6D5N$h za<7}UXhB%*Qi3&;wwipo;dK;%PuTz)rzl^1Gu_yvKO4KQe>2O?zdX0Nu+~`4s8Xd5 z0Thq{6HVI9#Qng$Ht}4RsTUExTW`+*YKFpbuhPH((E$u;m<)D}lsq1PR-=mNusbc3 zBY7tBXsPk7x|Jl?;H|Wfxo2>{3z>%>*H9$!&k+GpjZfiCHDbntYI{XDL)i?4kM)A( zk=v(+1tp>&C`hao3!s&5BNXv#4N3!RggXLujJRW?n{&q|{?Y{e4Cb_lu`B2Jjnf^@ zvc$3jN~lE=o=CbQ8MP*5DPk^+6hPzwgbx7`!ut`JhO4=TttWP3hIWLAG9sAaKqjRZ zY2s6b)Vi1T2{H}s7Ura*_ox92DKUH`;Q-YMYX%@B;9HW75K&(+0I|TGqQwi6fJiSm zji4W1a;@dwG}Xb>2~xC-$U*8>ks?6gl2eKs`y6|?lt0A!y|!3>Y5%H#Jz2mOGXQI; zMchN~6SLt-vkjm*dNzml<0XkN*JT(bidzQrV}=Ed2nG^qavF0JnfV<3v4+t`t=C9vtcoVlJE!)tatN`$9$Tt}1$wWC!PdonOE znNTc_Peqg1RfH@Q%Aq8xk%)WIZbhrey*mR1WRPs57!;L9>4?V1sdM`lA=S7|buCx> zTLKY`bf4=S>W*Z@Q(Dkci^@wme)_rKx94IHOYBuhuFKbLB-qa!f2flAw?^s5g@Dk><5umEl1QX_ z->GpjlA!BFX8ceVt&dEC&encZ<~^WDn;Tt?+=DA*TmdZM&>{%;lofkWQ6P``44CgW zlE{JP0(6PQMWmSL!@W*oNR3FV_9E@yeni?~Z9))j1x#Zt5BmmU+R~(E*Fy3c@~+ad zNQlO11ItDsvd;q@FiFU52W$t>WkdLSVHeeHVCwj0K!Ifnsrgm2>llM$#d--?0Lutm zVC355rAP1|dIi8J$46k#8wO09VtvPF*{gJuBrd?8ELSsPfRft;%Io_8;Ny`CiPrX! z&M&j7X36(pG&0ZsgeBh#hEt&(9SAolGf z;(A2L&~$k4f6RCA(e&X*F$tDOA|MVefRHQbt|{B`)tEs3Qo-TqoWSMPp z0vNX2Kz7}MXqiR}0wM-?B%MC^Hf2pSO7IdNGMAJU=`jGxV=Z!kRA(Ci!V8%jX`bbp zx^2Q#$Yrb);Jr3BWSP1LFVCG>KD&0$%KF;M^1b)ovm&FcSzh`BT_pH`B&)2GrG-`0 z+FV#!T3@@cKKQV-vV8XJ(uLQa7u>#Z5fQ?FW56USZi*@Dq$Rd?l-&m;FenpTmHkFuzI5;jk&_^iG3h1Nf6O-!Ivk z$p|izAE=62w8`P76Ru}b+)A3G@z=D|5P)!SGShJxWKU2`FFZYsOZ{dGfJp#(Y>+mB zy*r={u0X;Rz?UNQG50H%&|RG{G2uVmUi_FMDvB3Z~1qsDc(4a8PjV;rp z^T2W8?WCke@_{Ci7WfFk_d|!prWM%;ajXt;$k3-?Xlv# zKnT_;J1#qCc|wt9`NtL6yZ9{WI=U)HFonj1{@T6JNx{ELh*LBiVPMY2BL1Ea1dx)l zXc^8VmrHlB8Ep%fLWjqzi1g##LaD&r%htO+KnP|vrG&MG7JfL7R+(aQz;n^anjroYX|ty0B7zo$C?g-qcar;72tt_mun65f#@j_Dr+ZP|O)M0KonI4VZFs{*dLU*{tbhp5ezjkcf~3_UY= zk7%j%(>m_B9*UN+dI-hQ#_N=qfkRi6)B#rzi(A&y2R{&-5I;l0AwFE`mN1TEKN@2Mt)FMEA zA%xLi$P;P~JfV>PI3m(u+V_R40i2#$2=lXmpn=2%W&m?rj&>-xPwho?xGy1Wcryi` z7%Q1UxW>N|fRq<9+>n5T;U1DF)PXb74zRj@3}>NjIVgDTpl(xSdwLw27GU26C<%D~ zE`uusMb}R_NLa1^@u|hM01IrV9S`3z`rVa>m-g{75R_~hGzPe+MKYaWA63A zjYo3JkSi(Y^%cjM8`wHZgWDSSZRErxB3;TP0Xw!s2R?nn7Ak{cb0)G_Io0^`xd%}K z!j8rmU@_claS(zxZ zijkYBS?iHDgj$$BoX8rImIC0!BXio8L6KvYNY$%n!ga|a%hoItu!I<&38fq5Hq96{ zZLHAYdX|PgSwD15Y%^kcU@cfG-lC&ObeG-YnJ38t2qzxR1u;CC|8)y&tvGAjn;md>ab&J?3Ex6>px3k7O}59&#{I8b0eqo9lUZG>xJkOa!c!n*26M_j!F=NM!`7k006gwm@5!Jug*<>WCO{^ULn=N% zAQ0?~x@B6#tQZ=g%K`RLYfn*ok@oEHBg-fDba^p~vogy>iYVf&QN#?mP$)XCIer4{ z%p^28hjjykFANw$cN^>JvVf5fqlN>2Fj-4tAMGWvuO)_M1_6{}(~tsRp}&dtw5-8w zuQOB5BN>)$co_%6bwyma7cvNz45^7;6R3@U9>xGC*W?5 zEZHGhm4xp}D3JpblQJO;Ij|y+$1cjFYi0o3CUDmP(gqU|7Bhr_2SxTm6ZSD$CRGQP z80Uc;SBT?=PaC+zh$^Qs!Eom@B%RpIwNc76c6>(~Ab=p7_A2R$L4y2NvMeF?njnpF z(om5e9}_bGUJ%j@$W>0WVWsTXf;@_E@kDU~D<%7;f!2nttFz50AErrcGo>WMY~F*4 z3IqEL8SP;-K@CM|9H!eLKA^Rx(ld-QBYjXOd)sda?x$|Gl+XV3SF7K;+7i`j4`Z1I zjjOHC722vvovmuzg4kchzNL0BtD?R1heEg)$jpKUD>@!N9N61hX}!+0F{!(?$jqP2 z<0?#&Y8(s*-Y<*>tc?RAUyT{sWFdJFXg`|WClnpWb1b;@P=}&k6I6Q<{p?E~pmeim?Cfo}G?j*LjM+(7qa=m9zhN9Que2dA%okBn+CSJ5&e2cXn zBR1ogvB7uB)2RWOcHqpmJY;}!Uq`&BiKT!N9cfksc=5=!AoW8773@Hvh=rB-maXfF z79qA8Y1oN@;^~0nHq9h5f$5yYA=GJVO{9(n z1nlD{z4-cOspTF*YtMArTX+Blj_W|DzB?}WOuxgfPLU}i&BL^~#n;-|tJSx9O?rOr zK`9+xX$aYGMTmusCDz>x+pJURD67zlmkcq`Y>*(C4nLP7TDgZhmX}~V#2?hMKkv`$ zS)X%RDD*n((NCrhp+fgH%UCmvQ?`Zw&0D_t`uyoMrl)#4(Pq1)q2?8jQO*DcZOcRH zC{EzZEP+AT3SG;J64Y+cx`;f;-`*M>%wRKck>qm|V{|db%5=6^i*0Zkz+kINrKj=z zgT+1#niYF2hphtKQrZgfCW$mOWxz|gj3MaE;~``XE2esBm^BZ5RQ`;C@*Fv*cDL87 zlu;e-p2RHbz9PfPWuf7f$Z_g3HbXD64It8l5G|>M2NH8k%g{`$1M>ox!*{XAjN{m~ zQ2xTxB8nfheFM1Io{i#Qu@P7SM;d~ioS+#4lH3nHq$0Tc_P>3sEK1ZCuqi~^%i(u=+Xv(sy&2?1|AX) zU7(p8N#p}TGTdXv4vg;b-61v6ilL8qNKj)DS_E8_9w9vjRc-hQnz2gV=sjk9tDR$o zN{@TYSfwuA3EE?o5>k82SfxJB37WA=p^H6ctb)paf@Z9Ox4g%URUkx9(2P}3_4b&t z3S!fgXPk+O+=zn6h6rIBsQm#^5q3U{+Zw#Rs5)yKA?#LVQIUij`bU_QNB~lrecVZ# zO+pbrHArNy&uTxVl3RbOkVu!y^0pXPE|?XMs0(E(8PCJJkc*)zS>1aOfl9LFaQFFa zk3kGoNukdfTA0W0OJ`^=!Ll_7#DHGYGwhtFxz;rut zEfn-)M=+mEEOij)2n1JMqqt)!mIkh&!(0<{jslJe0LF(YJ-^a=Y(s-_Svx>e`SpaR z)WyfFKSO7UOnI zhZ9`>JU~s$owD-#@9OgouKDh#1D%8=w!vFHae&ZSmeAD zIg1BM0>+};1rfr6%|uvo+7r8h2eBGS%A4_dIAz3p0tuG>kC?KIdLg7N@f)GE6<>F; zX-&S$n>;GPV{N7Y)VU#Wb?{1-?JmEBs6z{seU~LksI3F0KH{<@AFAk_#}}k9g~lHQ zirvjx#$U#1Au?D4JPV4D%5bq9V-F?HfCI!ks25qBmBx0beGRkfN+7&S921`EF#**F zycMw?1&B*SfUuBHavoqVywo0|%XmLiE zfV=^`D;b=IdTwww@|Nsk%w!s$ee8!Cfbyc#D{=ZRif}mUsDZHbZA22``(|_SP}1(B zk{lprh!DDWHGm>>o#O%g*~B(-I%t&{@8+g5dh{H$0D)6UG1)qsuP_m_r4)h|9ydIPYPLNLoha9|e zC^-NLIMEGeL|za%_0fT9FQT9N=)lo6$rgL$TvKF*V3#XADY%mOVqI+vHSk3TT1{F! z;;^E!3$5k=#Rz2*5;t}N&2bs@2`ab8ViX(kJpj4rp6HO_Tt#p?9!RKloHWl z>oZn5#H_`~;qX}bOnygfu})UcQLOnOl_kNAv6?ZuX&N~NOgjj=MHJ2~9GTxMj;$A0=s*Hhjc!Sy}hAEgESZ2=M1h(jWW4VVA zT!dc4U_;`?P8+OD@-iT3A&MauNLM(_F_@!lj@qIg1TraJ?(in$Fp2`EuCo@>q>=W- zy9f;KKujYRN8DM;I&$y&>1qy(Lc~ctUoJcVw`dCf>fxXr;ALsR1r4-V_fQ*N=Z+K9)`!V?RXt)AQG6y?8-_k_AqBSh z$FCU#kBku8g}5cEOB))f;TQ%EjslM`(O5@xvmk-Gl^Jag%MBb+gz7Uy6@UVC50*k) zB!HsUaiPRKFmsTZH7Fomp^RaL)aT>|d(O#^J?_Bh3Sqz`Vg_z7>XI26S@;<8M!9Kt zW9L*_Kijb8odJco?&y3y9W|;@XGp_;*u%s}1e1Y147~&)UxCdLDKoaK(dI&i6kI^k zX$k6XQMyBfql7InL#D$+>M@pq9oOv!MqW=6qy2aQSHtXVEf!Wbl#m5x8(3i!8Q=ms zs&`uBhdn_*hGzj+8Px6T$Vjjq7Xq3Oo0w&|Ob3`BN2J&Ir^a6LmkQn~ zuQ+1l`@O`9dy$%&2)R~m$Rzg+SROv8aWi^t02Y=hMMqJXA(to$^;tD=-I+XYU5!*} zch%$8GiiM|Y(4w>$RVR>@byWPYFAB_4sKCwD7D+LI@ODvcCU?tBUlKX&Em{YHBY0( zd)M2YtMfg1V`cabiZnktG?3b+Ple+1Yxe|^ysIRTROw(bQ=7oN zT&Qd71i_wNW2gH7lo!z9xm~3uP1u;64IUv;oIEzDCRJ8xf^_x9`95%dVB-RVt+0n( z)8;2FHzoywc~Z|OA%c^^7;+9Ud>7{5pCHblCe~M}0L-9f`=@$4r%$i?G|y%H=)QDT@JSoQY49F%nCDovbar~;MQ zL5J^#Lm>qiWHTrmMIxBIg57OR1ZrAh9TC9cILZznEJ%S4wtSf$S!fnbkj}bD{2aaP z^GkC8DI{JN4@xQF47sO;74h$pHx*>DCBYLUJUf1YPM@18F3$}fI@S1g(ag9KI~6Gt zl1P0=<26k+OHFkFp?(R^g>-Bk>N(0U*@-O<`^c16qov98ubeVYx|k&hWEg~1jW)3V zYGx}usCJLzK{d%A52~3D=s_j@5)Z10n>0qH3y4}&bsVTs;1x7^oEiBe&Tfon)W;_% zpU7(9=b|`a8FfKQ8jP#LK)pxEz%K4S(x%DVM*#xl?aKoN=ua6a5CiNHNkkm(APSY$ zJr_PH#4DkMhY9~pgb($;KD8Io&vbo#XHj7z+ChX#CzalpUf~Gj6x@Lh5n9RtZ4U;F z8IzZ+c%+hqBQGg=d((DW(t31J6rh8}MN1F&rmh0;mBb8o;Z83N#@c4U9GzZ;7so%bbh?;%h;i7t3`S z!*;LNmSx;}{6=q~iFi8ERfKv1nNpddzM)m=D9$hL${n6{+uG;@oj|m3RmSAep(s^l zq2o;BnaIDOwpw&;SN#i0%T>MY*V;VA~5Z0 zX36i@vKUlFCoK3-jisG-Laxt+0X&@=Nzty=GvOn{LCLiD5q6BA3+(&;*($Nm-Px)Y z#IEiD?*air@b+@Bf(MsX>I7-u+5CuFN?jbg@LGs;$-tTUA@GUD#@-Q6aF4qLV2uHItCA3hD;zeX-YE!`cMO z&O8AAa=(1Zp>YUIR&B+ez)UumT}8-Rz3`gE1_0O*)r8V_2%>NSL5LU=;FjAgW_oCw z`WP;&_995@cI2{ZlGB7-R;^L2c!kTVNg8--43{0xJ@L+1o?GV4$HQgSR%?XIsx8+p zT$Y?d$H-xKaTFZ_hgDmxBj>Oq(ke)G)ObLm?X<+$T{vtISKl9qu`ZlNN!^4(dB2QCjod7=}9sFp35Yog{_~aagq% zr_N!QV2GP?F?8RtOcK{M{6C>bCP2;vR3_AV~l-0@bL4WROjpZuZRkOd?TDvPIeYs@5o)93zSjtc+xmmY=fdZ5IHL z4k}7%p{~OQZ!=gld{}Jbz@~p(KM0YDH5#k#FkQD<;^InnD4HLN5GspXARTTdJh72i zkn5_WDFvg=AprsP;{a%q1Qv2s80w>i$a_P90WSn%f}8k>GzlLt#NN^Y5b6`gh=bbd zc0|~wHhN3|&+kOA@Yp_N3an&ZKR2%&k3_Dv{UZ{&+SXPj^5u(-g*XQEvUF!utQ)EH ziH|zpCk@R*1P-hyBC%*bYg94*0}bmy)97m~==fIcoK}h8+`^(*#>(zbH2|kf0b49jWhxo9GV6KSagb@olZW8k-UOgF z`zis*K&<16!KtY~Rv(8`eekejan!Dk>Oxk~ERNnxPm9^J)-#GBo~TU=xjH#@>V1_m%%>}Y;i0K7@HY6O5OvIfRfjWDe>Q$J+~r>tNevhkRz5tG9><-H!P ze#9W62CyysVuGrq<4Sj8=J@@A}JXB#G~oO7vI8~2#8iV0=7 z`vY<=K)s?SdW0}6oiJcs)VmKulvVz(i zIHc6Q$Y4Kh)DKn-p0*x&cAQ2rP+ovMyRma_?c5{h((60tng#moR{A&Z`278M+(G}1 zN1uH_8GRNN%S=ZH)3TjF6uYadV6utIeAfZwIuY({DUFn*>kNEu5v5&$LfHk{X439# z2^)8Vh3!5t;s9<*fN^!vGrun0X$Mk40a8v|jei3N~h6k4x2drHZ02SW0LWl)A zsv+CJqzVGS-!q%g*zo+2&sFV3yjLI9a-#7Z@5@f$0L2k5oC6)CLAiC-==56xO%_sB zl5X^6>L_3y(`d7?#esL09X>!mq7qR<@-%{`64BA-oL-2y#aT|e^8>4hD6zAmC#Z#2c{vEi@dgJy|(jy~l;ZMn$lBYn=4_JA#WiyvQl0*;vpx?x1NQ1jHGiMG;71ivyXFK zKm-$4FS5umaE(D3fL{e_ZHR2yfDyW|SzE{I?P$?2CdQ(&Z0v~FW<0FO`73gs#AWk<3VLLE%0A!%Hy^|0QxWXkSNK6!i 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

3iOHUuT@oEn$)3A$WA)tZuoU~j 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 literal 0 HcmV?d00001 diff --git a/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt b/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt new file mode 100644 index 00000000000..809108b857f --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. diff --git a/packages/tychon/build/packages/tychon/0.0.58/changelog.yml b/packages/tychon/build/packages/tychon/0.0.58/changelog.yml new file mode 100644 index 00000000000..c3c87258df3 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/changelog.yml @@ -0,0 +1,5 @@ +- version: 0.0.58 + changes: + - description: Fixed incorrect types in field.yml and cleaned up formatting + type: enhancement + link: https://github.com/joeperuzzi/integrations/pull/5 # FIXME Replace with the real PR link diff --git a/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs index e39e88b253d..4daf6354078 100644 --- a/packages/tychon/data_stream/tychon_cpu/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml index a65baf9d532..c975fdfbb18 100644 --- a/packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml @@ -1,67 +1,67 @@ ---- -description: Pipeline for TYCHON ARP Tables -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [network] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for TYCHON ARP Tables +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [network] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: "{{ _ingest.on_failure_message }}" \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_arp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_arp/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_arp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_arp/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml new file mode 100644 index 00000000000..a52c5ee4b63 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml @@ -0,0 +1,197 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + Direction of the network traffic. + 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: |- + 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- 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 diff --git a/packages/tychon/data_stream/tychon_arp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_arp/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_arp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_arp/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/manifest.yml diff --git a/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/agent/stream/stream.yml.hbs index e39e88b253d..4daf6354078 100644 --- a/packages/tychon/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml index 72a2b96542a..83acb15d7f3 100644 --- a/packages/tychon/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml @@ -1,88 +1,88 @@ ---- -description: Pipeline for TYCHON CPU Information -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - gsub: - field: host.cpu.speed - pattern: "[^0-9]" - replacement: "" - - convert: - field: host.cpu.speed - type: long - ignore_missing: true - - gsub: - field: host.cpu.clockspeed - pattern: "[^0-9]" - replacement: "" - - convert: - field: host.cpu.clockspeed - type: long - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for TYCHON CPU Information +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - gsub: + field: host.cpu.speed + pattern: "[^0-9]" + replacement: "" + - convert: + field: host.cpu.speed + type: long + ignore_missing: true + - gsub: + field: host.cpu.clockspeed + pattern: "[^0-9]" + replacement: "" + - convert: + field: host.cpu.clockspeed + type: long + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_cpu/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_cpu/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml new file mode 100644 index 00000000000..e4ce9dde8f0 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml @@ -0,0 +1,176 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- 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 diff --git a/packages/tychon/data_stream/tychon_cpu/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_cpu/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_cpu/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_cpu/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml diff --git a/packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs similarity index 100% rename from packages/tychon/data_stream/tychon_patch/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..22570ba4e4c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,108 @@ +--- +description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: vulnerability.due_date + value: "1970-01-01T00:00:01Z" + if: ctx.vulnerability.due_date == '' + - date: + field: vulnerability.due_date + target_field: vulnerability.due_date + output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX + formats: + - strict_date_optional_time + - epoch_millis + - date + - "MM/dd/yyyy" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [vulnerability] + - set: + field: event.type + value: [info] + - script: + source: | + if(ctx.vulnerability?.result == 'fail'){ + ctx.event.outcome = "failure" + }else if(ctx.vulnerability?.result == 'pass'){ + ctx.event.outcome = "success" + }else{ + ctx.event.outcome = "unknown" + } + - convert: + field: script.current_duration + type: float + ignore_missing: true + - convert: + field: vulnerability.score.base + type: float + ignore_failure: true + - convert: + field: vulnerability.year + type: long + - set: + field: vulnerability.scanner.vendor + value: tychon + - set: + field: vulnerability.category + value: [oval] + - set: + field: vulnerability.classification + value: cvss + - set: + field: vulnerability.enumeration + value: CVE +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_epp/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_epp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_epp/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml new file mode 100644 index 00000000000..de55a4d1fda --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml @@ -0,0 +1,228 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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 field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_keyword +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: host.type + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system version as a raw string. + name: host.os.version + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + 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 National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_patch/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml new file mode 100644 index 00000000000..b1dc5ee94f8 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml @@ -0,0 +1,33 @@ +title: Vulnerabilites +type: logs +streams: + - input: logfile + title: Vulnerabilites + description: TYCHON reports on tens of thousands of Vulnerabilites, this data stream reads in the results as upserts to your Elastic database. + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Vulnerability Results Location + multi: true + required: true + show_user: true + default: + - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cve_info.json + - /var/log/tychoncloud/eventlogs/tychon_cve_info.json + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - tychon-cve + - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json new file mode 100644 index 00000000000..cd07585f2b8 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json @@ -0,0 +1,8 @@ +{ + "tychon.id": "564D3240-42F3-6AE9-5634-12D3BB4842E5", + "tychon.campaign": "bd31e9ba-1756-4fd5-b463-ec712ce4dd8e", + "tychon.realm": "TYC742586751BDC4383A8388F974883333E", + "vulnerability.id": "CVE-2022-25315", + "event.outcome": "fail", + "event.created": "2023-02-07 16:28:07" +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs index 90702aae1c6..019ad423b43 100644 --- a/packages/tychon/data_stream/tychon_epp/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs @@ -1,23 +1,23 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml index 8c3bbeacd7a..4b044aee00e 100644 --- a/packages/tychon/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml @@ -1,67 +1,67 @@ ---- -description: Pipeline for TYCHON Endpoint Protection Datasets -processors: - - dot_expander: - field: "*" - - set: - field: '@timestamp' - value: '{{_ingest.timestamp}}' - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' - - set: - field: ecs.version - value: '8.8.0' - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for TYCHON Endpoint Protection Datasets +processors: + - dot_expander: + field: "*" + - set: + field: '@timestamp' + value: '{{_ingest.timestamp}}' + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' + - set: + field: ecs.version + value: '8.8.0' + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_exposedservice/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_exposedservice/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml new file mode 100644 index 00000000000..c29f4029e57 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml @@ -0,0 +1,197 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + Additional information about the build version of the installed package. + For example use the commit SHA of a non-released package. + name: package.build_version + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Package name + name: package.name + type: keyword +- description: Home page or reference URL of the software in this package, if available. + name: package.reference + type: keyword +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/tychon/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_epp/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_epp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_epp/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json new file mode 100644 index 00000000000..4b3beb399a0 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json @@ -0,0 +1,13 @@ +{ + "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", + "package.product": "MicrosoftDefenderAntivirus", + "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", + "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", + "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", + "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", + "package.revision": 200, + "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", + "": "Succeeded", + "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", + "package.installed": "2023-01-3009:21:18" +} \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs index e39e88b253d..4daf6354078 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml index 245b06f1437..be29d467bde 100644 --- a/packages/tychon/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml @@ -1,78 +1,78 @@ ---- -description: Pipeline for Exposed Services -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: source.ip - value: "0.0.0.0" - if: ctx.source.ip == '' - ignore_failure: true - - set: - field: service.name - value: "{{process.name}}" - if: "ctx.service?.name == null" - ignore_failure: true - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [network] - - set: - field: event.type - value: [info] - - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for Exposed Services +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: source.ip + value: "0.0.0.0" + if: ctx.source.ip == '' + ignore_failure: true + - set: + field: service.name + value: "{{process.name}}" + if: "ctx.service?.name == null" + ignore_failure: true + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [network] + - set: + field: event.type + value: [info] + + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_harddrive/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_harddrive/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml new file mode 100644 index 00000000000..e9c7a68e0ac --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml @@ -0,0 +1,239 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + 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: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: SHA1 hash. + name: process.hash.sha1 + 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: 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: |- + Name of the service data is collected from. + The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. + In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. + name: service.name + type: keyword +- description: Current state of the service. + name: service.state + 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: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_exposedservice/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_exposedservice/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_exposedservice/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml diff --git a/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs index e39e88b253d..4daf6354078 100644 --- a/packages/tychon/data_stream/tychon_arp/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs @@ -1,20 +1,20 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml index 3d924cbe5e0..60abac9c0b3 100644 --- a/packages/tychon/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml @@ -1,71 +1,71 @@ ---- -description: Pipeline for the TYCHON Hard Drive Dataset -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: disk.size - type: long - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for the TYCHON Hard Drive Dataset +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: disk.size + type: long + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_hardware/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_hardware/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml new file mode 100644 index 00000000000..e4ce9dde8f0 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml @@ -0,0 +1,176 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- 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 diff --git a/packages/tychon/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_harddrive/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_harddrive/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_harddrive/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml index 1bf708d2ab3..ec00b2777d6 100644 --- a/packages/tychon/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml @@ -1,70 +1,70 @@ ---- -description: Pipeline for Hardware -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - lowercase: - field: device.present - ignore_missing: true - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for Hardware +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - lowercase: + field: device.present + ignore_missing: true + - set: + field: event.module + value: tychon + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_host/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_host/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_host/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml new file mode 100644 index 00000000000..bb5d4f6e3c0 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml @@ -0,0 +1,185 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_keyword +- description: "The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. \nOn iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application.\nFor GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user." + name: device.id + type: keyword +- description: The vendor name of the device manufacturer. + name: device.manufacturer + type: keyword +- description: The human readable marketing name of the device model. + name: device.model.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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/tychon/data_stream/tychon_hardware/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_hardware/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_hardware/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_hardware/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml index 46f52b94213..286f6620da7 100644 --- a/packages/tychon/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml @@ -1,92 +1,92 @@ ---- -description: Pipeline for TYCHON HOST OS -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.memory.size - type: long - ignore_failure: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [host] - - set: - field: event.type - value: [info] - - remove: - field: tychon.definition.oval - if: ctx.tychon.definition.oval == '' - - remove: - field: tychon.definition.stig - if: ctx.tychon.definition.stig == '' - - convert: - field: script.current_duration - type: float - ignore_missing: true - - set: - field: host.security.antivirus.exists - value: "false" - if: ctx.host.security.antivirus.exists == '' - - lowercase: - field: host.security.antivirus.exists - - split: - field: host.security.antivirus.exists - separator: "," - target_field: tempav - - set: - field: host.security.antivirus.exists - value: "{{tempav.0}}" - - remove: - field: tempav -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for TYCHON HOST OS +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.memory.size + type: long + ignore_failure: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [host] + - set: + field: event.type + value: [info] + - remove: + field: tychon.definition.oval + if: ctx.tychon.definition.oval == '' + - remove: + field: tychon.definition.stig + if: ctx.tychon.definition.stig == '' + - convert: + field: script.current_duration + type: float + ignore_missing: true + - set: + field: host.security.antivirus.exists + value: "false" + if: ctx.host.security.antivirus.exists == '' + - lowercase: + field: host.security.antivirus.exists + - split: + field: host.security.antivirus.exists + separator: "," + target_field: tempav + - set: + field: host.security.antivirus.exists + value: "{{tempav.0}}" + - remove: + field: tempav +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: "{{{ _ingest.on_failure_message }}}" \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_networkadapter/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_networkadapter/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml new file mode 100644 index 00000000000..3dd1f484316 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml @@ -0,0 +1,90 @@ +- 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 field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: Operating system version as a raw string. + name: host.os.version + type: keyword +- 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- description: Error message. + name: error.message + type: match_only_text +- 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 diff --git a/packages/tychon/data_stream/tychon_host/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_host/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_host/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_host/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml similarity index 96% rename from packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml index 08db5fe566c..913f57a575c 100644 --- a/packages/tychon/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml @@ -1,115 +1,115 @@ ---- -description: Pipeline for parsing TYCHON Network Adapters -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - remove: - field: host.adapter.ip - if: ctx.host.adapter.ip == '' - - remove: - field: host.adapter.gateway - if: ctx.host.adapter.gateway == '' - - remove: - field: host.adapter.dhcp.server - if: ctx.host.adapter.dhcp.server == '' - - remove: - field: host.adapter.dhcp.lease_obtained - if: ctx.host.adapter.dhcp.lease_obtained == '' - - remove: - field: host.adapter.dhcp.lease_expires - if: ctx.host.adapter.dhcp.lease_expires == '' - - remove: - field: host.adapter.driver.date - if: ctx.host.adapter.driver.date == '' - - remove: - field: host.adapter.wins_server - if: ctx.host.adapter.wins_server == '' - - set: - field: link_speed - value: "{{host.adapter.link_speed}}" - - set: - field: host.adapter.link_speed - value: 0 - - script: - source: - | - if(ctx['link_speed'].contains(' ')){ - String[] linkSpeed=ctx['link_speed'].splitOnToken(' '); - ctx.remove('link_speed'); - ctx['host.adapter.link_speed']=Long.parseLong(linkSpeed[0]); - if(linkSpeed[1]=='Kbps'){ - ctx['host.adapter.link_speed']*=1024 - } - if(linkSpeed[1]=='Mbps'){ - ctx['host.adapter.link_speed']*=1048576 - } - if(linkSpeed[1]=='Gbps'){ - ctx['host.adapter.link_speed']*=1073741824 - } - } else { - ctx.remove('link_speed'); - } - ignore_failure: true - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true - ignore_failure: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for parsing TYCHON Network Adapters +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - remove: + field: host.adapter.ip + if: ctx.host.adapter.ip == '' + - remove: + field: host.adapter.gateway + if: ctx.host.adapter.gateway == '' + - remove: + field: host.adapter.dhcp.server + if: ctx.host.adapter.dhcp.server == '' + - remove: + field: host.adapter.dhcp.lease_obtained + if: ctx.host.adapter.dhcp.lease_obtained == '' + - remove: + field: host.adapter.dhcp.lease_expires + if: ctx.host.adapter.dhcp.lease_expires == '' + - remove: + field: host.adapter.driver.date + if: ctx.host.adapter.driver.date == '' + - remove: + field: host.adapter.wins_server + if: ctx.host.adapter.wins_server == '' + - set: + field: link_speed + value: "{{host.adapter.link_speed}}" + - set: + field: host.adapter.link_speed + value: 0 + - script: + source: + | + if(ctx['link_speed'].contains(' ')){ + String[] linkSpeed=ctx['link_speed'].splitOnToken(' '); + ctx.remove('link_speed'); + ctx['host.adapter.link_speed']=Long.parseLong(linkSpeed[0]); + if(linkSpeed[1]=='Kbps'){ + ctx['host.adapter.link_speed']*=1024 + } + if(linkSpeed[1]=='Mbps'){ + ctx['host.adapter.link_speed']*=1048576 + } + if(linkSpeed[1]=='Gbps'){ + ctx['host.adapter.link_speed']*=1073741824 + } + } else { + ctx.remove('link_speed'); + } + ignore_failure: true + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true + ignore_failure: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_patch/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_patch/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_patch/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml new file mode 100644 index 00000000000..5d02886421b --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml @@ -0,0 +1,98 @@ +- 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 field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: Operating system version as a raw string. + name: host.os.version + type: keyword +- 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long diff --git a/packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_networkadapter/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_networkadapter/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_networkadapter/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json new file mode 100644 index 00000000000..19c53d20731 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json @@ -0,0 +1,63 @@ +{ + "host.adapter.dhcp.enabled": "true", + "host.adapter.ndis.version": "6.30", + "host.adapter.driver.file_name": "ftvnic.sys", + "host.adapter.driver.date": "2020-04-09", + "host.os.name": "Microsoft Windows 11 Pro", + "script.current_time": "2023-08-13T01:00:03Z", + "script.type": "powershell", + "host.adapter.virtual": "true", + "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", + "host.hostname": "DESKTOP-AF7CIQM", + "host.adapter.ip": "", + "host.hardware.manufacturer": "Dell Inc.", + "host.adapter.driver.version": "2020.4.9.0", + "script.start": "2023-08-13T01:00:02Z", + "host.adapter.subnet_bit": "", + "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", + "host.adapter.mtu": "1500", + "host.os.organization": "", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", + "host.adapter.domain": "", + "host.adapter.vlan.id": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "HYLCKG3", + "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", + "host.os.version": "2009", + "host.hardware.bios.name": "Dell Inc.", + "host.type": "Workstation", + "host.adapter.media.connection_state": "Disconnected", + "host.adapter.ip_filter.enabled": "", + "host.adapter.dhcp.server": "", + "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.hardware.owner": "justin.skidmore@tychon.io", + "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", + "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", + "host.adapter.dhcp.lease_obtained": "", + "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", + "host.adapter.link_speed": "100 Mbps", + "host.adapter.is_win_server": "", + "host.oem.model": "XPS 17 9710", + "host.uptime": {}, + "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", + "host.adapter.driver.provider": "Fortinet", + "host.adapter.wifi.enabled": "false", + "host.os.build": "22621", + "host.adapter.mac": "00-09-0F-FE-00-01", + "script.name": "Get-TychonNetworkAdapterInfo.ps1", + "host.adapter.dhcp.lease_expires": "", + "script.version": "2.3.36.0", + "host.adapter.gateway": "", + "host.oem.manufacturer": "Dell", + "host.os.description": "", + "host.domain": "", + "script.current_duration": "1150.99", + "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", + "host.adapter.alias": "Ethernet 2", + "host.hardware.bios.version": "1.20.1", + "host.adapter.subnet": "", + "host.adapter.media.type": "802.3", + "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", + "host.os.family": "Windows" +} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..8b177f1461f --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs @@ -0,0 +1,23 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true + \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml similarity index 100% rename from packages/tychon/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_softwareinventory/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_softwareinventory/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml new file mode 100644 index 00000000000..a97473593ff --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml @@ -0,0 +1,228 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + 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 National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml new file mode 100644 index 00000000000..b73c0500bbc --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml @@ -0,0 +1,27 @@ +- name: vulnerability + type: group + fields: + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason. + type: keyword + - name: iava + description: Vulnerability Iava. + type: keyword + - name: iava_severity + description: Vulnerability Iava Severity. + type: keyword + - name: result + description: Vulnerability Result. + type: keyword + - name: title + description: Vulnerability Title. + type: keyword + - name: version + description: Vulnerability Version. + type: keyword + - name: year + description: Vulnerability Year. + type: integer diff --git a/packages/tychon/data_stream/tychon_patch/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_patch/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml index 26cbade110e..665cea654f4 100644 --- a/packages/tychon/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml @@ -1,112 +1,112 @@ ---- -description: Pipeline for Software Inventory -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: package.installed - value: "1970-01-01T00:00:01Z" - if: ctx.package.installed == 'installed' - - set: - field: package.installed - value: "1970-01-01T00:00:01Z" - if: ctx.package.installed == '' - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - gsub: - field: package.size - pattern: "[^0-9]" - replacement: "" - - set: - field: package.size - value: 0 - ignore_failure: true - if: ctx.package.size == '' - - gsub: - field: package.version_build - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_major - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_minor - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_release - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: package.type - value: rpm - if: ctx.package.type == '' - - script: - source: ctx.package.cpe = "cpe:/a:" + ctx.package.name + ":" + ctx.package.version - if: ctx.package.cpe == '' - ignore_failure: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [package] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for Software Inventory +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: package.installed + value: "1970-01-01T00:00:01Z" + if: ctx.package.installed == 'installed' + - set: + field: package.installed + value: "1970-01-01T00:00:01Z" + if: ctx.package.installed == '' + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - gsub: + field: package.size + pattern: "[^0-9]" + replacement: "" + - set: + field: package.size + value: 0 + ignore_failure: true + if: ctx.package.size == '' + - gsub: + field: package.version_build + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_major + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_minor + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - gsub: + field: package.version_release + pattern: "[^0-9]" + replacement: "" + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: package.type + value: rpm + if: ctx.package.type == '' + - script: + source: ctx.package.cpe = "cpe:/a:" + ctx.package.name + ":" + ctx.package.version + if: ctx.package.cpe == '' + ignore_failure: true + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [package] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_stig/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_stig/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_stig/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml new file mode 100644 index 00000000000..a2ef95d3e65 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: Package architecture. + name: package.architecture + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Time when package was installed. + name: package.installed + type: date +- description: Package name + name: package.name + type: keyword +- description: Path where the package is installed. + name: package.path + type: keyword +- description: Package size in bytes. + name: package.size + type: long +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: Package version + name: package.version + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- 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 diff --git a/packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_softwareinventory/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_softwareinventory/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_softwareinventory/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml diff --git a/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs similarity index 94% rename from packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs index 9d64e35f110..7c6bcbb900a 100644 --- a/packages/tychon/data_stream/tychon_stig/agent/stream/stream.yml.hbs +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs @@ -1,22 +1,22 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml index 2bf85b3687b..adba1f3f519 100644 --- a/packages/tychon/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml @@ -1,78 +1,78 @@ ---- -description: Pipeline for parsing TYCHON STIGs -processors: - - dot_expander: - field: "*" - - set: - field: '@timestamp' - value: '{{_ingest.timestamp}}' - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' - - set: - if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" - field: rule.result - value: '{{rule.test_result}}' - - remove: - if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" - field: rule.test_result - - set: - field: ecs.version - value: '8.8.0' - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [vulnerability, configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true - - convert: - field: rule.weight - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for parsing TYCHON STIGs +processors: + - dot_expander: + field: "*" + - set: + field: '@timestamp' + value: '{{_ingest.timestamp}}' + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' + - set: + if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" + field: rule.result + value: '{{rule.test_result}}' + - remove: + if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" + field: rule.test_result + - set: + field: ecs.version + value: '8.8.0' + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - set: + field: event.category + value: [vulnerability, configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true + - convert: + field: rule.weight + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml similarity index 100% rename from packages/tychon/data_stream/tychon_volume/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml diff --git a/packages/tychon/data_stream/tychon_volume/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_volume/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml new file mode 100644 index 00000000000..391f14d1819 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml @@ -0,0 +1,203 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + Additional information about the build version of the installed package. + For example use the commit SHA of a non-released package. + name: package.build_version + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Package name + name: package.name + type: keyword +- description: Home page or reference URL of the software in this package, if available. + name: package.reference + type: keyword +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + 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: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/tychon/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_stig/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_stig/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_stig/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json new file mode 100644 index 00000000000..4b3beb399a0 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json @@ -0,0 +1,13 @@ +{ + "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", + "package.product": "MicrosoftDefenderAntivirus", + "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", + "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", + "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", + "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", + "package.revision": 200, + "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", + "": "Succeeded", + "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", + "package.installed": "2023-01-3009:21:18" +} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..4daf6354078 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs @@ -0,0 +1,20 @@ +paths: +{{#each paths as |path|}} + - {{path}} +{{/each}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +{{/contains}} +processors: +{{#if processors}} +{{processors}} +{{/if}} +json: + keys_under_root: true + expand_keys: true \ No newline at end of file diff --git a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml similarity index 95% rename from packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml index 6a281c93c67..6e78994a285 100644 --- a/packages/tychon/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml @@ -1,99 +1,99 @@ ---- -description: Pipeline for TYCHON Volumes -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - set: - field: volume.block_size - value: 0 - if: ctx.volume.block_size == '' - - set: - field: volume.freespace - value: 0 - if: ctx.volume.freespace == '' - - set: - field: volume.percent_full - value: 100 - if: ctx.volume.percent_full == '' || ctx.volume.percent_full == 'NaN' - - set: - field: volume.size - value: 0 - if: ctx.volume.size == '' - - convert: - field: volume.block_size - type: long - ignore_missing: true - - convert: - field: volume.freespace - type: long - ignore_missing: true - - convert: - field: volume.percent_full - type: float - ignore_missing: true - - convert: - field: volume.size - type: long - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message +--- +description: Pipeline for TYCHON Volumes +processors: + - dot_expander: + field: "*" + - set: + field: "@timestamp" + value: "{{_ingest.timestamp}}" + - set: + field: event.ingested + value: "{{_ingest.timestamp}}" + - set: + field: ecs.version + value: 8.8.0 + - set: + field: event.kind + value: state + - set: + field: event.module + value: tychon + - gsub: + field: host.mac + pattern: ":" + replacement: "-" + ignore_missing: true + - split: + field: host.ipv4 + separator: "," + ignore_missing: true + - convert: + field: host.uptime + type: string + ignore_missing: true + - split: + field: host.uptime + separator: "\\.+" + target_field: tempuptime + ignore_failure: true + - set: + field: host.uptime + value: "{{tempuptime.0}}" + ignore_failure: true + - remove: + field: tempuptime + ignore_failure: true + ignore_missing: true + - set: + field: volume.block_size + value: 0 + if: ctx.volume.block_size == '' + - set: + field: volume.freespace + value: 0 + if: ctx.volume.freespace == '' + - set: + field: volume.percent_full + value: 100 + if: ctx.volume.percent_full == '' || ctx.volume.percent_full == 'NaN' + - set: + field: volume.size + value: 0 + if: ctx.volume.size == '' + - convert: + field: volume.block_size + type: long + ignore_missing: true + - convert: + field: volume.freespace + type: long + ignore_missing: true + - convert: + field: volume.percent_full + type: float + ignore_missing: true + - convert: + field: volume.size + type: long + ignore_missing: true + - convert: + field: host.uptime + type: long + ignore_missing: true + - set: + field: event.category + value: [configuration] + - set: + field: event.type + value: [info] + - convert: + field: script.current_duration + type: float + ignore_missing: true +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml new file mode 100644 index 00000000000..efacb477dd9 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml @@ -0,0 +1,110 @@ +- name: id + description: TYCHON unique document identifier. + type: keyword +- name: tychon + type: group + fields: + - name: id + description: TYCHON unique host identifier. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: long + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: version +- 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: biossn + description: Host BIOS Serial Number. + type: keyword + - name: ipv4 + description: Host IPv4 addresses. + type: ip + - name: ipv6 + description: Host IPv6 addresses. + type: keyword + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: text + - name: organization + description: Host OS Organization. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml new file mode 100644 index 00000000000..58d1699586e --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: input + type: group + fields: + - name: type + description: Input Type. + type: keyword +- name: log + type: group + fields: + - name: offset + description: Log Offset. + type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml new file mode 100644 index 00000000000..12e093bbe93 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml @@ -0,0 +1,176 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/tychon/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml similarity index 100% rename from packages/tychon/data_stream/tychon_volume/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml diff --git a/packages/tychon/data_stream/tychon_volume/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml similarity index 100% rename from packages/tychon/data_stream/tychon_volume/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/docs/README.md b/packages/tychon/build/packages/tychon/0.0.58/docs/README.md new file mode 100644 index 00000000000..ec787c21055 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/docs/README.md @@ -0,0 +1,1166 @@ +# TYCHON Agentless + +[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source Master Endpoint Record data from endpoints, including vulnerability and STIG results, without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) + +## Compatibility + +* This integration supports Windows and RedHat/CENTOS Endpoint Operating Systems. +* This integration requires a TYCHON Agentless license. +* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. +* The Linux Endpoint requires RedHat's [OpenScap](https://www.open-scap.org/tools/openscap-base/) to be installed for STIG and CVE to report data. +* This integration supports Elastic 8.8+. + +## Returned Data Fields +### ARP Table Information + +TYCHON scans Endpoint ARP Tables and returns the results. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| destination.hostname | The Translated Hostname of the IP in the ARP Table | 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.name | | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| network.direction | Direction of the network traffic. 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.interface | The interface the ARP Table has associated the destination. | keyword | +| network.state | Current state | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Vulnerablities + +TYCHON scans for Endpoint CPU's and returns the results. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | keyword | +| host.cpu.caption | Host Cpu Caption. | text | +| host.cpu.clockspeed | Host Cpu Clockspeed. | long | +| host.cpu.family | Host Cpu Family. | keyword | +| host.cpu.manufacturer | Host Cpu Manufacturer. | keyword | +| host.cpu.name | Host Cpu Name. | keyword | +| host.cpu.number_of_cores | Host Cpu Number Of Cores. | integer | +| host.cpu.number_of_logical_processors | Host Cpu Number Of Logical Processors. | integer | +| host.cpu.speed | Host Cpu Speed. | long | +| host.cpu.virtualization_firmware_enabled | Host Cpu Virtualization Firmware Enabled. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Vulnerablities + +TYCHON scans for Endpoint vulnerablities and returns the results. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | +| vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | +| vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | +| vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | +| vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | +| vulnerability.due_date | Vulnerability Due Date. | date | +| vulnerability.due_date_reason | Vulnerability Due Date Reason. | keyword | +| vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | +| vulnerability.iava | Vulnerability Iava. | keyword | +| vulnerability.iava_severity | Vulnerability Iava Severity. | keyword | +| vulnerability.id | The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] | keyword | +| vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | +| vulnerability.result | Vulnerability Result. | keyword | +| vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | 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.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | +| 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 | +| vulnerability.title | Vulnerability Title. | keyword | +| vulnerability.version | Vulnerability Version. | keyword | +| vulnerability.year | Vulnerability Year. | integer | + + +### Endpoint Protection Platform + +TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| crowdstrike.service.falcon.signature_version | Crowdstrike Service Falcon Signature Version. | keyword | +| crowdstrike.service.falcon.status | Crowdstrike Service Falcon Status. | keyword | +| crowdstrike.service.falcon.version | Crowdstrike Service Falcon Version. | version | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic.service.agent.status | Elastic Service Agent Status. | keyword | +| elastic.service.agent.version | Elastic Service Agent Version. | version | +| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | +| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | +| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | +| elastic.service.endpoint.ransomware | Elastic Service Endpoint Ransomware. | keyword | +| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | +| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | +| package.description | Description of the package. | keyword | +| package.name | Package name | keyword | +| package.reference | Home page or reference URL of the software in this package, if available. | keyword | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| trellix.service.accm.status | Trellix Service Accm Status. | keyword | +| trellix.service.accm.version | Trellix Service Accm Version. | version | +| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | +| trellix.service.dlp.version | Trellix Service Dlp Version. | version | +| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | +| trellix.service.ens.status | Trellix Service Ens Status. | keyword | +| trellix.service.ens.version | Trellix Service Ens Version. | version | +| trellix.service.ma.status | Trellix Service Ma Status. | keyword | +| trellix.service.ma.version | Trellix Service Ma Version. | version | +| trellix.service.pa.status | Trellix Service Pa Status. | keyword | +| trellix.service.pa.version | Trellix Service Pa Version. | version | +| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | +| trellix.service.rsd.version | Trellix Service Rsd Version. | version | +| tychon.id | TYCHON unique host identifier. | keyword | +| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | +| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | +| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | +| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | +| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | +| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | +| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | +| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | +| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | +| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | +| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | +| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | +| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | +| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | +| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | +| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | + + +### Endpoint Exposed Services Information + +The TYCHON script to scan Endpoint Exposed Services and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| device.name | Device Name. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| 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.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.sha1 | SHA1 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 | +| 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| service.description | The description text on the service. | keyword | +| service.display_name | The human readable name of the service | keyword | +| service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | +| service.state | Current state of the service. | keyword | +| service.status | Service Status. | 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 | +| tychon.id | TYCHON unique host identifier. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + + +### Endpoint Hard Drive Information + +The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| disk.adapter.serial_number | Disk Adapter Serial Number | keyword | +| disk.boot_from | OS booted from this disk | boolean | +| disk.bus_type | The Disk Bus Type | keyword | +| disk.clustered | Is the Disk Clustered | boolean | +| disk.firmware_version | Disk Firmware version | keyword | +| disk.health_status | Health status of the disk | keyword | +| disk.highly_available | Disk is marked as highly available | boolean | +| disk.id | Disk ID | keyword | +| disk.is_boot | Disk is a boot disk | boolean | +| disk.location.adapter | Zero index adapter location | integer | +| disk.location.bus | Disk Bus Location | integer | +| disk.location.device | Disk Device Location | integer | +| disk.location.function | Disk Function Location | integer | +| disk.location.pci_slot | PCI Slot location | integer | +| disk.manufacturer | The manufacturer of the Disk | keyword | +| disk.model | The model of the disk | keyword | +| disk.name | The friendly name of the disk | keyword | +| disk.number | The number assigned to the disk | integer | +| disk.number_of_partitions | Total number of partitions on the drive | integer | +| disk.offline | Is the disk offline | boolean | +| disk.operational_status | Operational Status of the disk | keyword | +| disk.partition_style | Partition style | keyword | +| disk.serial_number | The unique serial number of the drive | keyword | +| disk.size | Total Size of the disk | long | +| disk.system | Is this a system drive | boolean | +| 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Hardware Information + +The TYCHON script scans an endpoint's Hardware Configurations and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | +| device.class | Device Class. | keyword | +| device.description | Device Description. | text | +| device.friendly_name | Device Friendly Name. | keyword | +| device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | +| device.manufacturer | The vendor name of the device manufacturer. | keyword | +| device.model.name | The human readable marketing name of the device model. | keyword | +| device.name | Device Name. | keyword | +| device.present | Device Present. | boolean | +| device.status | Device Status. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Host OS Information + +The TYCHON script scans an endpoint's OS Configurations and returns information. + +**Exported fields** +**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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.deviceguard.basevirtualizationsupport.available | Event Deviceguard Basevirtualizationsupport Available. | boolean | +| event.deviceguard.credentialguard.enabled | Event Deviceguard Credentialguard Enabled. | boolean | +| event.deviceguard.credentialguard.running | Event Deviceguard Credentialguard Running. | boolean | +| event.deviceguard.dmaprotection.available | Event Deviceguard Dmaprotection Available. | boolean | +| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Deviceguard Hypervisorenforcedcodeint Enabled. | boolean | +| event.deviceguard.hypervisorenforcedcodeint.running | Event Deviceguard Hypervisorenforcedcodeint Running. | boolean | +| event.deviceguard.secureboot.available | Event Deviceguard Secureboot Available. | boolean | +| event.deviceguard.securememoverwrite.available | Event Deviceguard Securememoverwrite Available. | boolean | +| event.deviceguard.smmsecuritymigrations.available | Event Deviceguard Smmsecuritymigrations Available. | boolean | +| event.deviceguard.systemguardsecurelaunch.enabled | Event Deviceguard Systemguardsecurelaunch Enabled. | boolean | +| event.deviceguard.systemguardsecurelaunch.running | Event Deviceguard Systemguardsecurelaunch Running. | boolean | +| event.deviceguard.ueficodereadonly.available | Event Deviceguard Ueficodereadonly Available. | boolean | +| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Deviceguard Usermodecodeintegrity Policyenforcement. | keyword | +| event.deviceguard.version | Event Deviceguard Version. | keyword | +| event.deviceguard.virtualizationbasedsecurity.status | Event Deviceguard Virtualizationbasedsecurity Status. | 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.ufi.enabled | Event Ufi Enabled. | boolean | +| host.architecture | Operating system architecture. | keyword | +| host.biossn | Host BIOS Serial Number. | keyword | +| host.cloud.compute.name | Host Cloud Compute Name. | keyword | +| host.cloud.compute.resource_group_name | Host Cloud Compute Resource Group Name. | keyword | +| host.cloud.compute.resource_id | Host Cloud Compute Resource Id. | keyword | +| host.cloud.compute.subscription_id | Host Cloud Compute Subscription Id. | keyword | +| host.cloud.compute.tags | Host Cloud Compute Tags. | keyword | +| host.cloud.compute.vm_id | Host Cloud Compute Vm Id. | keyword | +| host.cloud.hosted | Host Cloud Hosted. | boolean | +| host.cloud.network.mac_address | Host Cloud Network Mac Address. | keyword | +| host.cloud.network.public_ipv4 | Host Cloud Network Public Ipv4. | ip | +| host.cloud.network.public_ipv6 | Host Cloud Network Public Ipv6. | ip | +| host.compute.location | Host Compute Location. | keyword | +| host.cpu.caption | Host Cpu Caption. | text | +| host.cpu.count | Host Cpu Count. | integer | +| 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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.memory.size | Host Memory Size. | long | +| host.motherboard.chipset | Host Motherboard Chipset. | keyword | +| host.motherboard.serial_number | Host Motherboard Serial Number. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| host.os.edition | Host Os Edition. | keyword | +| host.os.extended_support_license | Host Os Extended Support License. | keyword | +| host.os.extended_support_license_expiration | Host Os Extended Support License Expiration. | date | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | +| host.os.suportted_plan | Host Os Suportted Plan. | keyword | +| host.os.vendor | Host Os Vendor. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.security.antivirus.exists | Host Security Antivirus Exists. | boolean | +| host.security.antivirus.name | Host Security Antivirus Name. | keyword | +| host.security.antivirus.state | Host Security Antivirus State. | keyword | +| host.security.antivirus.status | Host Security Antivirus Status. | keyword | +| host.tpm.compliant | Host Tpm Compliant. | boolean | +| host.tpm.digest.id | Host Tpm Digest Id. | keyword | +| host.tpm.present | Host Tpm Present. | boolean | +| host.tpm.version | Host Tpm Version. | 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 | +| host.uptime | Seconds the host has been up. | long | +| host.virtualization_status | Host Virtualization Status. | keyword | +| host.virtulization_status | Host Virtulization Status. | keyword | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Input Type. | keyword | +| log.offset | Log Offset. | long | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tychon.definition.oval | Tychon Definition Oval. | date | +| tychon.definition.stig | Tychon Definition Stig. | date | +| tychon.id | TYCHON unique host identifier. | keyword | +| tychon.version.agent | Tychon Version Agent. | version | +| tychon.version.content | Tychon Version Content. | version | + + +### Endpoint Network Adapters Information + +The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. + +**Exported fields** +**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 | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | +| host.adapter.alias | The Alias given to this adapter | keyword | +| host.adapter.description | The network adapter description | text | +| host.adapter.dhcp.enabled | Is DHCP Enabled on this adapter | boolean | +| host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | +| host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | +| host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | +| host.adapter.domain | What domain was assigned to this adapter | text | +| host.adapter.driver.date | Date the driver was installed | date | +| host.adapter.driver.description | Description of the driver | text | +| host.adapter.driver.file_name | Driver File name | keyword | +| host.adapter.driver.name | Name of the driver | keyword | +| host.adapter.driver.provider | Company that provided the driver | keyword | +| host.adapter.driver.version | Version of the driver | keyword | +| host.adapter.gateway | Gateway IP Address | ip | +| host.adapter.id | ID Of the adapter | keyword | +| host.adapter.ip | IP Addresses assigned to the adapter | ip | +| host.adapter.ip_filter.enabled | Is IP Filtering Enabled | boolean | +| host.adapter.link_speed | Link speed of the adapter | long | +| host.adapter.mac | Hardware MAC Address | keyword | +| host.adapter.media.connection_state | Current Connection State | keyword | +| host.adapter.media.type | Current Connection Media Type | keyword | +| host.adapter.mtu | MTU Size | integer | +| host.adapter.ndis.version | NDIS Version | keyword | +| host.adapter.subnet_bit | Subnet BIT | integer | +| host.adapter.virtual | Is adapter virtual | boolean | +| host.adapter.vlan.id | The VLAN ID | keyword | +| host.adapter.wifi.authentication | The Authentication method used to connected to the WIFI Router | keyword | +| host.adapter.wifi.band | The band used to connected to the WIFI Router | keyword | +| host.adapter.wifi.bssid | The Connected WIFI Router Hardware Address | keyword | +| host.adapter.wifi.channel | The channel used to connected to the WIFI Router | keyword | +| host.adapter.wifi.cipher | The CIPHER used to connected to the WIFI Router | keyword | +| host.adapter.wifi.enabled | Is WIFI Enabled | boolean | +| host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | +| host.adapter.wifi.signal_percent | Signal strength to connected WIFI Router | integer | +| host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | +| host.adapter.wins_server | The WINS Server attached to this adapter | ip | +| host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | keyword | +| input.type | Input Type. | keyword | +| log.offset | Log Offset. | long | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Software Inventory Information + +The TYCHON script scans an endpoint's Software Inventory and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| package.architecture | Package architecture. | keyword | +| package.cpe | Package Cpe. | keyword | +| package.description | Description of the package. | keyword | +| package.id | Package Id. | keyword | +| package.installed | Time when package was installed. | date | +| package.name | Package name | keyword | +| package.path | Path where the package is installed. | keyword | +| package.publisher | Package Publisher. | keyword | +| package.size | Package size in bytes. | long | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| package.uninstall | Package Uninstall. | text | +| package.version | Package version | keyword | +| package.version_build | Package Version Build. | integer | +| package.version_major | Package Version Major. | integer | +| package.version_minor | Package Version Minor. | integer | +| package.version_release | Package Version Release. | integer | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint STIG Information + +The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| benchmark.generated_utc | Benchmark UTC. | date | +| benchmark.hash | Benchmark SHA256 Hash | keyword | +| benchmark.id | Benchmark ID. | keyword | +| benchmark.name | Benchmark Name. | keyword | +| benchmark.title | Benchmark Title. | keyword | +| benchmark.version | Benchmark Version. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | +| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | +| oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | +| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | +| package.description | Description of the package. | keyword | +| package.name | Package name | keyword | +| package.reference | Home page or reference URL of the software in this package, if available. | keyword | +| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | +| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | +| rule.benchmark.title | Benchmark Rule Title. | keyword | +| rule.finding_id | Benchmark Rule Finding Identifier. | 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 | +| rule.oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | +| rule.oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | +| rule.oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | +| rule.result | Benchmark Rule Results. | keyword | +| rule.severity | Benchmark Severity Status. | keyword | +| rule.stig_id | Stig rule id | keyword | +| rule.test_result | Rule Test Result. | keyword | +| rule.title | Benchmark Rule Title. | keyword | +| rule.vulnerability_id | Rule vulnerability id. | keyword | +| rule.weight | Benchmark Rule Weight. | float | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | + + +### Endpoint Volume Information + +The TYCHON script scans an endpoint's Volume Configurations and returns information. + +**Exported fields** +**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 | +| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | +| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | +| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | +| agent.version | Version of the agent. | keyword | +| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | +| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | +| elastic_agent.id | Elastic Agent Id. | keyword | +| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | +| elastic_agent.version | Elastic Agent Version. | keyword | +| error.message | Error message. | match_only_text | +| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | +| host.hardware.bios.version | Host BIOS Version. | keyword | +| host.hardware.cpu.caption | Host CPU Caption. | keyword | +| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | +| host.hardware.owner | Host BIOS Owner. | keyword | +| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | +| host.ipv6 | Host IPv6 addresses. | keyword | +| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | +| host.oem.manufacturer | Host OEM Manufacturer. | keyword | +| host.oem.model | Host OEM Model. | keyword | +| host.os.build | Host OS Build. | keyword | +| host.os.description | Host OS Description. | text | +| 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.organization | Host OS Organization. | keyword | +| 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. If the OS you're dealing with is not listed as an expected value, 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 | +| host.uptime | Seconds the host has been up. | long | +| host.workgroup | Host Workgroup Network Name. | keyword | +| id | TYCHON unique document identifier. | 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 | +| script.current_duration | Scanner Script Duration. | long | +| script.current_time | Current datetime. | date | +| script.name | Scanner Script Name. | keyword | +| script.start | Scanner Start datetime. | date | +| script.type | Scanner Script Type. | keyword | +| script.version | Scanner Script Version. | version | +| tags | List of keywords used to tag each event. | keyword | +| tychon.id | TYCHON unique host identifier. | keyword | +| volume.automount | Volume Automount. | boolean | +| volume.block_size | Volume Block Size. | long | +| volume.dirty_bit_set | Volume Dirty Bit Set. | boolean | +| volume.dos_device_path | Volume Dos Device Path. | text | +| volume.drive.letter | Volume Drive Letter. | keyword | +| volume.drive.type | Volume Drive Type. | keyword | +| volume.file_system | Volume File System. | keyword | +| volume.freespace | Volume Freespace. | long | +| volume.id | Volume Id. | keyword | +| volume.name | Volume Name. | keyword | +| volume.page_file_present | Volume Page File Present. | boolean | +| volume.percent_full | Volume Percent Full. | float | +| volume.power_management_supported | Volume Power Management Supported. | boolean | +| volume.purpose | Volume Purpose. | keyword | +| volume.serial_number | Volume Serial Number. | keyword | +| volume.size | Volume Size. | long | +| volume.system_volume | Volume System Volume. | boolean | + diff --git a/packages/tychon/elasticsearch/transform/arp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/arp/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml new file mode 100644 index 00000000000..6ae2964935a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml @@ -0,0 +1,192 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + Direction of the network traffic. + 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: |- + 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: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/arp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/arp/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/arp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/arp/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/arp/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/arp/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/transform.yml diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/cpu/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/cpu/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml new file mode 100644 index 00000000000..a64352df2a2 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml @@ -0,0 +1,171 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/cpu/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/cpu/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/cpu/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/cpu/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/cpu/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/cpu/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml diff --git a/packages/tychon/elasticsearch/transform/epp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/epp/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/epp/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml new file mode 100644 index 00000000000..e5104b41dff --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml @@ -0,0 +1,70 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/epp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/epp/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml new file mode 100644 index 00000000000..ec804d02a8e --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + host.os.type: "linux" + - match_phrase: + event.kind: "state" +dest: + index: tychon_cve-linux +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.6 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what LINUX based vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/stig/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/exposed_service/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/exposed_service/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml new file mode 100644 index 00000000000..cbb6a586d8b --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2019 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2019_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig_linux/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig_linux/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/hard_drive/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hard_drive/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml new file mode 100644 index 00000000000..eb95307c81f --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2020 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2020_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2020 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/hardware/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hardware/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml new file mode 100644 index 00000000000..03456181e79 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2021 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2021_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2021 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/host_info/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/host_info/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml new file mode 100644 index 00000000000..bf43689b263 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2022 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2022_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/network_adapter/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/network_adapter/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml new file mode 100644 index 00000000000..e62c372c8bc --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml @@ -0,0 +1,26 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match_phrase: + vulnerability.year: 2023 + - match_phrase: + host.os.family: "windows" +dest: + index: tychon_cve-2023_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml new file mode 100644 index 00000000000..66a2714ad27 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml @@ -0,0 +1,150 @@ +- description: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) + This field must be an array. + name: vulnerability.category + type: keyword +- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) + name: vulnerability.classification + type: keyword +- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) + multi_fields: + - name: text + type: match_only_text + name: vulnerability.description + type: keyword +- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) + name: vulnerability.enumeration + type: keyword +- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] + name: vulnerability.id + type: keyword +- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. + name: vulnerability.reference + type: keyword +- description: The name of the vulnerability scanner vendor. + name: vulnerability.scanner.vendor + type: keyword +- description: |- + The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. + CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.score.version + type: keyword +- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml new file mode 100644 index 00000000000..2e5ad842973 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml @@ -0,0 +1,69 @@ +- name: id + description: Tychon Unique Vulnerability Id. + type: keyword +- name: vulnerability + type: group + fields: + - name: definition + description: National Vulnerability Database Vulnerability Definition. + type: keyword + - name: due_date + description: Vulnerability Due Date. + type: date + - name: due_date_reason + description: Vulnerability Due Date Reason + type: keyword + - name: iava + description: Information Assurance Vulneraiblity Alert Identifier. + type: keyword + - name: iava_severity + description: Information Assurance Vulnerability Alert Severity. + type: keyword + - name: result + description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. + type: keyword + - name: score.base + description: National Vulnerability Database Score of the Vulnerabilty. + type: float + - name: title + description: Common Vulnerabilities and Exposures Description and Title. + type: keyword + - name: version + description: Version Number of the Scan. + type: keyword + - name: year + description: Common Vulnerabilities and Exposures Year. + type: long +- name: script + type: group + fields: + - name: current_duration + description: Scanner Script Duration. + type: float + - name: current_time + description: Current datetime. + type: date + - name: name + description: Scanner Script Name. + type: keyword + - name: start + description: Scanner Start datetime. + type: date + - name: type + description: Scanner Script Type. + type: keyword + - name: version + description: Scanner Script Version. + type: keyword +- name: elastic_agent + type: group + fields: + - name: id + description: Elastic Agent Id. + type: keyword + - name: snapshot + description: Elastic Agent snapshot. + type: boolean + - name: version + description: Elastic Agent Version. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_installer/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml new file mode 100644 index 00000000000..5d561c71eb3 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml @@ -0,0 +1,27 @@ +source: + index: + - logs-tychon.tychon_cve-* + query: + bool: + must: + - match: + host.os.family: "windows" + - range: + vulnerability.year: + lte: 2018 +dest: + index: tychon_cve-20xx_windows +frequency: 30m +sync: + time: + field: 'event.ingested' + delay: 60s +latest: + unique_key: + - id + sort: '@timestamp' +_meta: + fleet_transform_version: 1.0.3 + run_as_kibana_system: false + managed: true +description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml new file mode 100644 index 00000000000..d8694a52211 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml @@ -0,0 +1,124 @@ +- description: Description of the package. + name: package.description + type: keyword +- description: Package name + name: package.name + type: keyword +- description: Home page or reference URL of the software in this package, if available. + name: package.reference + type: keyword +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: |- + Additional information about the build version of the installed package. + For example use the commit SHA of a non-released package. + name: package.build_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: |- + 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.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: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword diff --git a/packages/tychon/elasticsearch/transform/epp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/epp/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_rpm/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/epp/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/epp/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/exposed_service/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/exposed_service/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml new file mode 100644 index 00000000000..6d22b8685c5 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml @@ -0,0 +1,227 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: |- + 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: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: SHA1 hash. + name: process.hash.sha1 + 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: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: process.user.name + type: keyword +- description: |- + Name of the service data is collected from. + The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. + In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. + name: service.name + type: keyword +- description: Current state of the service. + name: service.state + 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 +- name: error.message + type: match_only_text +- name: event.ingested + type: date +- name: process.start + type: date diff --git a/packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/exposed_service/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_store/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/exposed_service/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/exposed_service/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hard_drive/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hard_drive/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml new file mode 100644 index 00000000000..a64352df2a2 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml @@ -0,0 +1,171 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hard_drive/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/stig/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/hard_drive/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hard_drive/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hardware/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hardware/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml new file mode 100644 index 00000000000..5455a3fc6ac --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml @@ -0,0 +1,177 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_keyword +- description: "The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. \nOn iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application.\nFor GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user." + name: device.id + type: keyword +- description: The vendor name of the device manufacturer. + name: device.manufacturer + 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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/hardware/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hardware/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/stig_linux/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig_linux/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/hardware/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/hardware/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/host_info/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/host_info/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml new file mode 100644 index 00000000000..96435a90eb2 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml @@ -0,0 +1,81 @@ +- 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 field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: Operating system version as a raw string. + name: host.os.version + type: keyword +- 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long diff --git a/packages/tychon/elasticsearch/transform/host_info/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/host_info/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml diff --git a/packages/tychon/elasticsearch/transform/volume/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/volume/manifest.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml diff --git a/packages/tychon/elasticsearch/transform/host_info/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/host_info/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/network_adapter/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/network_adapter/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml new file mode 100644 index 00000000000..88f4d962f61 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml @@ -0,0 +1,93 @@ +- 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 field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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 +- name: error.message + type: match_only_text +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + type: keyword +- name: event.ingested + type: date +- 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + 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: Operating system version as a raw string. + name: host.os.version + type: keyword +- 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long diff --git a/packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/network_adapter/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/network_adapter/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/network_adapter/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_installer/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml new file mode 100644 index 00000000000..e508675861b --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml @@ -0,0 +1,198 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: Package architecture. + name: package.architecture + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Time when package was installed. + ignore_malformed: true + name: package.installed + type: date +- description: Package name + name: package.name + type: keyword +- description: Path where the package is installed. + name: package.path + type: keyword +- description: Package size in bytes. + name: package.size + type: long +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: Package version + name: package.version + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_installer/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_installer/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml new file mode 100644 index 00000000000..e508675861b --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml @@ -0,0 +1,198 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: Package architecture. + name: package.architecture + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Time when package was installed. + ignore_malformed: true + name: package.installed + type: date +- description: Package name + name: package.name + type: keyword +- description: Path where the package is installed. + name: package.path + type: keyword +- description: Package size in bytes. + name: package.size + type: long +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: Package version + name: package.version + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_rpm/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_rpm/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_store/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_store/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml new file mode 100644 index 00000000000..e508675861b --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml @@ -0,0 +1,198 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: Package architecture. + name: package.architecture + type: keyword +- description: Description of the package. + name: package.description + type: keyword +- description: Time when package was installed. + ignore_malformed: true + name: package.installed + type: date +- description: Package name + name: package.name + type: keyword +- description: Path where the package is installed. + name: package.path + type: keyword +- description: Package size in bytes. + name: package.size + type: long +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: Package version + name: package.version + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- name: error.message + type: match_only_text +- name: event.ingested + type: date diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_store/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/software_inventory_store/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml new file mode 100644 index 00000000000..1554030423f --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml @@ -0,0 +1,127 @@ +- description: Description of the package. + name: package.description + type: keyword +- description: Package name + name: package.name + type: keyword +- description: Home page or reference URL of the software in this package, if available. + name: package.reference + type: keyword +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: |- + Additional information about the build version of the installed package. + For example use the commit SHA of a non-released package. + name: package.build_version + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + 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: |- + 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.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: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/stig/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml new file mode 100644 index 00000000000..6dd345cff24 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml @@ -0,0 +1,192 @@ +- 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: 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: id + description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. + type: keyword + - name: biossn + description: Host BIOS Serial Number. + type: keyword + - 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: ip + level: core + type: ip + description: Host ip addresses. + - name: ipv4 + level: core + type: keyword + description: Host ip v4 addresses. + - name: ipv6 + level: core + type: keyword + description: Host ip v6 addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: type + 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. + type: keyword + - name: uptime + description: Seconds the host has been up. + type: long + - name: workgroup + description: Host Workgroup Network Name. + type: keyword + - name: oem + type: group + fields: + - name: manufacturer + description: Host OEM Manufacturer. + type: keyword + - name: model + description: Host OEM Model. + type: keyword + - name: os + type: group + fields: + - name: build + description: Host OS Build. + type: keyword + - name: description + description: Host OS Description. + type: keyword + - name: family + description: OS family (such as redhat, debian, freebsd, windows). + type: keyword + - name: name + description: Operating system name, without the version. + type: keyword + - name: organization + description: Host OS Organization. + type: keyword + - name: version + description: Operating system version as a raw string. + type: keyword + - name: hardware + type: group + fields: + - name: bios + type: group + fields: + - name: name + description: Host BIOS Name. + type: keyword + - name: version + description: Host BIOS Version. + type: keyword + - name: cpu + type: group + fields: + - name: caption + description: Host CPU Caption. + type: keyword + - name: manufacturer + description: Host BIOS Manufacturer. + type: keyword + - name: owner + description: Host BIOS Owner. + type: keyword + - name: serial_number + description: Host BIOS Serial Number. + type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml new file mode 100644 index 00000000000..44a26fd137a --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml @@ -0,0 +1,21 @@ +- name: input.type + description: Source file type. + type: keyword +- name: log.offset + description: Source file current offset. + type: long +- 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: keyword + description: Event module. +- name: '@timestamp' + description: Event timestamp. + type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml new file mode 100644 index 00000000000..1554030423f --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml @@ -0,0 +1,127 @@ +- description: Description of the package. + name: package.description + type: keyword +- description: Package name + name: package.name + type: keyword +- description: Home page or reference URL of the software in this package, if available. + name: package.reference + type: keyword +- description: |- + Type of package. + This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. + name: package.type + type: keyword +- description: |- + Additional information about the build version of the installed package. + For example use the commit SHA of a non-released package. + name: package.build_version + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + 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: |- + 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.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: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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: |- + 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: Error message. + name: error.message + type: match_only_text +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. + name: tags + type: keyword +- description: Operating system architecture. + name: host.architecture + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword diff --git a/packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig_linux/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/stig_linux/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/stig_linux/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml diff --git a/packages/tychon/elasticsearch/transform/volume/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/volume/fields/agent.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml diff --git a/packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/volume/fields/base-fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml new file mode 100644 index 00000000000..86eac72ef18 --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml @@ -0,0 +1,171 @@ +- 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: |- + Ephemeral identifier of this agent (if one exists). + This id normally changes across restarts, but `agent.id` does not. + name: agent.ephemeral_id + type: keyword +- description: |- + Unique identifier of this agent (if one exists). + Example: For Beats this would be beat.id. + name: agent.id + type: keyword +- description: |- + Custom name of the agent. + This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. + name: agent.name + type: keyword +- description: |- + Type of the agent. + The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + name: agent.type + type: keyword +- description: Version of the agent. + name: agent.version + type: keyword +- description: |- + The field can contain anything that makes sense to signify the source of the data. + Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. + Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.dataset + type: constant_keyword +- description: |- + A user defined namespace. Namespaces are useful to allow grouping of data. + Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. + Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: + * Must not contain `-` + * No longer than 100 characters + name: data_stream.namespace + type: constant_keyword +- description: |- + An overarching type for the data stream. + Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. + name: data_stream.type + type: constant_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 +- name: error.message + type: match_only_text +- description: |- + Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. + For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. + If no validation is performed then the field should be omitted. + The allowed values are: + `verified` - The `agent.id` field value matches expected value obtained from auth metadata. + `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. + `missing` - There was no `agent.id` field in the event to validate. + `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. + name: event.agent_id_status + 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 +- 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: |- + 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: Operating system architecture. + name: host.architecture + 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: |- + 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: |- + 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 + pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ + type: keyword +- description: |- + Name of the host. + It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system kernel version as a raw string. + name: host.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: host.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + If the OS you're dealing with is not listed as an expected value, 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: |- + 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: host.type + type: keyword +- description: Seconds the host has been up. + name: host.uptime + type: long +- 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: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/tychon/elasticsearch/transform/volume/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/volume/fields/fields.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml new file mode 100644 index 00000000000..d2b4a81ca3c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml @@ -0,0 +1,12 @@ +start: true +destination_index_template: + mappings: + dynamic: true + _meta: {} + dynamic_templates: + - strings_as_keyword: + match_mapping_type: string + mapping: + ignore_above: 1024 + type: keyword + date_detection: true diff --git a/packages/tychon/elasticsearch/transform/volume/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml similarity index 100% rename from packages/tychon/elasticsearch/transform/volume/transform.yml rename to packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png b/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd181eb9c2dc74ba25de4d8242adcb0f0829f8a GIT binary patch literal 201501 zcmb@tWmH_t)-FtfB{;#|f?KfQ5TJ2)hhTx=?$8MYZ6sK5cXxLWO@I(w8*kiQZ?pIN z?tSk0dB3m5VD#!@b*);ns-`^8oM9?T( }C~$Ca=&~{ZH8?orFgQ4bcdw9OJ=Y0V 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 W-%R?c5jE6 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 literal 0 HcmV?d00001 diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png b/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf2f73ae6d696eeb54bdce2c76108a07934f43f GIT binary patch literal 175239 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 vFtFV(tF9A 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg b/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg new file mode 100644 index 00000000000..fbbc633e76c --- /dev/null +++ b/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png b/packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9207bbeac5834424fca597f59310f490b6c33deb GIT binary patch literal 337235 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

qS=DWB5*0!vNBQLx&0pnkm^)J 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
Bbtzmy!bOu@nqo>O7W{f zV{lzv{KwMu7g+~IUCTm(@A+)L{de;HI$C9C;~*CHA)18j9&aqs{dZw+=5@vy$W$qi z)^n?IaHCA~0$`V~sMkVyLS#Utr16u^D*@%FCR5-#PW;@;7U=!+oDXzGM_saeFV~y7 z%iku9d0eQgD}=m^p7FcCX%|#)0P^LMHm1j?=Zq>fzp$o!`9u&M|EBmyWO-`?P6VU2 zNk~uC@f)Fg2E7-)nU5f2$(qrkXU_a`M4kPz!QA7Ik)3LySqV;CmQX#ntkyG+c&utq zvVgVmmuBol!1>wR8^I0I{qZ+F4JI9#cC z>iGCLda$MIjxKC2eEpYO-p0_56ED<0Pg?7S)Bg4D)|RQK(-2Sa)sUVZFZ86$v~AQg z=Q6IStda)5yGLxWH>Q@i;MtKiV*(ma(y)w@Hi;-DwE%qM>-ANg&gOgaKRO}YG|Cyf zT;*0l){geQ$T%6i*)nfPa`g2zUW6Sq@7?cx>w8Xb`rgOD(ZS)9@4Z)^i506>iQE04 zSIR%z-w<3vY%eF`NL&}ewV){1+P9sm2a#<)rWhi(>@q*n$1V?`Ebgbq&rwMCDx}tB z1_lSSXZBdk$0_py`XDtB$m*PFR(A`0skr7%1F5}SCXjSfQSm9yWFIk1&-Z6?EW&b= zih^lU!<K?xxxc%gQ7yE$OSOA{X0; z6}vdXg~}Ep6k4S9G3y;7>+wDJTdfVCFLx`8E0iUYz7IPO8gGh~}SwzJI@e@!BrZ(qAn1Yv2ED@)5f0A|YDG^_Mb7%?2qH8WYfvTDUTI z+`qX(4n9axPbFEicXvzyIeB@hT4F0By(25>LvQDcmqhoG2RDZ{%@>CS+$w6JxEcnb zJF0B)!FL2#a}TYNY2^mf<#)ysY}qom>po|vF6^#E6;?Lb*qwL#Pf>4nKci!SYF0XS z?Cb9r)bgfyN^kQC3=WG$)J0w}C1dB-@N&iMS97%KyHMXwptEJ zjoIYk)oMW8hIe7*kRfvD-n{+K=DEu`CmH%T`vvXpDPx++xDmkJD=#6^l%GZ|#hUMr z!O|lAsFpYcmbO_SQtF_Q(@R5_>)l$Xg5kl&!ui5gKXvCEsXyFxjfepU+(UCxZ7PC0 z_9y+;SNQMQ^WV1|7CA~e@1sba<3*@VPuDpbx8)&2gV$YXF%}7K2+(HfoN%-xL=&GHFCBSSoiiAQTO%qmy?*J8?p#okFGm?X(9<%b!IY8k&*$ZK4c1ra#~tXe#@~?a`{zg6xZm$F_`9odI%gL{ zOBjH6jvk>St796~ZTP+4*suM|XBCkW?0?q^kxp#ZO&qIa+0XM4L;{ZkN6wJf@_%Ft z%HiRmgVSfMYVFcbMCeko(kj!Bf0R>cu>#ENigQd_aPafr(7X#qfbgmb`+KEDcvTgJ z&iH{ymEbl(uQoYjZ0Kn}c=Y6y-gd3OmrPhhB)w|$7_lFQ9vm6^`@D#-5M0!$u~)a! zV_6;@)pFpktf%@aB8iJVlPC}Q7=EU{xz7vnFd4DoUSrfo^0^pyY4FX>ALB=VlWjlA~> zq+sHm*#JSls%vxGq-2$d?MvJstdF)uG&JyU@9s8ErP>~LdX|@T8Tj(iCSpZC(J;!5 zMD>iqJ2N)S_CKw3n6uRT+&`x>+$vc%C_ll*N7N@J;rl&9XdoOD5B9pbVczIeHta-W zvr1voan!VoBM|Rruy8oXWPP{Q@9I&(FrX0uWKuvcSw`Fp3f_(O_X`7^`-9tRUkJ!_ zu2tVZBfC9JNa;jep-#&AOo@W8mRWByuNtRLh>T98_ zRtZ*pJw0?xMO!ydGE2w&1DrrU{iX2;UoWrEBUwqf{vpbDqmqGD58jYAqM-PfW=W&r zow2km6!+Ju(8h|o66AN7GudD*R9i(3ABPiTW2)KW48EJYUXkY9T%@N@FU3?$7g}2h z$Xe^`H}#Y>^BLx@-N>2}8Me<+Oh%Y^>0W<-dTD7d1_SPbkE=Mi&*W3~00j7QM&FmC z{}-V5LD2b8h$DW00k`tCLxbg@-@l)TiA((c@+qgJ`PtcMMiA=Z10xU*l0#_If(Dw? z!a12wBQxAQXQ1rr{j%6&9sC-zGhIuy^+Jz0N~+L7qv!@ys{&0#u<9@jq%Yca2`%Uc zD!L>XIp{_cpENQj91yfJhaGUYma|2`&+Ava%TLFwt5!z2Mnu%2ldvn_g^VuG{Jx@T zqN^C-ln+Pm5TAer-kn8>>6+H8OkGHRsqpS?t7k{j3b`DS?2z(pn=fNp-`X;ouQ7LU z|F!H}XrJ4FI_l*^5R?#UEL+e`E8A$Qo|baTY>$6poNTbr7;{h%|23Iadw zIl+KWL%6-&p&<$Qqw@AHE|RiN%XgvC1cyN;j)-Mjq7c|ws|0TuTXM9)RG_yBv;#gxH@Y>WOJngG2ur#Dq70MTf6&cz z0ACyxY^A^dJ@jWdj|uG9vB6z;pOj-{)WEyj`|(F@U+(AX_wa=zoYa0*B^sSmtI4NF zhmW={{KJ&t{dR0Ol{cl&c?wrHhQN2%(+PNk!4V;eQ55YK2knc@){;#l!N4n(kdu1A z8j$ShSsI4ej(Kf{VK&GBPnoQ?A=)e!GqI=Rc6SnOGb@auS2P@5eWD6Bhd# ztd?6zfJsq_m4AS@rJ<~^kI|yP%$yzCmjGb23)w<)2XWwHe*JnmP;4}ZQ|wULRzmp7 zdMi#fE)t!TC6i!Cy<`a#Ik3qDZODAr+GfnUDF;Z7U~y7~7S`6{>gtK(YmHqiw3y8; zl9`g|G9Mm5vjbr$%*NHXZ zJy=Ejxks+JWi+U6dtEF@ZtR0RrE17aC9V-g=Tu|5)%1{<~FU`Vv)`0eu^7Ac*ihP&ercO$eyA0Ty%wt2{Y_ z+p1qp#Hx_lCOL~5)s)tD@)5HrYcCgxji%R2oB$*QPjbYptvG8!+5yrp3FMUlo{;)G zzYta)C9hg@=?|KM%!EXk339DBumR$l`AkJ%hJfyW7W#icENKhqb%1w?k{R)|aAopT zXt8>m);j`{1vx~ucsIokM#R(@v8yEQDQ#m)-s11l@O4`E7prPZCQ1F$ZfYaSAsb&f zf8hxupcd>MH@81MsZM{%Uh6vOa#IVCUaS3}1_!b}h1Wfy?)}Hpg$ad@$4X5`!uc(+ zi)lc;Yhm%o?1{l53cKjBgUO#Y8+UYHP5V1ii?3E`p(!;q4L%jQziju(q_3~XtW8+^ z=K%g$jk?LuCRTJr56O%Fk$0jLzsVJ~?dSwTplbb4sCb>o(e{y%2kf3ac{rCA6IT1I z6;{Fo-%F|+e5pyon_D8mVQcujwazVeAu5hsj3eV-`a601UJr7SgVN6d>QXr{UD=*e z4)Cgad;i`2|9w#84(`?8Rvs>O?v#z9BBH(7O_kCQZMeJF^_MeNB z5r^OpE#lASujeWqoUBaaNpXVfl?==-sGI8`YUY1~afyU36FK{P*9%W{GA!OJ&u!f} z#;tB0e5c?zU|s#ym?s+&OOJ)yE6y5gH+JrpqPhLiBB80ohl8zKANiooU~~0gxSK!* zi{1XP5hxbn%~eQI<-8y1MLUP()su8MxzOtLq9b{5$X8(Qr%z+W)~0~cDTa6z)4ERT zc;3~i;xQ{3_Vs`BpbgDPs2E?T3M_%s$fo&ttyr>vd8W*N%uHoEr`01aiMktQ@E3TD z{R7<-eNwu)vEo7(CrNy~5Dv>r^?_@59Ey$H;x}26;R{UIJ0r$o<{A?Va}lUZOB8%g zAy_TqAaK9Eu*{@8VbxlWvQ5ofn+ebi9D??%*@>!!AW?%WMri)4$tCacoZgpl4muz zpT^9>$)L6Or+L;6pQ3vrZL}_AbhF+}6*56u^bPB?yzbg#aT_)%2SU{arb(M?v)_!C z4=45O1B(Rd|B@w3<5XKl2dS8C90J!@6fa(U*#dtb!lQ5H(WT!i$otXPJ4Ok9VnQ=t zXXJgj9m#Ne(N3h5ArtPhPd8QM;a<2{`JPRCr0rTBt5I?6#GL<4zlq`GWuv-YTV#-t z@XvCZZ+QXzBfpq^K<~-^RwzCG9jPu_84|Avu&}o42l$N=2r9&0zh&um$+TwIIavqm zdR4T9Z@p&vSqu#a8f!}Tx^d*U_R}vgpR;}7eKM1oM(zv8(5PK|B%P4YTe~1AEWxAR zw);H>%gaF|l0@$vGQ`$qsv1J-4{k$PvG&!b3KhiFY8uBcJ=U~)r*A#@&zJO_c6kZ` zQtIOW*)sb2L_pSJ$HW8@2}wqUCc`ltF8cW&p@l`sx|>+GdHY|=k>td<>k&#qTiagL zz!9rxVVdm?mGIw=KEEdQbOu*bH>f*<^>F%b7T&@G33@1RB=6vhalfk_F(gK7R>N!M!nsLu~3H-(>-&?aNLLcYPC5 zu}cChi;OHDlwxjGb$PzhKh{oZh-9~+9t?N{#d}|D%tc4h zBAvT=^KT@Qt$LGbv`v4u^Yn~Y9g^Dr3^8@8$qdc ztx-14tuoONZvkua%=Z2yIrBpwp>3F31|W+Vo1Ns}K7eR@R=6$;^IuN_vsq-f#C6_q znk$4*W~?`qI)VUQ0lu9Oyn%W>VC`+(xkw z20A*3y8JlrT796QSa6nNb`^YdJDhOzwO?EVmWo@qk|Uc0>lJEwx3O`#POxk1uYyd+ zN2?~ti{xvINhyiax2u(gF;{FF!G6*bEJndHP`&+r9gL?Kkr1_qF&z$#lz6yfC9}1q zjoFeoqmf))BRo+G(GN5VpWQsGHeA0&KxM|t*#7IJY19_{(h|)7l)W2I-HW`M>P~w+ zRu}^`CQz5>&Pqc?*dMR3l)CBJsoLr(a1<3w91*LlB{c%fOoMNTu>E79dw;xXW7Suh zAnj>hMFffkP8Pm{px#%nuE+#2apd|scxvnOlp2pq4I1zb!XyQQ ziUs`)P}~>u@lF~ytaCH`sNX{M4iF#ZZJc|@%=`$;>{m{VOnJK#hVDB2JxjuQ;mB6P z>xurg!sXaec{Ma#$Xh?0W;zMh(f`$LE3)X=d8PeFF2vPo4afuTxEN%X)U}Eq=dIF) z&MRvy|2VIqEL1DFXX-v0deHa8pG%3eo8CA7uhCe$UU2_wD5CXn&7r0lLAc=U{l|!J zS>^ir{T2AtDpr}3*xt_f!!LsKg3$Lf-(&y0_2}F<4t^1Lw#?eM#l7AlDZG;br*~Yp z@ZkFnKX|RLtNk=W0?F0Y6=?JHClfeznz6rUq>|RM+;%HnTX!q<3znFtDHfCz7svIv zoH(Lq?3C55^W53sI&Kdt1}0!40|O-(w5nbR-L@YbpInlj1Iu|9eti`;dc2IUAG62K z!MVCy%+z~Ox9D_EwEjh3vS0?*@X-1LfR=;KU67%<>U`Lt!TtF!C_Q#LsrSD0)%Epi zBd*2=I@UEa1cJ;f{PI%ac5_BZQpzscN+@P`SNrxZOEJ5?{;i_m$&1)H?1W%Fd3nbB z)8pl_+1b|+?TE`rjN6^4w(k8ows?-#gX7g_x7XRd>&E6T&RImq&olm zcb`(h)@_a=e?=T`Sqv+-*Vi_(J4j@yMGnNIDNQaiuG};lh&Qfcj)s)AB}bSa>f~Ko z8xGUoiXlf0HME<}+5dV9wT_b_ZF*?LdC((MAV1-yp+WsyhDhiaPya(BG%W6(i$?@K z`c1{Q7V}21-ciz&nywgVR`dc;@pikTUxq#+5b!@YI$iI7QA1MwrXlC_)M49tizSX) zUIkEW$m#&i74J)}1%QeG^cQm<3~~RJk=f6 zWRnE&4W~e}z|_@=c$`U|nTDF4Uc~gYI`9$DG8!%Sh(g@l7qNKSfL4&9sP{%Q8_`jPTQ|LZiK-{?&=)w-TYfzN6m+3X(0g>4tZL{V#LWluy zHo6!t!FJT|C%z^jX1Dfzi%~jTJwFf2!`9;+NBPfZ@9)-HnuVis7Ho8mOpn%A&z@#D zOLT}PDRMU+7~DGHVa%AH1Sy7nA?+~BpuySQ`|d21<$W&Dbw13z^?u=K7QOTPa@Lq( zH(Y~MqxELAA$(#|3K2n_*h6}dEI;C>+ayjGj*|tQ;aLQ!GBz!qyX0c#KD>CcxLls z(E*}Mv%6K-ezc#my%6i@l<^(qj99XTYYZ59#--`8#1&hYaXB1l&ul@Q><&J(4?cL} z9kt%QOik6UaO|yIA8Rjhr1N)==yXTE+CPK1?F1B@?8-hQ?u7yzRE3t7kzM)Ol*T*b zs@UKVXZ6;TXOA>4v{qFM2CbQA;=hFZer><4KIujH_)Fu^y#M%7NdaeE#ctI0uw(9Q zb7jZ$-gBJpR>%72B+c{wpI0LWcI>o8%(?wPGz@%S;WM>7u`TzKwti{{eeV(2KIfg#lg+(RSSgo5dEs&t6rU zt$Oj_^!Z<{!fiXt5AO*No8U7a>5D(>Sf*9sq3vPJ7OTofzH$K@(|w>FCwsb-S>->o zI-s8CZ0zOzQ=3{fWSvMuF&|rOEn<70l1|OLbRVZoA$3O^xNyL8xDk4s4)Ub(AFPlIt`4PA`xI&W@FuHN)unHm8VeMASE-d61 z2*j>^x1;AerM^ZD`lUeEN9c!EQpsgexvxH%c6AUq(bb)RgE;TYca2I* z!;0U?DJ=HMj>BT89Wn90sCZbk4Ja{|TDu|crmhBa6$d3N7xq5e2y%K=BOy!59M9s6 z!rC5mLgpJK*x5N@Qwd~`vriZUF+-j+%QYr6k#7^$`b`abgtG3J>(<_J9Yv4&o-HaW z>1#0-fAc=>$FC|)s%L3iO*@!Pas15G+auOL_Qldd>n83IvEA%dYOZDopkdSV9w?ByrZ8&slR(u zt9>H*dYux?gNuhdX!7;bUiv_hzNoJ3!uhZ|L+c8^m?RX(xvOzT*BhDBX5NcE#QYO9 zHiZQsBl_XSa&K^*R8(T4lT6!$efV|i4n7+jKWA!iLzDYfeXGz0_s@dOJit+}GY*BK z>5Y7RT4$SV+fGYtaS}2!?`MnveXx6P>Ar!sHg#NGB7?peg5mOk>)S|rAfN9gk{cZ; zNZrCKAp*Iwa$ zV4Dzp**cqPu38P8wv>{+LZmV4=RgeETIe8?U((D8y%5H~%3DH1-#2jT=O;}Tr0bt8 zVIgBK=?zqEfKpA~WhADs+pMRf(Vqg2FseOYnOMAxG;)!z$r zy04`~tBtkOiKE+xFOOPE^W1K#MNhS#^3bpx531H?#YATi?AL(0Med?}@0{7?f-!!} zzfu7z`VXkY*8pFmR_8>k3`o9gi3NY9Z~u-{o%^2r8NFFx-?pv}j8sjw7|48_dAnc|2qcz8ck47P=i zIzTN^H-abGU`Q-N90YAQ6;Ij>KrhBXyG~0+pC;+J2p9#bawpe68hE+tGc?B^Ih0K7 zG>uI!eFv0}dB}x@CGE=(7kGY3_WGfAs<8#2`OsIvpv@oS~_ z$+=_sKv!{1yqK}6d>0>CNl)h8rN3C^eUgDK5JI%a;<@>DC^_|el%QT1hk~R zd6%JWAzPFMj$Yoy8DZq zNl%;xZ2e+D(o61up?Vx?lMK z^8DrQR1SmeoE#Z_-wZZS>dT{1Q0BEYAt4SHwxOancjnp}E6~;$7(MS90Fv7t^sB9P z1gol9u?WnLDjded!yc9Jp|hF@Q*MV}FGA2xj!$^h=cu^33BG1$n}JZKfkF|?gVX98&FuFTe<*MlxmQPT}0X^04X-)4g|$+BMRHGaL|OiWMyVNPc6$Frb2>m#6yj)p3vft8ruG)6EgUG3khzkMrssptmH$ z*x9LKEx?PrZ`M)>@m&aJ@<+B^;6#3^Z;@Oo;P%akidyUnID$;qLN?-#ccQ+n_=RM< zIf(Lf-0|BV1<(e+{PX4dTEUtQ;<#3EeaKV)5UY0k&7Sp8FV&CvEbWhlXG?o?kmk|A)+MPo zCd*a+j;M_iI^e!}_AJP3s3TeUbfHChfu7nhFf*XeUBUB``pWC5d> zHVr2hTJ08lkpd1R?K8da29xv{U^9A-gbUV)-s`R5&N)ZZm7MNZ(Jb!I2I%)G;$Gqv zBXgD2i}c`+2)$Zv_)6$pB$9ej6sy>(CYY^ zeO~#VXYHGLPi7cHQ^;J407HSqGfk_DQIQ-hynfq&+a_=~_3xV(KQUB{thnhj-jGh^ zJ6VC2v%ucIS(*aUrGzJB3IC(8 zMbX$UCu!g3D#c`z#ZEonr{TD|`Zj1)JPw4$@3dn~DZGPa4bfU!&_0~)Z5TGX$&zkn zi@#BrCVMzi=cYqVFV4)ZrNk_NZm&U_eJNi*b1iF{1(gtf3ztoODZLJm>H z4u2_XnA{U96Fsg&pZH4L8HbF*(Js+|Dw$}*T#c9MX&e7VqLS{@HJWm=(&1`t_pOtP z8Q;dqaxx{~sURpuJw!V#+x)?AU|I+P^&o-}}F^IFd*HkQS)Mp-_ zj#}fV8b6NIvJnpd<=e0sSwfQg*+lsjq8*Ag~ zEas8YbyZYkk_ox&f!ytxsx2?K7Y9|q38k;m22iHdSs6JE4Fs&!29f%cG^Di3pypj{ ziw~%ZVj|e9x)}yG%9fJ_Yw=$a^j&rMc6ZHh;}6`?);IOKe@d(O0ofek&NuN}Ot*z+ z5wf1Ok7*fwxgsJ@)wrvSw5m`a&OQrac@~zxV^HAge{8HnXtu)`l%d<6Z~OoX<&JOT z@4+~d>F|B@4Cnp(j^X9wTRE`Zw+xfO#6)CmnnslSe0kX9w3m!#H9hR<2e?wQs#>76 zAe9SB!9i`l_#G2*rjq&l?sdDneX6Anx|(?}RhZc(Hn`)B>`9v-j?BL5TOtVw2`87H z{Qi5Ynsiu3;fA;2S_sHL1&jfr7+C&>r}0KkL9!Gf3~E6tBt@O|RjD7xZ-$RYQjeng zyuvBNFYURT%E`shtG_QxfRj2KE8Y~E$0cXFV8te>TeeT%__8sV^+&RAO=rwHXrp5+ z`(KrwC;@WZ5;1qy$o(w)XVtdE@SZDVndOopfc}h5yaac0#)6jvyANZiX$dVb=$)lL z1>8X7VAt?3(BB)gPiOo!;w|i`Uir6q9O`cJo zL8$6S8Q3Im9~eK+r;T{ZgfN%B|B~w}sMhYGuh{19Y|WSPThf*b5e5cVtT1N&SD{90 zXNTIPW=~l{?Iwfg&GbgyQ(xI<~+^Y&U>Gw%z)7@ zrUy_3$5-Jz1wYtn)^m~}-xly}yctOh*7$;V5D4`13^KLVtE(5yaWl9D>fA837u0<_ z>@{ZlOu9mDnGQ-moUBe!JHI03)<4G|biFd3xN4#3vmxJE+{vE3=V8BaICZ&8ki0rI ztdKw1I@8~xQl${1#wNQ()D=-`Y9?S~JLgQ&v9rTORF*`v&T;RUg}jHYx|w;BA<>OV z<{2ERD@RVt`m&5kVaAaWjjrf``PyX6PniNZ$eWs7Z)MaPHajxLAMbB)M~uQ%lwXnJ z57W-kS9&z!@GDVuIDU@3&;0b4V;G$FTg2lbY4P4k+;(}zCrVlwn0(E@S@Hi_*g6-7 zJVB3lmlV9mJxin%6q3dVme3LjtSzj^Gjw`(7KJG84i5eRjOkjE`i4JP-PtLkH?$wG z=5daF)fdqc=(u=`z@01$CMLriY6LVwa@W^4{iX%!)F8n9iqS{pUXqBaVq}ECOeq%) znWAB5hZ`M@G&16Rur|=tMDC}djsTTn7J@<==?Sq7N)VU9Qoy3W!w(*d7P(nm(CeIj}{KtZ+xxmhbcppFA3%W9|M`xnXrgg@5 z`QP-De{)F2xRp8}+9VXboAW5IkRBRNWPQk2I!}lt43>v*MdTV)a`$K#nbKk<4-vZ= zG5{oZP|d-64q6G}FH2W>t*%3vZ=9U-4Z4_4v;b}vpcP;gK2g@Rd+^b-G0XFh#baHj z6n~3)13!ljE71g{*~Ks~r;O|fi_N-RAyWG1D8C$AVeb)9pF`3 z*K~3pKI-tz{rtSX;7GsNXdX-$$>kB0@k%c2Og!}9Twq=&qU!pGjo+4cau!@L;!mF; zBf+StAoDEq8TlC>I>+Ize3BonuyL8Md9okFj>erMyl)&%H8@}E_YRZ17croYl%}xw zh@_1lwlB?SZUSe~bh7I)-t~TXkK^mEd}WpWcgRQOSg&wdy83!M1Qf25+^AKt+kHGG zd1cLj`#NWvh3#CulE=aj2z@@u?lBU9Y!NJf z;tAl@7K%zMd|vPS>;j9_KQRvOP+NPOOHjQ2&z>Cu?AiQ(N)%p&d-q3gO=qHF)g^u6 z$o;i7hyZv(mmkQ1elOLpZ=X(bzw96_@m}E%&MBWpm*h4!?&EaYEfPXf&J)!d}d|U>3(qq@11zVRB>ZT@qH1zbshB+X5BvM4FeFBBZi_Y}6LV&4zRyKUUm-jf+eEUMvVaMM}K#;jtK3@st zSDA0qnA~7b=bm4aO)Si&BU6dE*PCiM2hCR6s_0jd#)CWobbz zRC7T1>ku$1+sMJu$XeE1!5g=Mr=x0v916viD&4N~#|8 ztu;AM%3>Z^+i|il_}Je?wxvbku9txp_i0(NN+A4Vew)7;R7~;? zIQ1KozTa?gy&Mm}QH!f<1B^qXhbcRK5+UW%ZAc^K{9S)r#u3e(x%u0ND`N~&^OCn> z$|*05TdcK~j62(@9CST280m-0mm19`!v~WCVK={J#;kd zce@NzYhSaF3>0H$&Ds)=JYb5dkpyb*;hfj(jvhK}l2aeAKu@noXf7efAGY#5TYNUB z*fm`zDL73pSY2DiI#b*(3^eVp74>CPzE?s$9iv849=me=^V_>+$vRb@RnIJlO`axs zvd@c{Up+y_W;43KdjC|X`DH?<+U#hx>80TI#n$VeHv?&>m;RFu;gr;3&SK)NKgMn4 zhw+Lp9pJJY7fS{s3w93F7HfQ+t&RN)H&-kmhN1ui0v^2sI&Nc%vLz-#t)|$GfIT@w zoIHHqb;(!FtxZVNW46o4%&e1yR7)7G-`Ah77Wo+)yjK>BvO&+}d!WP>T$2MZ=oYq>ioslAUSU~;`c zhT_CxGB^XN)GrS6nMrMpVjhC8iLW7RSCb5$0fmKqZ>Z^k(ug-y=V6sfJk=Jk|38v6 zpU!=N)>B$7S4{04LL1A(c!YqCnKu!{P0k@YRqEP55mxkBKXMMR);$6S5je0i{agzQ}vxm)*k* zGQAoTyK*)*VA*?r)&}oE1JaIijxDeh0??#@;`CZ_^Es5@g<@AtOJ&=dnb;z}*< z#_CgHS{;Y71IN1wN$JVz76Kg-3n8z^W2y^fHpkaFwTN#cpVYbmWZ&$peIl)swfU35 zYFqfSABU(fbA{|MP4~BBGpwm1*8K9d_t2)6-#H@zF1|0x=!KQ2Bqto-v$NsA;GTyT zJlSWH2fZcLjsf+6vuI4O`!e_Z$bwE(<~?pUr9bK0)fqlTo5K8jYCnJfJ`pEU)rrML z`p1-z`=nlMdq+n-z%~6%z_S@JWxJS|nqs_s>GX5nxsX$NHW;vM4N4*PaIMw0mu7$k z#R1P%9Cn82#2%xr5TZU~=X+Oj(xknhNU z*A%GzC`EhMJ@YYY72ix!5)l|c7lVV3*cbT#jHxuj{N1nPr-1v8guHAohu=c@RsMW7 zO)q0RZ+?N1h5xSz9Tr5xoSA|r@w9wSCVE^C$HtL_3bVo+lsr`6zJZR#*`pXDwyQ2z zXPeHo5>NgQ4u9P|BnBQoG`j!_u3A!v$15_iaAGN{tOaZ$wbKduBmt%umh;>j+qdTq ziv1-=Uk7|~?ZaIU6Y(+Rja3ifPe&D8&`L zwnMH=#H;M}<;y$5ewt|PvQ^#m<0eS4ute!SC0KhY?6LU{=XrQ^Z)ct;($LofpBes0 ztMh`?CGTbaWL9W1qbY(v4$}500WI2-d@IP6@uaBbZ#y5Ov-EiNGSEG4ZJb1AhSXhL zMzqudrsSG^($Y1$-Ls{|j$=YrFf3YHNvS363zsOPlIG2O+I?My7@KNXJ_^O`;m^c_ ztn7raOH__Eo?(QAcLX9G_hv+pF+2uIC)HkOV>8c+-u=LZYVm;}jW^T<`PNhO>a{<= zX3dn__ZU+t^W6`gIc-$M^p7#&YB_nk$yoDQGw$7O)jjr^H{Mq#MjLthI-{I;&Ti5{ z492A0-F>BBH0*5&bORbJ5}7gl!M&ip3(I0RG={q)HuZZ+We-eAV^TzM@;gAI4RYN- zdi=TsIiJ>n9Ud>dTiO#rR1q@Q;(NHhVwowmuF%wWTCA(RjS~>Hn*j3^1&Nf46T8De zs*k?jcAc6QM`PE!-73=p^pN|(Yy*kF-3dcXmR_d=?{z1cc+KrV)gClJM7(9md(rh# z&+T}H`fjbP|kL_T>^4ik7?7^LWD|-6lqjpYH6D;6brtKe~ zvEGP@`zQsXgn_wJ&{Pb#^C7D}J$)aZ80}DBZ{8CFDlm{B!`%ZMfRFe2Yn1Fjjm=GF zP+L76&p$4K?}W^WkEjBKEorsf5%Kc!p=0B{hIgf*DQU%y(+SmCxUXQ5<>!s}23C-( zT7^SYQj1ZakH;m6tQfg+Q$+>pqWfj4_pnOyT1Ei+rE;B~i`1hxI~*Wa7%rVQ>fvdS z;nXxHVN%0KuW9mP&fpAlGRYKZhdsEAO*%M>5Nm82@VZMtEqeu$Ck=iwOky%`c6)DW zYA&qyt(*k)Y!68ZQ+T-u`LC7GB}*MLj1tT7jLNj}MaEYa9|YqS7>ftr$g(VsjXn4D z^t^sl5Rff*7iR+g^QG$N7gXRqI~T~3Efx&SZIUJD=!Ik`4a@WH7`(2xtE)*Hy^&48ia-vYrLnPhNyPA|U}U(>*8`qiPHSsz9bnLQ~?qiaxv(;xBsZU@DxYr&=r`5t#Iriiy3$bZ> zH!|ROmu6Q1wI?e(J7GclraojV_(Zm;R%|vHT>yo+-k6W})7CY7j1%41Id?XsqQ9%Wkgww!)eF&&s;S7!d)3x*Ufo=fd`jq50Y2FNmMvWYDjQMVk?6?+ zRlTlY>_2KBVE8Tq!giFI(7I4UVq)5)N#wVg7JPxo0`zH;%L7Q@&Ug+D9V;ftLn$=C zfsZ~OBf@l85|As!0>c78lhp5hv0iQu`%&Xh-ymBb&gDbuPim^NjE>k>syJNUp%W&6od` zT+urlmiYX4V8Z&1W|7dOQ_pji;({7#!J`aDVwzvx!Z0eRWi>-6#%f&xL)&FTCOSHH z#am$Bx9JvDx9_Vc0veLal$AxHyl8PaHee6^=ud59|9}2VR@2wOKYz4rN1hH4qLa~a z1MOe_)1{WH*$Sw^GxYD*0ae`s4_1$u7}aIROTM7{TeNn4)-=e+&ieDj`j z^$_T-@cUu3%{y_Z_63h_OVxs2tY(yS3k>)!{++_`;R6q_`>yP)q*eZ9Ql-J4@T0Lz z=JzXy{%uIfM~QBo);zK+_{;U1XCnHvbAj-^yz~B{dAjyDc}z+wy;xfC)m$Jq>lGJ zwf$zzx+6TVw62_7Y5w~IOKyIrBR43GA|7G>&{gt$oeYDE>i_t_>S&3&V6nN8U5UCCOzbzthsX9SWU4Kpv z70@fzCyfDoB2b6K-;WOAjl*!H?9Sfn%jy`R0**dsQXBezKZ#>s*ZVJDzXC;-iyWw6 zHyMC^2pM3GieD=BUzg743J3=vW263y+ZWH$oF1eB?v4MI6{bdu^G%xaB{Cd2MJILI zT7l)Eh+YUtJ-v*Uw=+WEJ#Kp{6|j`T9C?Xt=qzzImb)wC`!U1pS1(zZCv*UBzKhEZ z-}A04>=7eYU@~D~Vq#*bdJ*Vl7+hu+`CC&Wk`fj4$b#h)WQ@9C?;g+gR=w8pV3XWQ z6DKF9-VNN`P2QUjF;oYGb~sNu&<>MYDsr6Hcd1R=`>k* zUq?p=20Hq8=#On~em1Jo0EXgH(}@&|YWgnJSdwJRr50C?7>zk39s`Lxj2~Q&Z#Tvx zaSm!9b-IR|%kx3%_(`qrJfFh-Y)O%0O+n^L>({TQw*C7u`L3n$gUDS0II|*+nGY4! z0zB&VPre7N-+R3ZpkD=&JD|9qk1sNk2{8q>+MqUQcz!agg6PPF_`dOT$g{4ljdHrz z{9?rLXmEdA<=wDA>`(y^kyFPF9D7cHY0kzTxcaJ8#eh-1ziyx2q&@bI8yfkQmiW1C z;fD+uncBQM%(9*VR1eTyd|BMQDg^ClZ ziDX3l@9iss`X%~hV05OFL0@roF-Be=A`pumrDP`kLTZ3I=FLBEu`Xfzqos5xiqEK7 z7ZiDeNb$}8eWy%JO@+s4d%&`>RoMV&(W^^WA${oe8^+dZ8IZx>w@Z>tU>QN3%w#{n z8;$O$f5UqQv}plD-51r#>`Kg0Bb#5uAV;_~B^ELq>{m?Pn30qC!NxS z?#|B6<(n6Apm!OgtqTiU;bRQCpaN{Mj3>r#CHpmc0R1QQ$A@x`PEr|SdP4Lm&slK310H2LFq6Evc$gZ)bNAiG;@S%b62 z_6z+RW~yl0#V*r{lXJ8VTsQxH+_3OTS#o!eI^PYNamcCWUHcLjPEo8R+T7 zoSZo4CsY2oQzJuLv}<9_afmP*g{>$3c8)==oRb%bp=kVz^Yh4IH6`WxThb6JM(FQp z0J&{Nx|s2d1<8BL&D)AnwhO~V2Wgo$fZ{8VP=6|I?#trfPA{Qt;L^Nzc;dm|pQIHC z${C#P>JcMlY}HXG#rOOt!3y=aFDCt@OC2*G(7XaHTWT4g)Xv&~lrvMUop|zwe*gY1 z%i!uhZP2cmi7eRM<>K-L7vt^Wky{ReKXOLtm(%TjaX4^HG<9 zFP}rRH1btq;iwo#QV~^Hi_cpU{|qzwz0lT4ff2VS4NDK00@tHN-#ia_Gc(Cosy|qE zULMwNY(rHO$3OQ|XEr1x!Pe!ZlR6IO?Qc}aw&m${|2|_=e z@U6{nq&owy(kCyD&Krr|n3>B%P5=139DoKxBgsuOSqa>I@qk?vWTc;Wczw`>_A~s3 zmRjZ6vlKVwCk5v-+oON(0TJIc8{9Zpxx%U61jPJ)A3GGQ2<@OyH7{ zomIzM%8zE7r_7`P#2lJKA;ZZ`Z&8r8QvF4dHeb_GoNO~4=h-=!jApX6^+15kIUBlF z!qTcLmGA($_54nwtMobGw9SEnXgluYJJ+Fn%JqB^m4)_pA^p#vp+|x^VN{4o0uVQ8 zjMu_XI~NEt<;fNi)pJnBWERdytH4*7TnHkQ3A6I$S-lsIt}-qJ=rl(BFofsa*L)J` zWrfAXsH3B!{g_+?It*yr$T$<#yYiFs{AtVePY;r4uEfFN6|G8C4GV=f@(o1Woz+8xp>sICQjMfy;j^ z{2+RdMWrV>CZg6@UzT@>z)w8~A2mt323!qa`-@Bjpl1l|UIAL7VE_b#X4(Dy3!z^l z2cRYHu%|N`6d+Mk=YMg1gXVd2mf>_h8B-n%^Y?H4SgBT8&5H&awn!pLMP-Q50ME!o zNVJ|ueQq0{_G=8MZcM4cO76CRHk0j4@X@ew^k)i!n##%$#41#Vuts|UH~4@5-nvHj zTU654C6c3-GinEOoj|%JH}BMk_1l?BXM#B%?wG2-acARgc0GDBpGN1^Eg20h$oPO^ zQQ&2b!Jx3w7b=q$;bP^hbqu6Y0+Bm@8NfwF#@pKk)} zalS!8R(1P3E8cHs@r-~n+tszfj0}3v0nc($q);L%tB3cUY3*yYS=RX#4C~_6(0ZK& z5}H^}J*?&CQLA@1_3tYhA2c=T(mBk06#t?V@IDa_1$ul(}zKyb~iZ8VKGWJG5EYCCXf2 z1J_MfSKEc$jm-pztNUoHoeaGW0B`d5?g0I|e(KiPbP~7(d@grKOHjXmHyPSegyW(M zVuj(b{M0M)85NxXzA%GrtD{ybirdl5Y3j(6_m=D{P3?T!+s5KZ31wyUz;J;N5fLGm z8H$kqe3E36mh8IjqEBd37HS#a!kRe7VB$4`Un|sd>9M=PdW{`&H@X=SBs4Tc1Mp$= zBu~Xc?HdsgPPeEClMD@~>pl7BeEIc?*LbLvbp^{wK9;dc^6zjiakmKB{Pz!qy)$ zpc^)Kb7k(kPX8OA6j)g(qJS23_V=yzsZVk=-QJ?-6NTs3Aa^`s}7|k3PH)@nYyl zP1BxE<4yei%!Fz61t@htV&t9GOUXZ#kGb5q@$y=Ctk?C12m5F*fG>k>OEZe4q417q zY4vRx;4#IT)j*OzLz_m%YSx1r3a^S)ZPzD}8sc?P1#)*C&mX zcym+FtfTIF*J}>=gu0n)oe9c#-QnCOQly>+U7)mgNygXO&XLke#(R~1l(RGCF3Tx; z!9X+@417{?!yJ(255HGGK0oN^a>Z9oHCC~~2uc5zoH$G_7HSR-h_f~hy+jH^K^*E{ z0ovO5S6JQ>GSYOc=ReOo_bVA8kJ7CnI@rD9q&Bqw`?4bkAT^J#__dngD5KPkpGXb# zpWGxKy(>6S)DR2k(-+bfWRe=7`BYsC5~sF~ddx_7H)5`OJ+Xuomm^&UZ{{|MugUi* zLHffFip^-S`u8S$=*UlFm^HwER=}*Ak~MD0m;3#CKb2J&sfOu>XF4rjCHe zaie#K1#(K2>J}azj%r}uV`^;P6E)l%dfIQYzR%|u2e=o-G99rM4@Rx`+ z6ZwDLab;LB-{_@>zJNtZ+a$>G>+0z%o*WU)B1Pp8SLk9fagl3)lQb(WU(tV6DZtUS z-hJxl@AR&~q9;6CsL|?}pfRQeNnB&^(?J>aFcd2Q+g;i=tAn1c3=?gNnC927C>$Id z6wHlZ?}V)e)}0ZaD`(72_^G0rS0$s>&_GWDJ>|ngHC_tPP)keG3yr2dO&&@cv43yP zlOr=h0(@5-jSt;CGszWbEq9YmS3Aiqk>dj;#UhG|Fg`xM(N#nx`SmzpMC)3k6BybC zH^d2Qw%uKVnC%&d%&I34li-h&+t&7TtXHlsZzCVdh4dK7C}k;MfU}Wv3e3hEd!=esmobz{~Z%DT)P^-Z}A1@P?cA&b#;kB z1-jTVY@CW}&!hVEA>Hy6+zxEJJSUQU{7`toX^pvh=Nr=tD3Ams|GZ0b%m~fV-7(Dx z$C_8Ia$yCO(n=a~I?-}og&OA-##^6^fy*11H=1VBv3cWm=lV$LrdEk&K=fln#tz_44)m-wA0J_eC$>$+mKHppaqOfxV(J-|92{0KQ$(>(_u3IxTHx1M%3IJ$| zq^H(RLYf5#T%uKf{Vy8zYiQt6{x3NCeT4vf4tQ#&Q3Z*hh_1@KS)1U95K%KTM(c(mN;-x770sgU%ZS#Knmjw~elCX|HnDmqZ5b{h(}A zFGbSIm(>>+)$=e*z~s9=Q-bY?Tv7;$r6=M>5zB-Z5AVOYWJ@|(INz9=m4}Hb!Q+rl zLGeT@`Q+;E_`x;W@~>>sPBIG4&Wrbkf=zkP!WM`)C)5IkWvY%9ok`n!bc&ZuYZqIl zt$Mn+KDxTX3ke@c1`JiZXJ8xwcaV-S#YA;WT(gNBkYt4nnZ{l74XLTFZd(#~_wYCY z%^Lb0P-LAfYkBKxA@;7d>_L2}^6x0Cm*{DwrReeT@xN1lx^KA`oPgLsH+OgQ9-3m; zJL77NV~Z8y?a5@due^9n&E8};Kn}^fB-JQuJpL1kvEcEyofNE}#9w!~DVAtIFG#f{8 z(I_1MDk8OLY_bx>;0Fxdm__5|Gsqmb96rgFo24a6BWq7F2UZw|1)X^^-)eg$=PV1< z86Kn})MLopu(@sZYYzor2q*EbUb3(&!(SIo@@l`_(quf5!ALHol-%R^|4n28*p(}_ z`9CaHy!_G1XbVf-?`l2iMM)(xiM4>)eSqch&Mw2q)KqaL3=`An)xqO}zn9kom@2&7 zW848^sQT$)wqoP*WF?=0$y(?+GnJhD6lWQhZ^r;)_Nj74B|kRtR1hef0l%A z(?X_0th;aVrRGh_(wmB&SzB96h1i;>wnEd;*eoD@Wq*?g+<)hu0pvk!^05l>Jyw2_ z!L3WOq$YXzz7e&M(-*4P9O*doj57E0dRaG6BvKQx6-OS%AyE(>#z`-7i1+A6#i>ey zu!FsUnAIOYejHCY4XmAN18cKgqPsyFuCSOllv|jl(S^0vrQOcY`Ra`VkKv++_laeX zj2ISgv^Q^(_3e%BU8l7*+x;0Io7xxbu&nXbSBe>PJPrDVs^42mmo&3U0AT?%JicAsMzlD%!!PBtnuVc9-8O`{vhtNNDu#mAZHt(5-yi^_?W zj8#~9JXVQQaBDf@_(~T3wTYQ9#i44*P$C{49?-KQ&2J(yDs1P6Oqfjci%=KLJ*}O6 zaL`!z&g}A5G2( z&6BR0l2O_rxHcRet3@3|vxa1Y5IJxtYI0xD-IUAvL|jJIz+a9P_$ec=XjtJ`$S~2l z`+?@3h!D_s6$O&+#+W@+9I974(wj!=Lu}=-<_oEF>)AL3JTL+HLSs6rMpn#q2&q9E z&w*fx8SlRjKNkOflvmOa42%U(DJo~>^!Bcv{tQHl>D?cF{_jc>qwf2>uruK10(kfq zFD=M4QL?tnNj%2;Y|NnqJ|fpklJ1TOz7T=O1LJKwZfPkwm2_afo-N7+Yi!2?#H(Q3 zFbM=?NfHx!+pa2poU~hm0ymcJ=-wH*5b;ySQn^1V)6Qy)gxF zcpd#DUrW>FlgO|)V(vIG`93gm{P|v!{l3h<4qbrR!H;Qp!|$nEWPVUC~)6 z$)EYXjU2~1BJt@ybeP!Vk)Ik1c)J2r4q-)Que;*=;Qd_{42*=-yx?fY4BOpb2>7N3 z!l{2M%N=1$9~}wzJwFdRMtm0(cLwUh*zzhWDzag9Q>FTPB*K=@W)N6f)r@f7{khgT z@e4MdcZedhm8^9B!PbT)ByitT4wh}P7a>fjta|aHA-yZ@hMOGDuYFjFY>m|+X!KaL z3SMq_{Jju`jRUE=<{h8oWIm-xdcMV{Pp_F-SYm$n6hzr%!n)7H*}9mnQZ|{LAhIFF z@r>@u!?WSygqL#2;Lge*PA6k!Bc__PwvpE~JV%zf0gD$LZ)OJIwRcAwidUZhbm0Tc zQa(Pi!0c)jb=N{Qt=JIrbN^D89cv4>=k(J3(Jg4!9)c1G2x86E_~&!7FREBy^O3`( z91iK6C)^Yi6bRedRhEnBX_c11X{Y!$1k8^zRSL#*o|`b>-U*}{mHq?s|6xk;u<|E} zO`@ZtR{$xEg0f~Xfcw{#)zm^KqB9j_%JFG|-Zo~8HGnXmHHlMw?xECm(Ep0b<*pkc zi4^)yL7Xq)T+3+0;WZhnSak$;VnIl0OBD>h4w6LzFZ^PTdYLJwb8W#FA{^M{NiP$3 zmeWLhvn>q^;7wTfA35-n1HzZ8tM2L&Hw~A+o+VdpSKcEb{_LDRd0R_M@xdYGMW0pA zTGr{8z5x4$qFjzjvYIqh!4!Vxli+UD|LKM-10sM09F|4CasoIxBKr3OLbWw##Nw{G z%0Xvn-G#a2BDc4~fff^Z9~2fQgOhHgCQKkJd5UBcVE93+&ud(1QijZ{=8z*nYeS-W z_rY3j_xb}~7FqDzEd0-)SXdX<9Ukl4W^GizwWFP^LP5PJSoxYrK(S32_#Yx;-RgHi zfv=Oq1b|yW6?tj<7$vFVdT}Vg4JOY5<|VZa3|#a0a|#Q^%wC+S$F~sBO|g>)Jnet_ zWhK4*0ISbCjdKD7&ZciN5A-T*Wx)v=ZJ!3Mx9^&NiOFkEe$ytJq?ZNfPu4p?AYQ*K zKRXq`Z4N)?OO{;x{96H~vbxz;jWb=_N-t%lA@-#S zs-g1;8ryrcX*c&GhsF9D-BHg|7RPr@ydEX z)HBCM;$iA?dLllv;)no>+e{yt3H?ietvG>E#+Zm-5T8Udk{cVu09!qU(F_ zGEhsi9i!~G-L322+06;nmGs=AxO-w4E2YD31N6i4re5n|wqhae%(JFheI4&#r91tcGrF4a2zJp{;(hl{tWTaOJ5*Df zVx3dLT|3cv63i`VVBoGs9DV*F-20X~37kJYFm9-;ZH76h&0R>n6ag?T9dmjrQ$V4M zfBVlJ`x~L=RAv+-JDaP>JI4d`JhD@LK}_$l)N_Qc>ysU3K}m9IupfmX1*RHsAHa*D z5ixh9Gm$+us7NsO* z;nkp|ZqlipHs;xNQ*J~v=Q{{O`Pq~8c2=su_Dsdp%CwtTUrglP(I_~^pQo&;SQ$LF zv&)QE3bb+_`AZRxVh`U%rop5#ZxL`fYr z;TQrk1!8*!*2+GRC!oXPtyFgkPOi@?! z?)OTw_tAIl8#kG>?Gt6x;#-g!5`tGYO*_jGm8`Vg>M@BD7N79l!FW*%XE1*cwB7$e z>O5jr^#;lU31|E&eP1zuDFV^Z;vo6Jm_I_2fuS-PgMR}gl<@xhb**k7dnyf7u(G*H zN%jAK##7BNETsL{ArJqInyy29X(6n)7h&)llZq?`#wW%^I;f0YI{7OiT0~peAWs6I ze=-_NSYA6QstgT{J*02c`U0DggStfl_FZVeTQe=F5-tQp&!@WJE zFtLovP%W*`zJ!?_nWJm@h~wzFc(Z3ak*gLw5h152t(8GenNI`S_AP{p%JA$L%x9M5 z!@f>Y*3M30AgX0J4{g!@*ZFQkYdU6nBGyJfk@#VGZ!2Jra!3Toe*P(a<>W-l!wSc? zKxf2Qx%N(rPKdP`;qnA1Jidc)I_Yfsl&5 z4BZf)<6=#97hV{kN_)BC2$Y<5wKaM+PEYA2zGaGtb^9$N0DNLv-TOd`jAw5Jha!z^ zzn48vGzo8A=<(X48WJk)76*sYF?k3EoudhTQl;Ci(ul6Ce)Z#m$W+>?+>R*U3!UhzxKU&x^w>OD53#&_gOBh8KdzX!h*qDpGadcWV-P+(bxODk(=B?8H(8e)%XJ%zGGr;S}i6;bmrfTl;S%y&@#p@s}Yh8Y&%OE^MCi?aYC%dbyVn3;bH z%vxG+Wi&wP;hE6%Wf(xy6E^41mkDEZnej-WhRwGtno&~q?hj{o%AY7tKXdB-ooYdsv$5+6oot~`~@+yphRLppNO}k3V{M41nb;nxW1m`P^Sn>E5vLIQN zDB*PZIhBZjLsUYG+&C~OgUP0Wg-RK`6gYN4X_m|D!-ie==AhVrNGqiG9Z3>FT=0Nm zxj~L7lkTMvW(!IBn3{qi%IE!aN$EvvoPQw#%zP=co})yQ=gTX4-Bmj* z-I^*ZELjeYaa#^7WLOxu=*W5z7-5_2>Q%e%gi(U$64t@8xiw3*1sWRwJX>wFx3$M; zE*$jlQwrQ+vaV$|pynlHGz!l3!`VF`8|I_o;g+8qr5px#d2Au1yWGSk=oV6QdCgx) zRYD$|T^sa3b}+>f$tI9ttnZ+PwAuM^I3=Fv8oQ-6#hBa`h;7>Zs3n94q2J^;G=SB< z&iN0&8~A&$)acb}D6m=zZwNV-ZiIOs+i7fER=QLpD-40bkxHfdC+SS1Wm*LXLKRa_ zfpKY)4|B>YL9lciBUc*MV9dWqX=tQ533=K&6oiGaocF{eCUbRZsiy}KEJh5*vkb#&+Ar{jB5pul!f z*)F3Oiw&Wd8fvX8!$RL6U|j7Bpjz9?69hRS_c!2=>Th?p1#pX8Kkb**XT1U5Suwyk ztnUKfta$^IDdLMjjqds!KX+v{zp!GQJiM0DcY9u*tR#mT)?Rtc>6E`PqPz1hs*Z@l zJghgbL@ZEHx#-j5U=-&%+?^g{?Xgw@K@98h#`+J|fDCMvR8S%n%D`KJCZx9vb%lozlom;!f3_z3EDnXt z9cfMp@Rw0*td}AupwcJk%#UBgKe}O6C35F9mHbG}=}2LktUoDka!RIhvPC+5MMw8h zj|2xDpZlUN7_rx+gOUw%&4)TYSExnh8{ZsSZG()TlH^PG31w{YZM{i zJ=|4%kb@d6rN0Oab%AuD3A_Cpl>(FR90Wb0lhpq~-@m3o)P8v_d+}fLC6Gb*?>1kM zkrnSmk41fuNM3V<5MXR;WTN7p3=Uap@@@I0>q~O$bo`q!caM1V`#oxhIc>2c!?WiZ zG%=B#jO(qou{H9ju~^YXDUoNmY#g<9;RgkESo1hk<2@V50)V{J}jFVwT_ikg}4)ciH09j++M)sV|EY9>3)wV&ArvS1hJj{LP)$+W? z@CU((UvZ@J*rH!V@I^=4u%-eqDgsoZ9fnNpB~dZfrF{J>EF+q@eo z7h3xB=ki&(CZS1g;M}smZ3fkH(u^{Ni-|6J;@uSYeo@K0s%C6Z3?iQiOZq*``gQFL ziQFarm)u4B+`MjwW*z^4V%gewKC>u%@WZFmDyjgH{wETe;M#y{%O!s4RDLbvv@&|G zb`tOAoMv_^kBbW=|Z%alacX zOe6L@U2?jP;TRno3kGKQ+PoNw)U76315(s-jEu|#Yudbqn`gWRL+y-MbDCfCV`At3 z{EP)K3*Pi9RLmV2rLX9r1_0NsG=61oeABY zyUI7LWUm3G3ML9#RG@q`I4Bdh^Lmjnf@@+rGLj{#@Sa5xwnNK<)xxmrIk3B`LGNf9 zKxWA}MWfv0sE?*G8XnJNU0%fr{KQm@5LQ`_56x$6cwxEnl+N`Vc_vI!Vn@ zt2{}qnkQe?RQ#e~0JU{FuVeiffmSXRG0emc&J!ah4S=>QKy2%3F}HGMRa$WY7M2g0 zZ2eNu(_XsCu5$dzl?!T!r3JjQHjcii*vjg1oZW7pLL`W?2#XwkUn`b$QQ{4s&11 z>&|T^zAZJu0od`0D?IRX);EDHE9#w*kew z(=Ci@j!dA*(*pbmd(ux7?NskTS(v_YYV$vgm}@dR#{2=8zCHo^{$mD301e1F2tN=M z>vjPs8k4pjQTQ) zkSa(GFw)W>Ga%hL#Myu!`o%ftIrrTAT>jYXy=U#U*Ix0i_x-)~Ty^0#Uef0wyS6GJ zT2lNcDVFHr)nlA%MN2hQYci^aJ8P?tV*4vXbZQh&;HYXw03&F>oOjDcG;>!3aru7- zE* zkKwNRlVlOYy>IaTFz;0$P?nB4z~|GsE%lqN%oW9F#XMwZz9$nwXQ*`WwCVc*{vg#o zxf|c{7byIRE4+jT*lvmQQpd0?nQ=N#Ny=bs4`_&)RxDAIP`HM4=cvhM*|Pw%(f(d# zWJMRb-TfzVi^L~J^>GJuzHOFjGr#uMcbF|tycSK~OM>UoC&t08qz)-6`9I4B1b2hF z%}$eA53HRyzMR1Ba~=oufFC1sZdN4r7CHH$Ak9gxrLerP6IEm4vCxjFs;c@lZo_eB zw||;m&GzJ!1fXT4@VN}cwJPcCKCubDIZO1Trc##)I^l{o)U|7SNt5t{JYEsld>dvL zm!a=?9-^kdD^-j=pC%kxb8&LHK3e;s%I=5d)7|g6w{RBk(he+Ga7~Yx%M_(o-w~nn zdFnnQ*dD(;yTbi&d^rC}Kn~ela2pl+NI>`cSG=wOG?%EmaoS?7(OChC0=!RS3=f~0P|q%MfIR`1A0%>VUbsBM|W3N zRPBm=cq_{&A4^?usaP_s6>Ub7TI$loy1Kf1Tim*Hl3od8+P(DlhYTJdhwN1Krk1?Z z0ZZ_f>xTj|j|C=k^-<8gZw%;Z3?Pa-Lgu)04QJvq~6+UAdMiawwwD>SqCoKu4FlOxJX z2BRh-_=@^F5gL5Il!x5RH`l~IOV`Ag`W!cs6>>UHrlw$2G}K|#oEe;ckRvCz-nAYO zy6o;QIJQ=q+vG$?eUnSgP{E78Ogv(#c1Ub?+EG{7T3z-APRm|5KFaC6epiXl<~-@d znC3^T^7INTEM>nh52>lhyJL>}=i;r(uq%6FD)xan$ZAs0e~Pc>3iku+=7K~Z#&<$YH^%; z@#4hryc-A}(DIQ?({SEuaE(; z0_Ggwy$@E^ZobLO>(YeYp}1$nY}R98d`UA&S;->LjCa0!JYOZU`KH~Kima@w_&q&~ zI9!)Ti?XY4aWBQM@}S$KciJvCy2$tOCeIr+ZSAz@Xd8oUFJV{}b^?BcEoU?Jgthz| zNagP2Y_6oP{|X3#`BdWBW9~131b~Z7q7UpMzlQ_LUcLG0sUeo%_nTpgkP-cmTO$?t zFeZ+={Cwgz-(-Gx}7%EgGQv3vxaA590#Daaq*wUIW7XoTTP3m&UtE(FJW&qn4wQ*YjSx;yO8Q z&31GbmpAoS5a0unhre2I)o$ zO3KNAoEdT-kjlIyr*Pp zrvC%khp(;;wz#tDH`kvbZ~UI$Cv*HMt3`Lp-qmY2o5mWBgqL?e$Gfg)A5YG@jQIh9 znndhzQByg_P{3$JLhF~=?MeI1T#es~Pd5kif7^{w%F1tM3aChKOwves%5{Qzo!0y7 zz{}i{pqGu_E zTCd{>v+PbxS!FF+ssUA#{IhBn9v%`O^a6(FaX(|8-o|~N0`wiG3D=7oT`?!dn8qxB zR=c**2W$flVdR9D;;YGQ2p5}{_w9j^qyBKNJUwkP7ptoq2#Cmam4breEc43QfSDn) z#>R@7tw_3L;x3eCTsHt%J5#_?Vp|i!{mv}yH<WA%|M5rMp|e>r~vi9=KSl59s~+z1aYjVc;jHpv83 zq$mN2!2(;m|Is5{U!>a^?T())Q0>?z_W-VLfBj9%WkK1j5m5o(ZyA)qDyPb8mri_X zQl26u|FMKg#N54jd924@F=*ifRt4vOB!#toSnlf|uW+tcV)#hT0y ze`QQLvy0P#@c(K;%I7sj3ew(mz*S}+Y+IN9}msyN$mb$^V)k)SoPipDzu@vKyMyIl2p1<6!=D zbdQ$g(OhOMUvkQm$b7ZmeAm>I(lkWJ{eq~^F@7^z1ZvleMZ#o9VIVp}v0>xV{}Zjt zj?=_9ZAe={@=Z(OCn-_yqhQW1zUk8g2ERbT+BQF^)+YGmx$A46CMP4B(efDV%lFo< zviXdHMM%Rw>sQek=HOkqLFdo_qGYGEngAuKd<|?SRsWT-k%}t7@Xd)oNy^$Af}D>E zGzwnZC``v8@;5*ZM!O`Tfsgr_OCVxnIq8iHZGkhsC)F z3GUo!Z5OVuKV%ZQ1$%$$q+4qPRIAa`-``&dz!psN`GEi2sdFx&QnGYzKNUN>(y8MX z$zr`1`k~jpBamCV8d#Q>E%r64Macj3j061Ybs%z+V%5>L2@Fijr;Ho9paej7)219xrF4{h!`aXLo-cyQ_elmgn#N=Lre# zKM4lr=H})fqy|_yT{q6T_J2|`fbNg}gJk{f;4I8_}a8{r5r^D}?T7OokA?fHCe1n2tfBOmrho8tG=)7E& z{hx0r2>llELb*bgVQx6R&atM#Zx>AjF>HCV1pEB}-rpZ+CxFW!bgJJ61Oz-4kB6+T zO0I3OyhNNg?-OM5wzB{g!~OeWfFnBKQ!bu^sa|H9&cZ6v?TvX_Z7Bb^{w&&2N?KZa zEo*!6Iw7#rt!-{{;mA1Y14fZe&CQaX^J+`!J>q&mwU4@{^^a7t;l5};+#o0v3Pga9 zwF?+8lztZiHCJOAQCTn8^}ihb(Cw|RT4^Q++{Ms)AK>RDlrFrP~T8g-ZlPdFZr(tP%`$9y>hK{8qfuRBadHlh)pGnvk?SqlkK z;!c;u7T_v!W0qbj`Eg$%vVRX7JCNaR-{zqUg>ua|Ps)b-PY6y&x@z&Xb)gNR$&6m^ zH)lF@sEP-Q$NTalTnTnvQl~e~-sW_gew1m$`?|#NXgp;nx19IDeQSP5#kbZJkjdyA zLJDo#gK;0}-zFh3uSbk=s$O)HQdL!be?#q&KGG-)2wGa1dBH8nBt9=$zd!l1<;-LCE;pm<(J`$V?>sJ5}ikXe5CE0d%}c_+&NcHh!ioS`U86OHbvR& zIbofYUcD+v76uLtr38%g@$m7f)i9WbOM3{363s--KL>n;!)0pg>N=~QtZ2|S zwaAp`K$aNX5P7hmbWa#ZPnwc2XTA5dI=?&fQ|ray?qE~oYFKKCFr#ekb@#x`fJ_=X z+V>i-E^Pz(dHpY=qv5EyLiFU^+=~#HZrf6BP<$eOSK>?W_B}hhHT&&R{uAQc{F{gk zm71o9D%@w#e2B7n{+o)G3lWjxGhMuRv<;3c_j$huwehxQr4V4{5@o-yz03|b{sTsA$FZlj38tTI@2HZh`gd8~$(jz^slOT9Q#clRyd z360J~guDv|Tj}t~M3{7Ty2_7;0_1h|8%i~fr9p2+J8`4AKVfkUNod92PFGF!X%X6%yetAn?{7MtzR?Gthx z+Hgw|Qa|Q_+iD=AA(QA~%~>~cya~6lZ*&@zOn;ABr0vPPsFstVgJDd`*4-g&F<1cE zUK$xWA&WrdD&aBSJz4VS+&46SNQi&xxY`m1~lPIyG%N7ztr6`X2JtdLy5WK!0!sPySe> zq1S1F=;ua8;HIx%)9;FU(T(1ix*ZlC6=gO96LewK{(+CT$WCb*^zkELnSvNHEI{ma z8zz?kOD8Z`z(PSzN_1kMAIl!&FyUiSea)6bZe#T7JLHNT*`^I8_u;sLg+M5NI&0wr zuX?K%@*$VW=hen|?M$t5o1FQH4u`c&hl|VKVS_j3ygoV!pa_tJ-R$foZVU25K9h>? zEo5g)6Wpr>+gVz1II6p3z2vST)#)4M;ctB^VkBJVMONr`p(d(D9zGQo8H;> zfS*UGO->~JO+kk+0udp3B zz}#*kjX)5MFL{W)S%Z*p3@lvu@Rp7dGRlCKhv(z^HG5i?Sj+JW6_H&e>E2Xk;LJv@ znDWGpV=W%5F$VN&+_oL+W?C$HC4DjLw26@kt;A`3`bMM9{Z5V->#|akk`D)CCXV^K z4sd>M+C^lW0p>C%Lbs8Yp&ya}*%;oc`7DbkHQth$o>+jF$zlBs1QLDjXu``flEJ zKugz108B_VeSXK?ELH40nz4c<%F1!icvpf|j)^g_Mkwi=>6T?5zuUo-$5$YEl)0~A_Ozmg3dD09O-GZ zEP9=@dZGxAohvHVVg;$6DKq5*;Q3>P5j+~a+=)&&-f{~usu&<{>JjjqPgKK2GKB?B zTqGC3Tf^n_1fvnVID>lBI{642@!l;?GCcPl@YnLZA4d24Bo5Kv8ZO4;UU0kk2Z!*8 zRi#{-He0{EM0m!2dy$`?++F#tH+Q=cH?YB}0->Gc{5-8DwbJdMt*tXYC%K+KR-_ff z3!)@F8e;Te(K9Z**vkKYpD>J2jx+{Q^n}y_a~IuKrnP}ORH%ca(C=W*{SdA89CdBIm#v{&htHk{C$fh!r|h58 zF{$V2VpFM31NhwshV-&>Hy>TJ4=-zHf-pux6?1FxJXhZ>j+P_1O4xKV?f^tUde}`2 zKJy{%xtNW|`=HFs03ayWcf$gX8^CYsTMGl>7J}v62!y{x6h}a$=%#zAc=@9Zt-<6J zHR~b33m!#?6xi4E)+k(7X8trm@Q}b$Qd)Cj5TqATpj)am!=}$@rNhmM0(a`TWb8#_ z*~g4n*N=mF`@&MSS?#X8&gAu)3P*7OTb~M{LFqDuR{1ssr`PzG202^Tg-AIg)I1K} zZLv^h-_ejiST{=Ct5;VeVr_m>Aw;&4Hml~eqlKI*<_<>&D~smjh6=L^L08j0ys6gh zZRXNlwiGt^!=~hwl#~Q-kyc8=O+FxD-d=LJlf$j!BO^N3_I4%1sNST9j`_-!ig8&h zYLI9>8S0^xTO|n9IT80*MqHxB_j4qt9v7_Gi5jdiDt?mfZNRW<8qF~_WOy#uYkB*T zwc_{vgaO~|Y|dGDo+zPA@ym-p^uEQeUt7O{L({iN8xv?cl?XRl+V4~+rh5fY8{y7( zdBjrH&LEqT?X--~5480&M_-T1Hk58{4Ap`#JlY#T&yylmmTNZDdp}EPC%OTIQug(+ z0*jxd&WPw+;$pY*iTNr@VFVe5zpr) zZF0DlxmmsS_Rg!~IXMM6PB<5YL)eA7PKbI|ekyVRzG{0#Wz~M?+TE;zX zX^Kh+e^r|T@TeJs9!q2fqO%eo$$5KyYiWe2lmP)LHZJ~Js|CRLE}60h21?O+;D&0L zP47=+A|f!wG^FB(xs7%b4wX~g2|QRs(Pj_({o6Qcij=Q_254Fn7-t;nKpQtX4GKm5 zaLKsg7hqwSDxJ}lPnVaS9Nu1}{fre7h1kQ#ovkqhan zZ9lgAHZwE7R!Y9u$SPEl2zeu^dWRV6BGUWMz1Qtg|0ijCq~^QYooA7rNA66hho}OSdFTzA}$Dd6tJrtyeEXP)$d7tB)?vsc?qVHODJb_*qpz9)M60Zanlr$z%51( z&~OdaJjE`fU@{>j=>|WWT8@8T5$C=lFbB#y_G=5Y>y%6oXcc{rS(Swvv<$!NZdTj9 zg;@>N@zQ$u1llZ0wLo=z{{Wgk`dU{4PG(3i9{~sy$kgNs_@~N%)?F#iMHmCE)^R-r zzx>;f7|QEVX6XKw`C7EZ$IR$-I{5^US2HeLW8&CSWO^dxE`3;-5=cHIP-^Jn>nCvD z_(BknlZ#8NzM_56hegLwN6DT9{mtu~CrFJpku`B(kV0AFnc!>mv2t)v zM6Zm5z%&7yD8xFAv(24Wd089z)J&tH2vNK?8+%a<@2|-pJ%$mE<<8&_e z9ccWCWZ4%3WVr2%D0IYdh-tBpc+a|tkKc|%7FcS`_;d)czyD?YPg{o}(?%N=@h1CK zQoVAkV0j7=``X3pB1V{A1-*_5tfh`9?a~4ppWUzSLdG`dobF^h)gPjGEA=)OMR-C9esuPL&%dz$XT{A6;f{m)hQXpTeNp;9)@@bK^sj!c9gF2*1=^{ z^Icz|iVQ$8Xvb=t!b@knq@EgqEk}xV+QAI8!Zve^l{-Hfr2?f&2DNQ|wmoF9kX!jX zlGiDs_CQ13eZo0aOJgafzeD64(l{Xcvpd$`0n=XkXW+vP&*N8(B~yu3ctk{ODyChP z2{w=!Inve+{vcUJh)E&|=dw$-GAv~mO#qpqrk6}33r3xQAG#yi`EK5HLXTe>PB&#f z7dzSi%~h}80Tjucz^af3LU2BSFh%l;sSC&r5|EQK)Ym_w`81&*;ABP%z(;hg7RRri zD5tpkYO(z#gM5OB|0yuE5U?&%FAa0?UQ_^P9gvsj!BD+JNME*|UOSYDMJ-n~oFiSP z{ncdSHj}b|3+u2^Wlx97o9jd+nF$)eetcPmACM`G<~!VaQb11_^m6=#)r@ABz1By{ zM4M`oD&26--|O@0&kdGBz)L{4!g9p8L}Tt2J}J|)Aj0C=gv`%M4RVQ0ov~b@^Zl1P z%Pw6JqP@@lSxDo4GJTpRyN0hSkjJ(|XSEXiKwUP58=Ir|9**C+c5AR@DR9U~uigR{3sg|;Z=vU&mK&V*Mi z@o**Re!BFX%Gv63lKbY)XC>|&jWD@bm#DqsVmmy~pIKVsm4M?vULYW#E>xG{1A|g} zaD)+nga-C@tTTT0zWmp>@3Og`k_1x1{|z)^h9UDeq5!hZ-TExha-gu_jr>`p~>uSw;%2^N#+U1Onr^ep7z6#ZHAd=a$H%=4# zrnZjWbhD@24P^*G0|+*HxmN9(R-qHKR<$(Uv516c5aDgy1%u?rS5TkP?$Lt_7Q8lN zFWQ%_w7DY+^oHTv@gAs}+YORaU*0tJHg54(W$v)pt1ZoQ7!OmF*!A+P?JzN3slC?v zWWZhe4(>zvU!8S9SL)aP;|u?IGJ?JbZ+vq`zZ!ig87K8pI4`#D2X-kvzq){A0wm>I zvghPto!}4R_D8Y*3mw6EE&u7mvY0`la8HT3eeGXQlA#u!})_nIk^)m6EET= zPRM+qQco(-w8<8PyLCEfwL`Y_$o7TsB{N|A#0s|o-B73?CZUqg1 z7Bv>c62lv2n&2%GBycJuc)aj+Ga$L#&$-g6vvMO65Zjk% zbpf8r7(TEBh)-G`rvUC`gW@FQ2xGj5TohPQonLi}FZg(<4@<7yIBD&Lk{sX6fJ0`h zO!>syz&^XSy86(sXa8D$?gORTC}IWNv%MJcrrjqK@$_WBzVkrwQ^F4bTo2Dnb}hbe z`V!wwX5CF_t*Glep)F+N`nFD?bmqsUG`WRbRDqyJdnd0Gq~Bry{zLRQ(%DLLfQ9-*`JkLl@jX~-jfPh{5OP>sPQCN(gp=@;WKg(@BHI}}$VVHt*M9eypsRMgqi#b12FL5zPi<=>=ay!2#{Tn~vJ)mM5~d-4ikzt%3OTX)nKC zGudB+ZJ<^fpfX0P;3hyzk{{EbZ*hqYUzf{afTH9@Bi-8ecBFE;v=%z*dHyu6R*iM) z9hP~fQWHc35I<28@~M45WF=xE6Ud+nV^q(fWM^mR0IhRbh`#;`(D{QSv}~z@d+>?; zKk^ZWl((&Ku9TMYlL3!5f{0oB<;P;9HoOdL?S=Fm?OCIoa_=z;A5l>T{aVfUhieR) ziZe&WitP|KruqR32&NRMx$qi6JA47dpkzE~+oXa1kVkH~(t;M%4&jDpr?z~A2S+=k zd!YyLZj&=`=56E_7Ahvk!Q?sM_k`(sO*$ggatF20CoU4=rgBGn;zvfcE|lk z+QI(93e^B@R6Vad`KHj<=H|8^v_3Lh=4u@t3HyhVUiv4Kfl~A@RzuhMlolb`&PWne z!`0Q_bFbf}2d07rTN+sAaQw-;K1}L|%Q!e@N~w~K;(O-2 zGS0-J%@y`6=qMcMe;G^JygQp~krh_jZLi<>wC7?>ME?9~hTqEl5~+zFr&eyB6de0- z=rRvWc}0WgS4R9>6;p|F>*zkM66+;QeE;-U&q(;Tws=KbW4K8>c$^nUtxBG}@qa4~ zkL;8UjeLRu-i+Eh`01{Zugg@Lx7C;H0l_xwd6YS;fA2v{NI*NQMFaiOeoeGSwPQB& zu-l<{NI*ePz@?}_Pj_q3-72-E@Rh1|A(?qR7S2ANRCq$=7_+zcvrhYV>?{EXfziup zpvg$`AWXyl0<|aVI_O=a2BOYwTrweM!ec6edJDFty99|$B$8^$p$hX zNcz*1)8Ees9l(sTw}_)`K2GK2nzz9ZCk_VD-PKM(cVTF& z%}&vxD_76gZUwiA!bfbjd0&a{jE>1<9E-@4drp$`d(D?U6&H``kdH~8JKWKSCQA6w zi+UcviQ{uqo?+9pEV+LLi-M!j1C?%Syz7!EgBYm}s)SZzul6i0c-QW^`<&<^I39SR zw@lYNH4@uf{3h77a@7m9OgVTMC=y?Q1)P}#-(` z0Ko+B?q23hASU^iHWaz(Bu&9h4e_|3ZuV0OKWpO$yig`cJswptvcf4QNH6a%^&BNl zr#aUcA`0Cmvk48!YiaU-3Q*Ld!}$$I!K0%ix`ke^9Z|Y5k5O76Ne~xt0^X8uVu>+a zlHcNiW>FHDS?kM7gi^ufs&sP}{Qc#!(ScbIWOURU)tEEpI*D){f z9vC8|+V}^%>_CwPKOMU1YJhe63h&mfP*3J$dU+t=t^Z+rFc9sO2Jj4fh$vn6KIyAR z-hZk9PVOLI#>6u)v=R8Hz2avCL{RxSJ_ddLD;=)RYwPPAAu%`><8cgaewcWm3j^O2 zL?1>&xdc_dXZNnpj8L>L3!^(MMgeobb}R~S^AgFrwP6_!&=&{8V7{21p~JFlam=W81>9>O0rEox$3 zn2%JD(S@=+ED9eTt;_Y7c-mTGoV%FL+R@wFyVwYG=pJCNx-=DMXy>w>#{~FT_i07+ zGYV_DiJp8Cp#J{n6uI4*llEC4Oi4+(MqN&;Xi_1X+asZ)lH9c8;K@gFVb)k48%Sqt zWpwbfo1GPD#1UNI=U?{c>*xT24U@wRYv{XHNv&f052M~KhbALI#|JvYdJcZfdKJns zJRmci4~rV{EcWe_;I=KXs z*D*QjIAyaLTr;!SCAQsodnl-Z+%45QcMU0E+oE}pRluxM+-{U7;Jz8v_GPP^J~7s- zE_9A_CMsApwIvw(HRw1pEVVgivNZ2MByPQy5fRC9LPX{o2yFb{i2!$FH7y$Z2VmODEM1AG_hd>nqiu za6^ybrhDuZnCP(R@I=%sFESW-?!}Kf!s7>ySi{TM7!eZb%>8s10b?>+$jR zT|=*QAiC%JA+Bhf%;7|+7upY1evwTYy`8_5&MI4~GUlbh=8#aozmMhiBYQSoGVJmC zD5pY9QYl~+A(@C?1_OTcvA+2LPbLMh3QHQtI^ru>Cmo4&A%Brc9S(F?$CaFIA!Y8O z6k#SSyR~Ea`)6!p=W5c=p4XuW~wx*nKZv2afG^5L?oFHT7b!iYIcV8Vxej;IUNfdC>et(C-{_~?G zndA|EkL|djx0sh;z1wEp-RyMJ;RAanG_0)S%s$0v_x(*`x8*k%m9v$v5bw?h(Oqqa z!$*WNc&zp<-CVx4tdH>~N&)1GRzyVp8X>b8LReu(Pp?D781R{1D4xy9j{TF0UX)9>>>$WaBr>K5oKH|fQcn|ZxaAEu0_yVA+Col zgO#lfud~7Oy>8Li;{bozKJbYRCsdj#ijiB7F8?`WI@+Na4TcyZ-X%a6uVyF@m7j`t zq0rFeQ=a{TuCvjJ=~k=3nLUm!e@vU%&ayB7^4!J-;M{U^b*OoNj&yc7?fSC|a(PZ< z#ZC*(C;X)OU_rErFLb&!EOkbxKS%A!iNadpboWO}{9C*{5vtGrkVXtECg*U@Uv~i_ zOa3Qpa(@5+3yY8Q%Ks(Xo&EB6!?p9$loS7HfN}PFiGi}R^85cK-U#&bBWpVwazXIsUt@+3J8Q>RhtE(CU3UD(7$hbrNcmb~URqz> z3Wl($QnPY_A6jLUp~tc?#1bqs6U+F~SyAAq3s{${kr%LD*rJ1Io+zQDWo3h-&zf(` z4^PxoR=+%-QUF7Tpqw~aI8A_PvaL*^y)M%mo zSbPZ|4rEijf9)GS9$BZ{*&MUoGaK_85Hr*B$A5})Joq8R`$~P_0I&|sK5ZtdhY_%O zK|R8M{^!>YbsTy_TIN=>(tyO}fGRk2ch@yACO_XQ-4P%my#W zF%DAA8W^@aI7iE^Xz=f3mfbKTxERsGfN_qUBMpc=8rngHY10`W!toW;dBL0A#Bro* z1#VrQ=!}T1I8w#a_DnvOz4BHsa0)P3(lD!HWR-pPM(@QGS6cr*rq{Ai^*n8t%l6A= zr*A$c0%tIVlr~BfH)I1Pywjmt;8tKvrk&x??z8_Bn3Zxa?Qg*s&qptm$KklG9t-8& zAibi%zmwZh$B2{F^F|ieXNInCFNtv$6Ee4?FvOd&nP@S(bvELwY|bN^xQEb`lpmgc z+B*`a->R`@frblQ+mUG0dV4yNj`amlqBtoU+RF}X7>x0=;3dZx2Zi>!(b|-cHN>+p!W<|i%TV9M-A;{4}jwer59m5?W+F<9-#@C&vd@JXwjhC>V6GCuL&{ zSiNqDsnIm$YzpAKD>ZU&^bfk!IuYj~GuOShypz0n1oj}MH65j%*R>2Em+g7ZI7 z$?z^v7PZGeTcl|%buX#5Qa5x#SKbV;^YuD?vorl>m&y8=zc+psBn-^r$##c!SCFuP zu?Wh$vHg(UDY}aRW8Tv%!QFda;;egtBhseJi+B|X>qfWAmN z;PIPl(k}oz<#oo;TIKU6exJ0?l{o+z&@S^6;Zt{a7tdnkP^F~gyA>qF$NMr`*sZb6 zGXaQGfyRFrgFj*=0CX)=VM+s>xOS+5k}52^PNEf7dHg? zoUv10tx8dBZJR3UtS5dK1FXnhaj^#w!mA1c;CY8rR45&|U&wX@Y2kY1 ztoDYB0)QhCv-(gFU}p_KA@^K<0a~bEcmX%=qi^i-@{&$2ahta#=6(UYtYi3U%L8r| zvRyn##3~~S(-1MxkXrUWCWYna$U6*e!Rt6|#jChHUgnLKq4nKN6NIU?yxa~pKKJlX ztHfAtw8rK;ZHDrCyJ@~&1Ziy}aCMrcB<{Xwz7ik8yOZqWJ{7BAyT11d4H80qK_hR84rk2a#?rmC403Tj*zcXbh6 z6m@w{WTc+MICNYO-41?IFoajGIS$*_C+0J)1ZQhM@l-#YbUze8Z!z2hGa#Hp3l6b3GZ>Y>aEcZzc`9xWLY_+0Uf@T0!9T;Y8dl06yOs)V31yzu9U`l|&_ z{+b@P*gu}+Ia!A3&1iDumX*~UTe%rNrvT-K$(rgdTn%yQtkZotP{-y{Rxv)yuA`fn ztmlA=m#~gRix{|oW-0L>&j>L&E$~LJ92L|5yB{bGR{Neantn^lxz6A)_B?tQ?r3rM zK0-HN#T_1NGD;%roMVfv&m~@uc7Er{Ygc?ZV1a{CcR;=@!%I-Z`HfAO7IpqCb*2_# zX~_Dq`XQ^zVbww;^v9mcc#N)!!5SCY0ymxOWjtn*!h^U8^?Pc-nk z30~($_cd6CDPeermZuB07okXvVwPtQARIGx6k6yu2M$Jl?BO?}3SIoz2AS|7bZG5F zGG0l?*1laAtYqecZdr?vo^adY_kWL5=wSNQtZK)Yr8#qu*YT}rm{D=ZK}liR@=qi8 z_hFOI4B7ph!eKVA8U4NPtwrrq30QH+R+U)}^Vmwvom$Hj=5lh1 zg>U-@3wegYH*uk>$j{^7yFopL3!Uq&&;_I`QY?DQnQd;rscGZ062oFeSJ24b+-?T* z2S%2Q-Mx7Zyd75P#=JEU9{%K0%XB<~^}@re(cK!=&K}R|b;@;|SxBiu92Y1LP0T{W zHpcVHyCfN3Sme(cw0-gG3M}m^Zv_j3EC z)R_>FL^I1lu=PYZ6Eio^_q=SwxR-~q zOdBNXyb3p64Woif5*l1hv55KDbZHKf^2Qdg<&V@E7cUA#n@{}5=$S_Q<}BisE@HWv z+6Oxx*@n0AaanbY(Dn8T8baZFp%6vT&Z2ZQ--~qF!=migY6@hfF|pCrYdXvnH}6u# z#)>e97+7H8f-cMXhTO6Lpd~GXvL0wO!0ODqTgqU#t_Z$N zV;Ze2g7>|wyv#~PMK|Iw-7Qlmuf?gvHr0A6i8(%1OvkGW%ZeC|0`d{cjO}l)zK_4X z@Y5vvW!+*k{dgp={yj#+47ut}x zQQvflcNGox9=pS%3Na-)4Lqvf69rZzn)`NtE+2RTqNub~T7HbGYBQ(#F^zKXU_8EA z*={&6oyQ-PH?757N*D;91AMwOzd!fdYp`i>RpeKqV^}Y~ z4Vj1J#!h<~rEptg)f~!r?vEfwXBiAT{pM>#@V6~ceZ-ZBbK8sap1ZJ43h+3%b|tEM z_7ypo3IckS@|%hZvOVqM!_LOj#Vwaklf*^Yo26{lpscNO%U4FaH*Q)tGzMgzP018fr$C@)-3B z@|M<)hEaR+XDpGgNN#L4J;ncKxLX#<8Uj!v!Zt8}kWun(tKL#<#DlFVxI_y9Oky?&eK0JSf=tM9+*`t5e6JcxwgA06RS{njIyJ(C;7ES@O-(7oh7J4%xxm`GGUKtE>&K*_PM%E~dL$zvL;5~?dC}v4s=LH&L z-5|}3wr>i}tzV3LkwI)eMa@hyP;qBWDxHorV`LRS!B z%fO=NKK?S_CgsNAH+@7jJ^7h>5 zPNa{qsc?i;zCUOy;j4WP1_M03eb3V2)BsFIB}U~nxhS9 zklC0I(n_xNaClsUGdQe#YG93d-iCu4N0Ul9S55;~oQ`RiZd%|e*e6o(!jPs(Kva07 z>Qd$JZ0jeRrP{9qW61>Tfq~6|Qd;3H8}W-{_-^ zd3Iz!EocDu%f@4gAF7ijG;e0WhG;c5gu7r4HKvT=S;=iREI%RMkhj1l+soMO-m+YU z)&$5xO-H_8l;27We?jdolaFK2M(wf| zN?GLqCyjRv4RIm-*B}fEx-5q#Ld?B4Z-$zzvExmnrg@I3G#9Rll2VI2%Uc2j1m&Wc zfR=Z=yForCJZTF-Yqxz2JcLH(j(&n*-%~$^y|L+oh)~D2)BDJU*OY>j+cR3C08KJ& z{I2YKY^ZJ9DC~G=mNxx*=ed;ryQLhBMp^cJ(K#i4h&QhdSh=I5wH8(fm(qx3({(pE z$%N7tYAipiO7F~4g}5Kzozv6u%YGVD$442zs2-iv;+mck&OzF00{b?LdY$-R3_N}~ zrz((j8W3k*LE1-3OLT($4@%{opG8JuTA9CZ5GIIrbPQr1BVxrW6|>hr#L#`#$EECZybN}mhrsk@00(Di>ZC>iQPV;K|Mw+(SZ5CE#h1)29Bu1 zluSF55Nw41Fcv#|fxQq;nthchg7LpAAibhLCpwuAOfD%|*%KRI093X?w8sFdacMw{ zTS^Y-xjb@YbaiWir~s0H4*W#DkZIa%r&}!wm{Z#?kMc7peu9%6)l{*WPHYteo+AH) zxA%-{a{bzUQ52UVuoM;PR*)`TI*RnBAib#&AXMo>sG_3MJE7N5LooD`L`7=ofdoQT z2rU#TA$0b`TL1Um=bZ6=JbUwj!59*TfoIp5d>(&})qi+!lan)1ezA^X zNlO#j;}N_y8KRHlCs=+;u{|EEQMK>MbngBOn9E+rrxV(d_ z9Dy1!oN~g!!NJ3~&(efy=Yw)SebP9cZ35D|&j|N;`YC$!gm(_|;8+lN>RB_T3>W%T zi%a}GKK9h1QGBB*VSAQN`f?@++Ggc#*OG+6g z(K<9_Vz$hL>gSRmrei|9ZFgxJ9^HNwZvZRIQAimYEVzA@oy8%Wg(7qZ;Bm$JtNF*# ztSJanA%ah{uJzgptW?6U-f`oq_<9yqF(K_H!%kNk-KC)Iu7!C?U>$&elkM>mc`l=p|8OiIML3)~W0)Ri$_05M6vs~(fS zQE^G}t;SmO$#eht#^bA8T-hzLYbpmZ(w&J%)^UL44-o+zD6E=f>UMhHBniOy;sO2s zxVF{km*jHN25(L(z%B84%?rjA{(K4nTB88Y`3>cU3tAj4Y7RUm)t~BZAzcF6WDw@a z?Y(y+I%2|K-=^^-kGIDwD+MZR0lZ>(+q!rPF)XG!9dXd*T0hOJ5HKYWa)g?YFx^8~ z#vA|`=q-mgM4h5aKM%UBVytCnTN1;>czDr#kG6uHZ%9o~K8QuA)zOSce02nf+CCWQ z<1mPpdb=94Ws*NJl!uEJo2y2w+^RUqUh4qH`Z^BtdR0H$IyE=`qCwhh*)!JEixbB$FuZF$-Fet5s1#ULfNDIr0cSkKPMc;^GHTk}+*NmsMi)Rc>yPBb#8o_UNO> z-KioD{ijEA+_X2QG(-Lnb3m$`QfLE|zK8O@`8_$9(QF7vH%C-Gm}9RxNyyMV8#1p6 z_+4a4QDZ}9kteR&Wz4_R)7Mo&Lvyuy&xFXsDg#fb@;VD&u~oWWa}!9M?^$jrG&>$^#+ykezdW(nQ(!-#Y8LRfp8?tiICTV&@~anS%XSTGiGl|NFO(H zu^-d>!EG=fy-AqH0^*w>PcN$5Z_=s|2B6tEWCKmV?B0mK$Q+W`h0&D;Gg2;eXhv2% zFA*@VjK6X>B*m#UgVyk)6bbrVI!ST&eUTn_-l1lzuxPoulg)H75h0I0g6f7`!}-2hj%W6UbZ@MA>ILLr2@pC6x3FU>#9?LJRc^8*ZXjtq3P_!SC~0)9UTto{qo=ab7id7IrT-!v#IO^|2}v07KGSjL{F}7 z$)X&zwC-C?-vP|gq%d1c$)s<(UPTEpxSj=@mA~vh?Yh0`*wv^Z~b8loToY z%XNMry(2%$M8@ajAbK+DO<{T&_jNNQklk8S#$!&^QJiwmdGz+J^7H$kG`{Zch`CK1 zl2l&!VkrSukNl++lVaQPq|hl@8Q@qtDlDkjAWn1P6346@V7dU^<1YvT9_+DM&lFpl zIl+yMi(Nh$BJw9m6M=@(U|dsCDg6jthdIn0Y~@!HwS3>`laFg2CHHO!n{%bgHt`8U zJCofdpf@kfpfzMy6CeP2?rWtyqKubu{SU|`Pjil<L zAnWMXl^n*t;}Wlhd^ob*lJylFvV=_LTlRk!&eYX%J`#SU=(?jyexJGH#7V4=$DCNd z+L1xk`J&Ni7AxKYYOIe%LGZrne6NiQk;%Bi^m`J4=8*cJgQhX{*j^5FHsmCqk5~j= zkf?PgNRVQq*06;pZh(soK+XDLM*-9Kep_BsPz19l;j)3)?-Cni6S?vCOIdEeZr0NAu_9rILL&t8O;arB9;m`z8M>~Qn&u8qIEqZlpyQ_WK@ zUW`lApUt4zamQm2di63)<0$FIXh7W}tZy1o&n6J@+u(m>vv0ip*h zTZnWK?V~4wq>=i$Bc_jOTtk^YI(tDdC=5a18j^tEj+hkP-l6r(Y>qLy(A!jnKWT!d z4L>Ugc?|T{oPS~t#oQ8fG88QU`}DmzkO6mW^Kb_Y>qJ5U6g0^`+q#DAzwfqNGB-uk zd!PMK0l&=Bbo|gh`PkHVaX@Vu4|fgf+%YA~fq`q~7S$YOA3ZTK>pSM2EMzcV?+&ze zoJGtqw-3a`o$mX7ech(h&d0kekJ?mwZ-gJ1_MuMu>t=AUv-3izYpKEgEiS?2SZ=0d zn~F#cp^%C?;b+N)DK{y&M|<9jCa{S-mT%^H#{lO06v8I+cCqU6@uGP3Dl=ZS)UZ9x z&gxmn{+P)>d}4lENEb^hT0Cr)_|ib+YL<`AuFsd!w3Ed|k-3mq#VpJDh5_^$U!q;NxSRiVf>1f;C4kj()ZJvfov+{HXSJ58!B##wb+V zl3R1R&?lKVXrvr^qB;V1vSk-av|IubAWz|LG38^=y#2_UZaP_oYS&I-HGt^ED>5WK z=DsY-P?QyreLIIyoT6rKKZuO17AchhWp5LSRxVjlYXkuV8r<#JWFy;hJbz&CkD9(b zgHe~E>jXSvCho^7Y-Bcy6ogHhuji4N7V2eDo{>}agVWn!oPCC8r07!WaOkU)x zW&gu3=|0Zvjr5b@p2Rt4wenOOe_WD6%_Q+efiOLMeo4%{eQ)g`9@eu(u)%`Jb)2xw zU&HjJHOoFfTKi2&2qj&PcXV!Gt7yZit_OO`aI}6^`cmdH`jX$oi>hQbw$EKSB z1a+Y=F<@&muU|7lcI|KCMV=jPnq!W+#SvEH#s-Cd+JL@Lz~Bx*27<6K@?8Hlp>(6WJvw7W^3&cEbO8a5eEa=!<8f1; z=cZlS_F7Oz;K}MUR=Ir$>)~;RJt{=R%8h@VlMO64Gs0p=LZ06whO+e50Kxnab7$V@P1pE*wXL_Ng5R>Fs!KUf z;b+z(O`veUMTPv{P$wNLQaj=Gldr6lS8I!%X11&w;STQpbH5@grcWYPN?FuJM)4I^ zB0!cdiTXxv%eMb1XbAKENQwsJ1?i`uw->Jz3_?0Px!)?*&x#jOWEaHf-MnwB79`O2 zm$IwDk*#?L?l#d+see$VLt8!-eS`0SR`; zPs3$qD#zyX7VU@ISxfP@@Y)mgSk6Si5iH%u(VZQ0co@#tA%C)B2+I!|%*XV6aJHuc z%{R+*f#)%2;Bf8SwN5omT<) zAjYaox^8=arZe6ac5H~?4rbekz9w?xR`o)Ucyu9UKF!S#5e_?+GH$mRAI`1#%v{{r zm({!qZ>%(|@%kbo&Z~K1lAS0M($l|fThuZzbH-c?6*Sw1n^{um?h63rX^oP zku6KIOtPU8)S9z+>aHuXA&+lsrKKkx>z5m~zv=@Q* zuq-*g14oAWN+ga+*|DBtm@wf^){jAw6FN%%zY8UthLxv+w~Sa%u(9)s$hxlKh?$J z4%BRdDJVYm#h}6;s+S!0xn2y9d2M=Q)O!_*`jyySx?l8(nNR1ht^jDXoi&0aw)#mu zd{j~yn*~AXJv-Xp+#C1~W3YU7)FkHKcda^xzU`u;LcE(re`~q1j0SZH+plz0L=JL2 z^hC|=0oKl0IoWUtjxuo}){F#xhu5PEx3%Gq!vl5HkSX74|17o2m}CDI zv%c#f2-yCpJwPof@^=1YziT#D=}!GlOY8PfUbte&Jgf7*ZS1JFm3(i_-UL1ETxqe57>IWD zJY_?jTkLT+RLH#nXRTXnIR_})Q{bkc0QoEhKlEOZUY4qX$S%K0*#p%t*S^lLN-Zd}t{mU+c$6)q)6#I5xtxUV;*@59dYy?ac{CxZNHpHxebKS=Un^vZVX% zpoO##05DN_k|f+g)9DY$AbKZy1~aV8rytGK`suz&h={PPvPPPZC~r`=5;YTxPlYcJ z5zdoMAB@ zUF^H6Xmh60ZPlXy&`CVG%6wI~*ure=KZ)&{1bZ^xK`&!7vW21+(g;(rz+EZALlrl7 z#d*ky|AtcvMAqBUcKI%F$@w4x5HGMdi8H&e$;P!DiL9wx$AY1m5y;DNN`RUMRC@d) zj}*~UcN?qm;S#AR7$w^kj==~FG#kU&h8ECrMV_QDJTv6+b+u3SF9&>h?;XqC9VzP6 z%F-DVE7IjmvR@4R)fOfed}vo{R?swNqTo*BN!Kl^Jaz5H4IVk)6)7sH#+DWCTx$CD zorKdhyKcdBA911m@u}IAjJb9{!mYijMTpVQQ2R+Tm#zH-0-!)>^ z9d>*BWgp>TH<51s3r-7)BW1>-3x)*45&i`US7N6%ZRm-Xo(K>+NzuV$;PchS5(smY z9^QSoV|yjfW{reRu1@Xd;=;3J71zmEsj6m4#sb@6Q%P78=wn>yQd?>8cbF>VJ`@n8 zOn8zfH;LqR=+TI^?2tijXz|`xgQ=-0g8??=R=#n_Ig1)cr(h1IbKDXv)BsVdYI_FA z=ZeTrpB^fdF2(9Vhl*B80jw+7{8PZjhXtMYO+aTP@4|Zhf_3_QFB{fD1z7SoNQkO; zoO%j~_H4V)uozB#`W!8Z>d5&jJP+(Oa<{G~^7CF7e$n|N%^Aug)K|Ctq<<_Wg{kI= zMR?0l{y_=oMnrYY6MS7J9SvKWH6SY)n~t2620*tBVFwvHW8D ze@qrYlv&}1`1#h_)%kp3?bec zT3Qn0+Z!9A(t~2!^;yY5=i{oMr<|D?P!lQE&jB1U=%H#NIf2`ihoT44jd|lfJfED} zzKlT2W{2sTi7y?41iEm)$w?EgphGjLqHPTH#>)#9R>IKIL_QmI=EWF7Ul(AWzGu-oX9Q6@}YmEvLyDKHEhu*hu*k1HUTt0qVvNDA-`NGm4&`3f< zAXpX^C5f!L2dnq0w3547f^5`_4-O78a(RQ`h9XJU8BGB`!!^tkk$OZhB?9{AMeEmgm- z5>HIPfIr9$GZC%Y`Vswz77>&irmaU?7ov%K5n@z+u3H4S+LSKWd#~H~>w>4zFJ-*u zqx^&CIz^oy@wZiQ=Z1#Th_4zfG5sD9%79+`LKLr1+gN@J(Els=!7-`GW5E3rtYZsnSb?64Gji2j*x= z>5}CcTvux2Ylbp>i}jk>2uTl~PsqcJ3pIWTt_p-^#v(7%02_-1&@Rm&oBghZGiViX8%dkKd?xi^<=GM!L-yna9N#vcPmefa+UquEcQV#~!g zc6}4)H@C$_u)5OJl;{(ex>POA>PL=k!5SJRf)?oRLc!r%g*6<1F{YTe`fb8u+FwxP~GEd1@&$yz;w9X}2e*b5+ zCs1;A)mphrF5RSDm;<`Jy$nF-cM~{(Gqi9p-IcE^MG95amfq|4Bwzh@hkc)IOOmd6 z{LP2plQ0RWDIx12cj#{%^Vx(P6ift?C+#gE?3$4~J!K3Rf^%dI(HuJ{|4Ev1!6C}W zY%yx=c_{x~#}6Su5d)&6Q^fvI{6M27t)y@!rD|boKW(`A$bTOB=FHPazT-l;k~k-u zW6&hCKI&xv2^U3ge&h7n2fB8oI%}%t$r*R(WdopiNyHWRrRimVVG$7~_%1yFyb8q} z|NQOcnooE@-S&Tayxw^1NnE?xo#&IrNvxG(@T=jSlb+iDc9}SfTuTh*1XErhxY2~<4w=Wobz#V!1=!^?3$JV-H#jw0lla9I`y}kZ>EcCgBMayhbTZVJLBbA zPg7c*FK}Xy)k0z?{QYda`XTcbN_MMF46rMnfaVO293}PUo}c;sEauE+OulLmsmWOm zy0f@%p|DrKwE3$eC&Sm8Q?3q>J6WE2T8b6Yk}Dl_8D~2O&-&>&iES%0EUxn=6Wh+I z^wxFLH?8$d5oCP!qgvz^ZN2oDDAIJ$(47>a49&((P|>T_TVOi|J=B1{Z99}yGgVSv ztI*4p%*9>KVOa9)b~Tzin8UT3m&K{Rn4+;ttkv_#Axk>vNV!fqA+9Uy#W7>W#<-pp zUGHK0x?H&JJW&$1B-3L>#tV_Mn<1Kj*Yv4|vdL;%waI#VEF0p{og#F1y@gU{>0_j8 z7=OH<5w1fU7KTt15weh|2I2!F&mA~p&1YFy)uOa($a*;Vth&N@xEPjvBLblIQ_6tWeF?XiRE+o$g@zQ%D& z_Ev7ZnO5BFt-6hmb-E4#V4b+@=B0o_8EDmuGTf}yNgUbym=f*QT-$tFb|QVqjKC1n zHIcI{+K4M)ZH!k}zZ^UmIiG41(EegqALudpXG!G-Zf=}FJvHnfksE;Sz-iYCMzpA? z#;`QIpN>k!902hopcri~Mc|q`i?aiNCN0&bw$P7g`!0{_9V4b~J^#$S!abYE<=H@; z<4tV*`y`yexP2%8gWhA$d7XwvsX^zYZ{61u7n*UhJ&M#xa2;YBmcginxKLAx$Kk~H z_LT{x1f~E^4|RkE2}rvn$pg-XgbU~gpEWh@LxQumn;Y%f{w&kO48LsKfo#suD6i!z z+{YXfv9MzU$a6fT#N2n_AmcPkIX8mHSd!ISz0&yjnblT{Y9!3y>+ADd@^V04LICm- zK(1&9JHF#H_6=LE3>%NLx-4|yI8&GM8L-^Q?HbCRh5CGTT@`-8TL7vvIZ$%w8v*<` zq{8j@hCHo-$;(PDFz&%VCMy7?icxmR4qu{=(;xL5=*$C@NP!Qp-ks=SQVJj%EuZj= zU3%|617xH#cNji3nKp64Lk5xG-7&g}z%0>WAFT&Bmz?`pN$8F;^8#(9xc;LJ{R)&_ zw&yY&MQt4}=61}H+NJ<9pS zm%JzKTj?l;3$D`R&gVmG{&nk$l+ZoTVH>pZf}z5(zZ)gd^a8@jXI@kCHo&^!!q=Za z?|uIAMU3S=i@7yK0Jl|yO0X;gn&7%j_xhwH?{9VHw0BES$Heh+tqU-ju`KVOX96_r z*%c|$Nh!A_lB;&;Qj(ER0sDB(r3!@@OPz=Hp7{8wW9t>5QAtD7@D^H{It;pV_pWX$ z*Q%9FEq$-PF8S8oy9GU7u5+2jM+II%&l=vm!c}`Y^+{C+9L0?U0eYiG75n8IBDFE% z&C4QR4H|df2<4f?ayzBL*!M0S2|H{U6q_fF$KcP&B^& z8lS-~^2oQ?E(lkeYkyTAvBfS#d;i`&`^LLEfJi84ZpLgk z!h8B*wm>4?H!7#o+S?@k#3epEN7Km8`aj|+fBnxCip$gg36A;yOU3zLVqrjvtM~f# z>q4iOs({6edCjuRe;ly?eHZ`v9J(Uz*<*SU07$r+<^P|C^Z)%_x28Ki|KGI7EsQC| zf#rY|7-Fvtx%@c$?^j5F!t?);p;7kz|ElKy`Pu&$?aTlBz5JiWc?!M>99?KhPD(np zNKXJf$lJ~yu9~It2;bIxr>}}_3jg(+JbNE~p8iurgtN6yV18!Q7v}Y|T)#r%U5yP-HvkSro+(x@u4FVRyt4dd7=1_h64IIRJ=TmYnp;(WO`}#Jc?{H-87V#P zos;9Z`X{W)am-s{h{N{P`c?;&wXcpch=?O#`XVmLvGY2=Ywc~^5Lp4iPkzV#dIF5U z<7~iVq$ElPIcvFIk(af3zvQU}spL!Br7^>yY`RB33T8>;7$&V~163U}$-C@K>YblE zAMwqa3}k!yFHRGGWW6$I`Bcv*=WqdqHmyDB!E`sW$nq=@TXFn0#YT*nzZEdfaL<5c zWJ~qbQ?e-B`Nrfl4o}s+?XEB5Y(>qKWp~H_Qe5=;7;7@WkNGP)O0vV|XF%*EqIqIT zvTZ;7iot-nLjbmfK8R%*?Jj%u_U$WQ4TkDprl3VAE$>Yan)bi3@-5F23B#G>a?aZh zy$<)_TMHEn+~gxlEk1E-;X!rBWg2B`7EaE)0NOJ@81yMRn)%dFX%@PcsNqE$WMOsw`DY4rEY%2GcPKTcAuIkd=}5P>(#b$h_hCR9%?!VFCPqu z9i|AePS(@W_^I!9ZcSSnsR zT88O;R$`w`MM{LZQ4*nPq$>5z*!2M8Cey9#<-Z>sRbEV*QgTZ&vv{)FxDYf|9&>2Z z!M`(#0e{$KiDc?5$N8o&ls!JLv`6~>@#>4b5>`U@)@O2Tm+fp_+DkqkBQqQ5Hm1D` z>)3Xf6n%ShcNcCSc#P{Udag>y$Ug`me2V6A)B)T6=omLj(RXX^ez6Pux{v4utu=VI zUGKrmu8YsgqE3dhHXCa#-_^C(SVD|6S%X4o`M76n+r_;uL(S*_+(wU9WUVHcK&ce`^I@KVpYuv%8yU>-3G+abOAvSKZU&j%_@0uaI?aKJgRbczA|9Pl$c5Wa0Sbx zX%@mQ;}*nCaj`U3Y(~ZGvTSNut0Cm3vZ~d)_xCh3o4^Xh1jlZi}4i6Z;Dr;{irth03dSk>VITe`iQe&s?op5}97-rCfD5a{THagF# zjRnhV9R{|{bwVAzTq#cvzRkUSz>p4EqGoMkm+u<1%Vy8wH(Elx;McHrq%?q+U^=yY zS!diI<&r}LHX=_O?O~&YO*Ev+-|3MVjWa1f%sr^$);W#^Lc!3 zK6hwdlF=$c%39EP6x$-afvptV`_(QMFmeToqD-H8S$c$8NCM9+tW1~2Hfywg2^M>^ zFI?>^=}Wo7ie8C394-zsX3Lp z=(7fC4wpb&z14br8ST;mIM=xMj0&k&kkf7m0>wP#=WedR;+iKgT8d0apv~1Iboe4#**-qf*~3>0lroC-K;6f z%{J&nYCb>%afOqaz?mqdeiy#S*|Q-S0Q+#+tU;+w45|Q7-kXsYZs^Cx2-CFJyDtYa zhDx5(^4U~oqF!i4#BwBi0H7DpFaF0B3v(oEzC2tiq!gRw7{CFTDRf@k4qlp_t?P{H z&4V#&kWHS@`6Wb*zer#S9>3k1%2ktk`b}oPuQG$?>S)Et-$WbheRCDA0}-?!2U*Ju zJZXKgMzAXwYL9d+ zV@X_Js}uo_$YiCu90`UC?w9yMY(HETuYxf|%D$O}p2kACme#YqEokB;2+KoMd?OS3 zytv!7ru8`)uyvb_TZN65yn=k;lhD|SXNV-1+B*Ms#yjcz`k$^*HWFA6aCo1z$*Hm1+B^Q%Zo2p?` z^!tMjjqy5+)N>4enPR-g{a2*a7*EXtWm<|Wb(}3(bQ}-jw?MGI3Gy+k64&v4-w^CA z?0p$(1*G8(989svsj!u}6mG=B@3i|F6%w??I|)sD8t;KKP|xtArgJ)-K!^)UPrPE0 zJRaOMbnc>KT)5n-t`Y55Z#jLvQGQ5;XM*kc*9S65{C}y0R68ecB>(<^TIJ&_)*Zig z$FKq!K08zDSZ&o?vNW(aOW=|`!3S+8t8qGIQ{rno-*6S{rzfD1-}A z2$%?PAy$_UsaxgP&uVI`b(DqOV0)Iw`cXoAX)#$nfwm(V*s@h0Sl@STvc*;I6k7r zO4QDreR7bM5>@A)M_Ez?i!?Xs5D@szlXf?$1rLnTe9&?Is=fJg(D1EP5JW#ChH=|V z{->;TDK^-v!b|-1-YXmg!Bx%3Xq8%tlcBDW`@0u}B#+n!Z#`I$RVK*vH>nK(TFS}} z=or-$+ZpawdY>@jLE)-UV07M_?CMV6PutGat5Z~I;#7!87ZNBpw#bP*F9*jQ$&sO+ zwVsvd>Ac}?eZ|=jRCej}rcZ)XKHY+|1GD&^y56%#t9&f_gss4ZGK11Iff54*UuAt? z8!_CWrvYunOyEwHgFDBV(8=eL6;yNtFd4e`1)sEykDt(f@jL$ z%WvcCsgfbBT2vEivrU9D-x7IW*yXhqWNNT5Q$|l=s)9qDhGx$Q@I~xNKZ=+bLSR%6?}dGqKR{Q1QrTe#Qm zObXFcKXOydi4-5=vv%6AVO~6nN&#tiew+6xG#Cu=^9E|dIKwu;yb{L~T?jZn{r>gq z72Rr*zTBLg4{@Yam}ZV=jP03^{GE1*Pvo(ZsB0pg=&uMT^D%v2)Y#Pa&q{L>0Ujgm zYbjRCuMz9CkI5$;X+=%=Tm>DLrOB)8x+^x+dB?Ja9%$c5q}b(>;@UyLDp<1uo+ zq)`!d^Ib4<3V`4y}={ch;1u}68-udMkRFOSb+uO>zP=Te2P+A6GvSov&? z2W{1p6T%Dip0;jfyc^@?Gcn`rO<| zh)3UoBy81>!?=l`kz_mEoJrHQhn}Xi>ckf*_4ccpYi7pmDvP2@^1jsUU@$N5eJzE@ccenBpgZp8*D}CKd}ltu0DTE0k7z=b3WBGH`0HC zpR|AoiY+zKBzT(7Mo7l7uX!kFh}xjNnqZHS99^u8XU8$%2Yl*)l^!e3=Uf-D%L2Ur>;-qI>Dmbmt>y zCB__&AUcV+D`T4DB=ijuX>zT$!plPgeKhVFM`%ZV)&-s_}9$T;n*mA5$c%P{)a4uGAiw_YqVc`)eQU=TgV(nU7c^)UEnZxFILnBVdc=C&8NJ2f zTF#=q)ztC4Z@R-f>6hKe(3VWdfhI2RJ@Z5oS5P$CnDA>9vRScoFJG7Pd*_--T*`P+ z>@SM}Z7I&r5;=TFii6I2z22nCpy=N`4bQ6g?EguE5yo(9UV!}^%6%LJ(bD?*^(!){ zLl_{PKUPdvX$IdERcntqFv{;&wLp~ePEA!Jfn9IkLUhUMl;CPSLjz9FPi>0jUb(f? z{rd)!)xb3dqy*Lm;R(kE52GPq;24pCVlX)qgJfgCdAv|Tb#5T9b^fcVa(5jYO&q%& z*$BF$!^M^LGT^GdE+m#P!&96Gr`wvi_QL$e+GXuERviIUt*App`u&~;+X-TU!NMda zF~T^fLZeUkp;OzhYg;vb!Ns?$nxPg?bnV|Q$eLU~d14KVFOllTwTH0P%>AjUbFaVB zBjIXkzErCO6p+X9uTW&I*pHwd?@9GZ6Y7x#QVzsKY3do_M#K#ru|PKlsnQP*iWf>% zdVh-nHIvJu6{nSoXj(~?_x683gUWndk=Fx~CRv86y+wTa+;O=;+O0pg707ARzY?E& z@Z4-Ns-^{sM5 z_ijkYI^?Hb5-+&q&5mGK({&+RL7g=NTm|4DPn?kTQdh+G^U}*AH9&8Eo zK<5c1$yH2G9o9q>kq7OT_UKO;Rl2V#6BbMtd2C&!6JoSy!&8 z;JDnK`ViULy>AM_to7!raK51drDNy@Y+x+c_-mWhft%w z{Vw7>EgrJcqND=%f|I#1J84IkOni&`AtRzWv`6xXZ{33o*W};I63^8+f9p^68-K+j+uCU-_0)N1xKF<@%w95WI~Qi>8^l&sjKC3?&_#9NoB5AlH^l}V z5=*}a)W7uaT`tVgT<{tz*OVz2WV1hOkc1|fGrHf{UGKhp!~q@)j53n)>HEHmj<(x} z{q4nw-1Kk$o8j4z4!mBH-}#*zOcDQd&B<6;riw>={p(PVKHCG6V$0{%=wT_Yn1`T^ z9B#+7K%H>6O3*tOj;5#-tipb;uIO-W_lBNYeb(*gJO?k9zi~%cQy*<@H>pkA98;VQ*MxJrW!5xk3z0mnROGEzpTWje~|zr2)c*U@LSb87Q5rd|EDo)an77G%Wf*YBG{{Dl*R z(eh%RREE044F>jw;T?mI$=q2wi~JM?2hL+@-^l-318L^-`={pKPV*H{T(s4xv<1lb zJ!4NQGU#0gU<}c^Dyy-a%w(4?{PNFAW*k-0)U}_X3ZPPjVs{^Ejo!L5^^eOtfqbZrJ%GBr7k)RU; z>N^-iRqd-4IeadId=9imp)qXkNJv1VcSu#|Te6gF#pZsFL30!Wn!*Z1as>yV@$?6z zUzuVbhc1h+o#}!Wow;se!l1!eHt>x_D7=Ef7Zh9JcyvteJ(3HaxP_@yvOk-2Hj+gO z%hy|3z;K46`AJ{;<&3p4TLXQZI)f8%fHBk!DZf83fAKJyPU59H*5W$trTZ6Hy(^4< z*eMKwD3b8<^Jz#Z9mKJnf6|1v69oo^B!aYQB_;kU&diCus4;Ylt@l&)n+44!%Vs;z zXCHtd^;!SyHGkN2;R{%;_n2TJ9(Fx|t2|ZkHJid|`@qg|=-XW(%%k305^|;}&jpco z$puvp*aP6;~LG^hAc zqN`wePJPs(qLZ&cFIUkxE>wxSq6_tprIAtr_y$6H$_WPQ69^&${L`OF?$DZ_0TS()R^dWfBG1OERinsAqLa<-s zdU>$l;&i$k%6BMq5R#E9O;9}H@Cf3f92g@A5_ioa`i(WGbEGpm?2`@Y4wp6@@2*GL zQAKHK;!-P28_mz2Jsj%QD*}3_bGsXVlc^G#QxK};($F5;5_RtG=C>n1>`$AJR8wa~ zU^L*1lg;ZhDQZEK&FVR1LG#AS4-RWIyHQP@mnl;gPRoZJrRy@}0r@{aIM4n&l$n|C z%a-G9MRN&9vq{G3agL7}p1I}Mg%2$gQ>9P;2qTV)Nv?t{A+&_{7)IBZ#nCq$+!bC0 z)Z4HJwr|VkG>KN)Kf6gR*W3K_U8oii%ME=DSlg<(k}W0dvxt`8-m=Gi+uHC=Hk5ch za_Oz>FnP*3z}xcOPo8_}bV1Ofjy%-F$v&oi2yV@{=lv@f_s00&kegudE_?j})#Gfv zXkf&nFfl6O;uA1VX#cX6<90hlaePQZ)^ZCdos0ebaWB7`zFODeRPp5k;;u9E$9c(z zwtbDj+jhTl!1 zYjb=95H3B$tNg3ZH>4jw1pZm!r;~DAO!55!+vupzsdtRc?!jmNF2XJ%*({F_+W%&r z@wT{Y!t*SGY+3B`A`kSK;gWV_N{Bb+AHg!=9%zEcRO!C-leDjV*2Nk999E2;F6}w0eF+5%*)IBd9=1^TU})-4tVW z`>EN^v~$eYigSL|#HcTcE;UWi25$QsV_Vrmi=gDp896`mDZDcmZ)-w!amG6>=wVk_(h20^1Y9 z;sS&xXc1!A#^A4* zmEqjQsf+E}WU+v{o;N2L1qcS9N{jJbH|7U=4B1Lb!@N^xPkXQe5^^I^(2!1{Np}rt zx#Ue?!NG5U#Xl_`HC~yhGjSQ;E`Qa!f6Dl0Mr$c)1MQ@5Z9`3Qe$50e4;!Nn@#QLY zx%`P>c`=#0wRrlT!2HssTMq5Bx~c~}o`?*MpnkIpy_vwI7x)OR7<^ggj^2CToeca= z72YDQJ%~fP0*fqfm^mxFJyUdaDgDdhMRH8ncSAn*s-xP2q!%G%#N5t0I z_d{Xs5gxd$xI zMs0i7I;&2+F(Rbs`X*ZO{JlHvBc`%TMMinJ2dqWLe6KX z#S<5+)JpGcQnL*Wh6omAsr;FxwhhCxz?(N?0VSU|Nc|wu+5C}m0LM_vswgFAF5!e_V>e&VH{xibfi8)*SG|~lIWCD#gacVuPU2^HGvo^XgDYg{0GVjK_(GBl zEl#eD>XW;2-C1njF)o>IQ0IX6ryVyxiF`?ZVDqQ$<09RUe7#O14GB5m&fKu;7z^xj z0rN_B%65#A_-j1N${p8DNRYJ z@{|v6r`2&sYF%k4$x)zERl^6gs5bYwj^<%Em(d4)o`1)3)!TOr<;wf9EsEQH5B7i6 z%}Dlg(XXkgu8ftK(GJhvo*+ZwvbNI~Ha0AJC^7buUd8L01z(Ogi+zObJKnNp#HyvO zxbN3zm<9Ao1(4#ekq5u2pkTO{by15lCyvL8TYjX0Z_=*Y-gkyZHdNlDqK zBoYD8!84n-F#vA8afXgoNq9~$XAwjp6ffk&nT+>v3gY@FAZU>Kz)G2@J^y!rxTO1t zIxTb_g<6%Ni90yO|LLwN;P?h!SWW}gHWazhuyRR3AV*047Akn+0jKkIX@#<8+y?Ed zg*n{$3x(>fVg@qNTB}F+!=;QThL@YBq8wX)tl0z|9Vn z9*)+c(;QD@si*Og%tDHXVUeWkz=T5AcUm?bNzb-djVKQ@@k+C7^C0ApL$m-xJ3cfL z8GOFCH<+ObPvhfyF88}So8zoqqybph@cP+6oj*hF>@mC!JVP_QoCF^ufu&`usl3PZ zN`i8BsLHsD*@K&rQV(ywPFAQy@q=L8RV%cE zyi%Q(U*a#-@E#xk-ls(*4TgaMWrp6Hq@>9wcV3e^0Dj&pqEeswICYTVY=4)*7sv?T zqn>J|e~0N~FTpO)wLoiah`$#^dZ-pUYW1~R#&w$Y$}5;>?5gTQW= zA?Mkme*KI&eR6}hl>>Zs_jf<-{MMdJF+Xf&b>Q326r;0qd((9pnA+ixh}0+8o!CR9 zs^YqlNz;Yoy5j8OkX8luV5EH`<$2IMJKaC5)j3%hQ`fUir=weNMd}sT%zdm1 zgKo-uMimpy4`Gp{li*2V{W>OK^lqfT^=M*pJpWy7R=G~=WH;i7?{Roay7hX8!f@wy z3e2s2?bXK{t+)&Gnk>55rRlp3hL76%jx6>I?-U0^IJSs_y zUxB51i^|pPOHv#_%(5lrhFuuZZba(xG2lzhnm$%dihSHrRsSH~3*5k&=pDwvuj?PfoF5 zPf0!n723m7q158TP}O-$r`+V(^z=5+*8gJeEu-S zUVE)M*MI)zoKbJBQVDW%YWi!9m3tvfW-#7>=&D7I_cL^2bE;x)O*%MN7VAc2*m=&$ zNx8+X>KlhX4t_5$w(Ctf`ufq8mc4tNw_C<9ZPdB#&!BuPOe2#Qv5nbS&?NjV537qL z+5Y{{cPB-M63m|4BuMa2y}O=+tRKdsJq4UW0d|FKK)f#6aq=Q#^TSQ}k*9!!JFqR| z6-NnKfsn*`{ZH55!}mM(%Q(c?g;+5sJu(n1c3zW025~hRyjMbQ&3X{GB1wo-s`Apd zSjnk%YwyCVjq9N2O(jBl`T?o$r8|3p>5@w^ob4Cp3e0Isc z;T++z-Kuf(ezBo2&&8%zLO4Cmsx?BtrM0nPvgh8_HM-gi)Ucngu<@Nh^f36cdDf-> zQK{9}u&u>!rqp9?JWNHXeyn$SJQuy&+H1@!3>8WaWnJB#iE(gC$2>diPo(oVBUB3R? z{1pYr|6U;N00JQTjtcq7Id6&wdpjDBDN(sVI_Y0c0dhvN{&VL+c0GWAl9K9{!#A+| z)8EcNTQhZ_y162s>#-BmmFV!Yd)xX0r3Uz$wCdQxOicm+W^jxx@v#A-hMWi>Pud$j zrJZ-!Vy2ia4%gMpHwl6*>jVw&vUlF|$iJX0PjowiUfh5+D)Mtg*z%i(D=dEpvuA5p zsyxXbWwEjmrlNy}Pro2T^KrLpl5#bAm&+$~zv>7#{WXA02hMUyJJ&N*{P(iLZrqy^SC{?y%Mq-&=Cj{vUX|f8+Mpt=#EtO!7s-4BiEFvq(S{t5|fc z*U`CD`BkW}rwlvpE{S1JF-X)?xAXUs8x z08||R`AFBojj^Ubw#K;yjV_7pKH_auY`i|&@`kAW<1QFCd_RoTj^g_B{JSF08wjq* zwcI>YFiyL*@LC`JdYa4IsZvDGmaaj+N6KTf4-|1Q9u}b~mj=j25fjpi zsZhz5?*>$!ToW3Uos$3k;Qr(1n%%$RCjY5HS0t>orRwVyAuupd3qB*izki$gi$!6! zi_oKXKE5q2^k0tuo7*)0eW{Ulf6-{SHSg-{1pst0s>tsVO4~xnoBQ?a4tf;eWBbl! zJBMb)8UwOUnUo+916eZ#iUt6!I)I8Ez=_5m0w1#SL6N`T%2c4?b}_RaweI^*HNt3N zXIpi6f3u3(#QsG|IPo-@|C6NbzqMfbPXpF=Qw62@t*nMzY)e0S z|A3a{HC`qz9=3(QbB>mhaz%#bu4co>7N3WR8a~7V{=Yu5qysS3|A+6Ck{UO!7vV#Nnhm80G5}eG@dpQv`1h=(oVCj=?=);jStj)sdj^d{uGitkIra?FD+u&oibl&#Ee;XlW~8A zKrLIZOCo}k*HhmO#&Tt_?$m2d)YN%E<^w8HN{PbnlaeYMf3B6&pqphXBf1&9;a_{4 z9!(4YKSTpw$BUag8>ERKRhvESWYuSlaWGMz;s7Vl2|s!KljDL4kT%V*seXf)>d!kZ zmUDTHZ-+SI6l9!!X?hWdofPw21X>Y$M(iSf4Yt+v_WG;L+lrQYpJ>{ct)5ESz<7SV zFQJ@bozNQ-Xry+;MnuKxu{Nn36txhECz2I~yE1MT^0gwg6a3_B3_d(?>QqBj@b=5~lb5H|*gtd+t~K2D4#FLsU>flan_V=) zRqI6&b?_k{m^izofrm%^b8`d5i*sMk6SL@Q>lH?e9U*9Uo4wn5(IC1ptJX`WmP4{; zg3M<2*C6NY01VWxX5&HA`{Km}=G!V;6x|c3MIKgOnZ|{H+uK0-`i$Il)knh>8!9z= zV_nrTTty=K^SlG27wD}McZDBmLZ+R4`@xmZdb%Y?58kZ-nQ&;Gwt6CQ48(XkQP1wc z%Tapqi74j7(MPFAwG^9yJdht{!9F1|G|-&wM(MWcNTT+GnZ>NsMvb^A zlJ9{Rbj3s|v7Ip&Jt2b%Z2M|$yf-aQCw={5F(pHu4#c>pZo6-4j$(L;kEc$hLG#Aj z^Le5AT^T3sXzJh!TjAnV2V;IO;*V#DWRrtPK4A8&p6`V%Mr^Ow5&j-8r%8Fjq$*Pr zqglSAyRMJ8Oto-K)v3KY)TFnh(!byuIv^t*F@QE+##-Nam6cpC-^aJ4W*1C+ISO4{ zH0i0o_%-qEsxG9!Tf}{!0Tn1O^=&AM0sr8aDui=BB8r8=LMl(!kcTi4ok=mr%(X}9qx|I~Too>nK)`8S{_*bn zsnq)elhpm=kP+DtU*Ggqj))(Ld(AKA4$6#us0O1G;z99>c3Z zC4T2HW1;t)k5`fUobLVeW8#>sI%&;V{G({xP1IN_ekxnlo>F}CkE2KzJ?$}$__R{2 zwcgKvCb=itu>v$TsiI0l8!9b!Fs{yrY{TREHK^m>R4}Em8@nEvL^U^Gh6M5fYcNK; zkzMKg$W=E+$Fqh^$BmYXgKja7@$TgdR5x2LVDAdRTWvR4mIj8{DgoJUW>%{s)}VSD zq7=th5k0;q^E+qqR>4t8&V+v^P=`(+`MY>o?|dM?42bgl#U_qBM_VW=y=LD$I6X3) zIsQefoqa-aI5Z)edEaNK&Lc<9iAL~z=WR=P|CDqeQWF{l8=7HgQay0?CH2pJTy!EZ zi!>FAImoHLtR{SQzsxsW#M~!2f7ZVcBh~#!$(dPD&$Z9}$>ZPfH0PO=NaL4uz}~=N zCMK!8)~SHK3f=B~&{dR;p6y$bry%U}mDiF+pULxx5o;fdizS==go(`=yuK7+WwcJG>=qS#yU0&| zajoG6%W1uAMg|U+*aQJVv6I|6TZ3C~WKgIhU7ruXK3_@>5P4?e|_qn7J+tRS2lFql>=G8?` zHQ{s7k;MjNq@=vA77e-FF4x}MVqO8wCrHxNiMx@0WPbN6Ub-D@DdIX)c8v%-AElRx zK1tBX5EI)P_;zrV6%ZY*n%F=l!HI}*w7CQSb4sP{MG|YvIn?3WT=iVS49aDArG`#ha1c!Gw${Nd^60V1Y+$ zxrU1D4)IO!H6A8wwZQPud^`8w7vK5%acsRWqIMf!%s6eiE%Z+6Bi!^iU5ePjls_V- z;}!4)9Z~s0MV<=<`)r{N=z6;17n9%WNbQ}FQ%x=>W958#TeW$ZaNW$=T)7j|ty5*9 zb%kVgq${G>CY6_MXquR+Y4b5nbf%pRfcQT{dP&q~RP5W0T$qVQ&=wcSuc%)g-y+JJJji9)pv@PbrbJ;JDRH&*>8YjA z<5IPYixY_HeBDKg$+Rg;-f61D7+k7_e=bR(pw4145hwt>-^nJZq0%269H8m94KD=Y1w{WxfurXmkR~XK*4~w3pKUc zlt&CZ;h0PA^_ZV+{)Fh##kMsCR;6)E=84GZMi-yH;dZQCpu7;eCOJ9To744Aj}h9AA6N;Z zcsP5W<8)QP@ka(O%1zmKUela<_YVaoUwG_X;NcuP84GV-TB;B?(1WEGbX?RH zSiqo)yzj z)kF9@mUN-pJx8kD`?%ETg(tsyd@-+%TBzj7V~Md2AdsmASYXJOr)oK-I-nd>GQ89* z3$>tYZ;fO4EV0jr=^l89|D<}noJ&UtjP>!CL&r!z{k%4@gwhHBFmk6BvlKGp<#nv! zD$dlNv-CUaliA^ZUr-QSit&O^Q7*b`&k9Ya%O2AYZldj}oC2 z2)knSHPnu$!>UEf~_>Zj?DbC9`z?i;xJxi-^@d+eI+bwXLm($XLcRr@a5`ZW!D zW%fv00n_FYHhxR}(GU6Ev3DG+6@ZI(VHL4mDec7&S@hYmeBRy2>W?#Y0ufG}^js`&H!t~wBXpKY+#accC9pM5ZHiehwDxtVl#hnyQF zf^U3zd-|y-Lm`AAgro3Z6`YgWh=Z^zaYOB7L%aF-H@;-tFnW8O3tv9ElU{+m$btgI}It!0PqS^0c1ADh)@J0cjrQ`cfw~$8ApFvZXvihyVhoJXe&2?`| z^9u$ylSQxzvP8msNY#Q+`ef;hcKT$D*=kMa;o2480uo@|Ft=Kr`7(-2s!?f@9P-g41?>50+@m2 z!oAKS3yJXEU&cB1a^29O(@*87m*y^mVRX|y7Z%4=@aKVGxO_b<^>Q-sYMmxf+jOUt z3ucY&45SsN;xJyq0}O2C=U}ZvZ(Z6a5md}kQMCb_Gc0UuarIY!Mk|bQXIhQxJkc{# z2Lmblx%CBF?nhhCsi}9Rx=jrgmKIc^Z2@SGfzD?25_0W37IT14#dX58}=0ki;hX%gHps-SQu z>0mkMoF-wglm@7$+SE+TM?enxlxntun+Izt$Yq=WSu*B3#oyDq`UtewIvr_!NDWqc z3i25krXyn*7Zc`If%3h{S8|r_#6xWbTH324>y9Rzi^3>sw|{O^J~NrMyn4!zMZwUU zO;+J16xELDr%A58*fCJ^ZYeGavMx^{9^7r_E%@S;&^B8LD&%gb!~}|5ZbsFkj=xYN+^gTF(V7obQ`-oW^Pid0+(7 zER*@ZVN+yWXHQb7&mSck2AHerO%|cQ{_i##KU^sBy(x-vl2_rZ>@#m5qvbYa^P-Z5 zoj<3Y^&U&?;Q{Rze~(M>`VJXih5L6xpKosWCqfDFrZ6dZ?Don|N>hn^+tEJih)WcR zt5M%>3&iYX8!>VbW8nCXU1@zvblhO-k-sUmCh7t9r^G61Bag*IlH3UVc)#`R`yqyO z;$DiNM}=7CKM1jZ49vLeinbIs9cy{}n1z)oS{Jt?IusUK*xz-XTGQQ-Kg|q>K5;X1 z@h4(^{bMA$WgE=%Ks3T)vQz|8W7+id*d{2P*1%dmioBBeyA$E z!+Xw4nGz%(u$^8s|7F$p>gPdPLrH*sL__Jg8yQKdHNh^iVG+90P1?j6~9$T|J z-8m)IjZM+ZYL!$kw;+^uWptiysFWc{g-mT3R`GIaUQP&xv8tFJ*5>z093QbT92rXRqh;Fmu$JD5B4_QPT;MFblP_qeN8xG+@2689AuT773-|HLTM(@U@$q#n zI`xOMT~M_fn&0BIU&qaOLiws`vi|y3^7{ak*^kM|d6;VSuEvDb2_%WbY?6b9{NX-# zpR5~Y=YGx2Q?=H5k>7WX^(S8C*5cP#P5hE8+Xoflj&kh<7}|s8RvVw^eI$9$GdI<= zla1mVQu`BD!zXQexZ2<&;>5dmF*ltb*V-LWqUL)M*;C}A3e!OAQv#mBh=H>eHo9&5W=ogiUm>AdHuuV6)N+8Y223NbF=sUxhJ?xc|j11h5#GnjMy z*NXt6yqj}2Whj8YW!US%PME=&&*4+aD$a%z9#hb`WOVK540HTG{6{QsKP{VwgE(i& zecxYfWLTOlXA0es34?W0+p;&__YeM!7v1JreYc;2Gin(povVDvo7z8axDcaV3D5c7 z{okXQTzIapIlGInm>?#bri~)LB`J80GQ)Bj%87&F$93LDja7HRk29_&z{7~AhFs06 zs-UBQ%Cr79SHH&6ARF;6X6q)e;U>%(VXoK6wf&PFJ`(?-5%!cV zR(Oh@zAtqBJb1~?$xsZ3sjb1pgy{{)2xh-a=tY00)X(|TO~N!`Lxr7r94%S3avcah zff{*J@yI36htwq4kk7N0{dSrv;AP)ey!6cX%$v;;z#&y=u^Bv03jb`R`7UiR@)*9h z0OlNOZTaf^%4F*499?}MbZFOa*=D`p!?;+U$F>@D_jfE~vbK%AO>{}C!Nr8j{hj-M zs@Yjd>V<~|N@A%NecyqHWHfONLwl=#KXVUN{%AP<#(thF^=jwXs&Q*kG03rIVYZAi z<)txs&d%@S;--RqiyT0s_`y1(>QL&7>U2%6dz6SKT(@MXNaZaoB`hN_&~kix&6V?Q z@Om9@5N7s-W|X3@HEmoHSAOMmCR+?ur|$zy0Oj2N66?f^E6)at73@E!<)Y?uN*Wr^ zEi9PE7k7CM_MfDUN@%HGJJijAEwXe56;+BBn1E-@@iC5NyBB!Q;MJbyw@^!c2nKCi z3)P$lrKuTm9zSSQOdQRLW7v|D#E zRm{gS$i$mWTfrF+7tg#f)MWqD@zLHWgBd#18bD+0 z(Z6Xq62U&OK;hbVqFTuX>6o;>EIm{6PX#{iCrmqAT&+EIvs{)4Rpf{qQ69)io_8lP zHzxWngTO71>Kr3AY3*YcW<(O1eLxr^i6O;a_cY)|!t5KgY~u0H#A~Uo`FAK$oLDEA z7ygE99$NY3mXsQG=`MO{Jj1opT{MRd7G!Is0Y#AwxPD3w7U%A5m>%ZvmFAh;@H%Cg z@17GU$ExWvzZLWb>yk1CE<4#ooKNZ&NuHgdaVXBv(x5f7f^98w617C-vw`og5{za&TO;ht%X-#|NiJ)jB&2um9Ml}QTT`gvHPa(U`o3x z41bEN>lnN2YyUpoSkieC9ujRW8Qs4S%`8@cBqS6tYU3qe;Kxmu(06E%!oJuFvjZ%j z~3EyA!YzzhC^9^~<`4_eBTTK37{!Y5eTycqSwy zjQY|n*DqLSYGN9{QH+Y;@E2!sgmTq{Bz@n1{BT7Z15U=qL zq$6==@lJ*Z#SvLHV|};>;TxGYj&9B&p0KO>LCbL#VR7gKaivqmruSPu-!h!Um4Lzt zMAcO!XZ|kPhd-M^77u)~#L-E!dU#)GGWwQU2q((KFR&yu@IGo~#DAlW-|()L;J~R? zjC9y4lmqv46=Iq6ilMjq6Y)0o7WxdrO&)4v(P7vSVdv1&?!dpj1RG*$2dA}^WGmD% zV%=#|%E!TeKquZyrS>rhEa6K8ATdG)hOaq8=oX?odwq{-Bk?e~r}tXo!}M@=vAB7c zMLc>&W3m@ylKXuz@BT=iUTkC^qBvu{QytmR=UWS!ZSA42p=XyweTByDmiszoxTNqyuSlRnq|Mx>6g-21?SS-8G4c$yagxSB?}h< z4}YJ*m2N4XMX{^Kt0zA9X_``bZDKvO!R@md%DiYy1%K&uy6r1*D1LuyIzWQn`Qx26sHV2YDmf#P^Yo&uX~`8zGf z7$K%69yu%Dea_{#!6XKgSc>C;CyO8t~2yR0#7nCQ0S;HQ!;oRslC|yU9K!@Bte&LN?+`+ z{v^;jkvBkhD9B6gUN~I!wd99)MwvECYWn)EL?tU&T)=ZvL@+1RP8$JV^SK1l#g&eW7a zBe_z6E7`KH_i&f{`kOu4*}Tb+ld7Y4yyF4YsC2XE;NA?~t$XSt=jPVneG;3H&Jpum z;h|zgpZ7N4gDSM(s4WMb1u)P%Z!W^ktYglF#+)~M>NFU80uzNGpYjcp-_3x z#Nj)tD|Rz@fYkRn=2C5Wj2d_)x_ccgDTgyjXYe@RiHQdLjBt^2Mw8c`hu;0;?uMu2 zu6q?m6x)-sZcSkl;qH8m>E?EBG%rX3dY`UkFAkNL>RwB#Cj31L;#~ZY{KBb@W-8ss zyO(YzlTK4q_lWof;J3k@Qd9G&CS9T|SqosZ~lIR{LwyIYvopu>&LIoyGJK*${cst{XI1Vkg z(043jssSwQni8Q{MmNUw2Q%X`xGl78=tVi=Uh(5oDikr6zcOdiPK40tuO8>mL#w=d z0|?yNjIs87pJ&^&R3-d?aDvO$Qn3THtQj4jHNxs!wZTj~mlsdQx}aLGn(9x{0BLGZDXLb}kES+{}zo?eg1{BfmDjONN2F zdepw0Ab+)Hy0@G}Ms3Ak8#P{8rsNj{u!zm(31yI{h%D|7S@4)V*f}4isbpwasi)^; zs`@ehT&pP0*y!x=ZSAF*Le}8xb-a`9r0?5AwHP9qtSMkjCsH0eYGtTQ2p1M01I%Y8Md@5Phlc2Ny~J?HS*wX(9#>KuV2S2 zY&SFyYwom02%G}Bgd9pw&ZwI+%Czmj897Hg<`ISmoY$|x1m78qv9^>)9Fs5WN(H?N zdtl?4&e_PjvqO(dF#}Afr#yCc9B#`EOpwDM^+}7)(R1#tECR@0T{=8YQ@03?3ZG{I zni`B{$)8JCkAT9sh`%Ld~DHuz?YUeH@ufjSkPafVg{Z6$^j&=pSk zGH;PSrnREkE0;NJwB2~WeL1&(FrM`Z&1Hzw26Z6l%gkH3cuC_u|W4kr?c4TYCm`57+=a4OG})rvc)FPK@m0OSJfNl?EGaMo; z&n1O4Ow8@`!g!QU4dzBAp<#PKjEVY>*Ie)i^_JkRD=xF&w*dOX-4qsTnOB8Lhj>U!f(a*|d|CgliLjjqm3$6BE-mH(OJ>-uJhl!6n!?>SoPKhUd&=b{pLBHjEzJJ!E{}QP9-dS ze@4ZYW?09)CI1dp~pxGk8!G4HNdhP z&KTIrPi7No;-VZ0LxztRkw>C*$>U@@mnAGzLkVTOImo(2E6QKT*ATQ&I5^$IOg?Vc zT%c=0gc`}(I?=x^3^JBdT3(u7)cTpQ zVw#2Nfv2AU7|CquDY7a#+hx9f9;T}Z^{$fPXo}c|-lAoKb~o3bw2$B_y}e~U<}s704urADGmNR~9g8^39IElk1!`*^Afb z+1W|k;xQN;rgg4=KxL%VQm4H8t1f{z`V6KBvN66nU)f$~DYN~H4eQFDdX?hM zbUW~-6@LmJ%ooP3Pc%5Z_rT8Tpp%{xOAjc-NDdxZv)T#NOyD*{U_LzlOgd}1Q@!=? zH?+Xr94pgCX>1X38LbNbeJ|0MFnog-+nmYBr`QU;>?LFK(hQ;W36@v;o#9O02Bpke zmFJ>aH$Tx{IhaSibEo|UIo+vsuye}A}Z`3 zPbwQs(P`nts~a3Uv1f)m>`hcJ4#u~Ot}a$B_d@~fVz3}$|JH1%6VDU?$;}keThaOvw_ zib`^jH|t*?{LeoMmK}Qg2ZdDi_1Pg1h>D5|eH3Xan;mee|9tS;mS25011LVg^)qri zO2UBO4zJXGxxe@!ONg6`EvMxFA!3v>#+YDsUFy3bTTk8dX`~iks4@{{qZ?`t{!?%IyRac31FSzm@f}f*AQkk5h2f8g#B1 z|Mh&ybF;4hon);Av{hf< z(A$q171l!WEZ+KiE1TQT+1VfM$EASTmPLZ6n+NNK@TN zVH~}qV%JsE#Z}XyFyY`(?E}bj1{X_b?hTqE5lXNo_0+Y;sYNGGzX6Y<)R(Vv&%|Kj zH&$uy&fKk7W8 zGGT<~PjU>V)}-_c=XixQ9`BV+D>`F)ezf**)0wz$yAZ$w`JJ%@>~q!t`AWqb9mej2 z{A_dp>=qgsp6vp>F^kw-Ucfxkv)hoSreLJ>S;~Q*>iK{age=+ zKi$jL4Lhr-gTqCR$gi_g3)E%!vr}WP>@!f@%>`rJMuyi`*aw^u7nU^uUElh`MK90O2&}#H!Kz*LC++(%3=XJl@5}h9^1Y8$r7SD<0}XOCWX?se)miK7 zpfxZUU|XM7-6crqA>epl*IYEtT%Fr|c)~KuUb!POxw}i{c9yRAb~nu{Uht7<(x3RF zR@$zETf5EWq@-6a`EbSF zlf})x9h!y6jE&{!m_&LnnQMihuqH*_c}t(?l2U3Y#Sv4ZxQ>rs>;|n)__84?Js9ghMT|x6`@;{2;6iKeWzVS{BeZt3%Abv zqi>eZ^46d=HU=K;0)GzLLB$%nvv50!oGH^NRB0E zoNX{b~PQTgRFn2RvSJr;$@pGHo7x%v0 zscFxbmtHQ3>pKSHTpNf3ivp}l@+Xdm&eGVP{rQ~f zxYm$)F!YsSeF2~ukR)dCr4(-u7k??f<0$MJP{D=Ej{CuYIzCvH+|WM6=epiNG;Las zV|ALKV~x>8j|Z|RioD(S6pR9D4|6hqNoAtG_aBPT&~3WX*OF|x*6SM^p+K8#R(*k~ z4JX39TaV`ue~))g$Si{Oi$a2(E%N2LU3fHEd01o<`@N}CB2jIFKVh-JM{aq>I6Bwu zqK#YUj{Aq)8#fyao;ln+4@ETgtN7pk{ZdU!?HP>^`t#f?2mk)Gj|X&n zhd6HI@|FU(SP_3|ez`C+*RsMIAbjswtLg8RH8QNr0I>9O*lTTSs7i#Cx0|!md?p7U z#- zSn8A8WvHooP6cE==Yz&^LrpP&iwS74nC?<n}JQI?)ziShgG9ukZhoEB0}!V_KiZ zj$hputVGkkm^VxdMtw3<@E_d!*oLkk!WPE3_R_2AJfR*+xC=m&KyHJ(C>5M}5@B>L zyl~@cRg|-turp*7sM)~}C~+~zvXkPZ&8K|_42^mpi7%=YYQF7VKG)di@NfO*j#Vu= zT)6xXv=|db7DoSdh<5XFuiBsG*vDD4=QHYUrV z$lZJc8~G6%1+4f`LjM2%$>OHtee&qi9x3T+B@(O9@Oqv%Pqk z03?C1V#fE&n+q+D*Tv}~Sk&xzbSJ7l>+_e15CWnTe5+t%r?C^xeY$I?woc-s=%%EH zOHPqRVjj3^GcFX~aazPC1~CtOrRsw9qySlgWXG$i{ge6<3lK`-0E{v=#pCO;(nuI! zI&KOB6B8F9TV$UEZ8xgiY>U^8Sc`ay51 z`rgrafW0Bb_pUd=A$5%>a~>)Do51X{3@|M0l#7SQt+JEa*>$7hvR3FFTwES;l*1;| zZV3W#f<3W?k#(atyO-p?($yvTsS0Ptn!=S%?-NQ@>%Dd$(S|gY7?1=QF6zo7ZM`@q zW(wQH3O*lEI8^;AJcs1Q4c!K0LIwdW^!+yG84lqV6MN%+@K>ofF1I;_y?tdZKKP^~ z=XpRj0FYv2BBN5KOE&h}--`v@MB!eCKg^J#2xKXFe;b({p|Jmx=6v-u-1PDGpgW#F zH+U$u6oFG64>>)K+qh0c^Mdi8LlU;c>1k@Los|~iQaHFuv7CM5>56jG_s&B8!3(FJ z|0iD94!_!2x`fET42X2jgy~1D6WY?0$g~czgV)s(rPMb7&+O5{>3oI_llTt*~pagKpFN;l$XWncIZu+jde>@C|MT(_2Sghvo510)CCZF=8> zwb;E4%OowD_s0k{^-kk%R{ddV{7E216G)G2MY!tjrM1Ys8y^~zu1hHS$=$HhVFNxS zpq;jy3$r=c2V!AXJwRC|Qj#&=@geSRSL!?c#3?Ug8RKioYPX9OUUFYeWrKaOe{@IlK|);BeNDQAud6GO1g7?6-$|3Mpr<-(#+clX)m z6Ed*|P;?ywXAyNsTJ(+XlzKT5h**Im?;-?Io1fe)jhf}R9x?Nu62t(s%Q)iO$&6i3 z+0n*xi=x@^v2N(dVcAUyeep|L3>t~o9PA>jWEa(=@K3w>SO?d$#*HP)i+DMfnX^`P z`qMhX>Ij_w7x=KrHRgZAhrNeLOUU5lBosLbp~glfRkiCB7k+J(eC-R3Y+o^$OuXML z5uRY$yxxs*kjJzUuU;Q6lm1O`=US6mz`{*)?K^mrg#6Ltt)B}9ez z2g=RII1mgIQ*f-ZIet;)JQFKfyIH#^HMhD~u)_kqQYrh9TjAig!wA3)lGGp0o(&$1 z#-%z7j(eE!&?K`e0$%Vz(<~GAS;nP-U+o15>jT1Mzw-c^zb3c&_z{fdH>lG^EB|pT zy2j{ju%Q*@Vj}l&lLDFEB9139f5HCY_p&%-`TJ(Df&DiVT_4PFN%>E{L`m3YeM`-+ zNj{ugj9_}ym$lPAnXYv$D!YF+4=FPk2e{W3X$HVR@7T;XD_mY)=Ey|s#S5xGdid~5 zettf4llpCY((~o+&(W!R6c2CJBWKaJ4Ay$F01qltfOb1LU(AAxjbox)8Gy+@a-LIN zFV3w(^bQ_k3wXS*e}dmBd)LOs{jDhs8Ym=T_qdRC$-O=7Ykejw+lyYzXcNEU0K^p) zAUyzYx0j7Qft`&-=nf^xaKL{7g2M@ek{7n{_^XW}ra0fLc-6D?waij+np-7Kw56$U zK1x;&cx;JVIA8Kg2Fr&j-Tdx(J3sR<_4NqFqwEv}HhCsPTCQ;#52XKx!jt!lw72n( zDe^b-Ra@W_=j}&vyR!xm~P%W(>}`?57ZM^oC7c zSG#JUp6-+jd1eoW4gM;)0b(RVzQD@IYl_F}X5;xJRphS3lASIYqfoSyiy@CcArO5X zpK)YIQfCDS0wGnCS_xBmlbYr%nULFb(ZL@dO==|UPqKPj)+sm9I||K-geT%#Xuf1T0}=d(#^3>`5$xS0DLzMTNd-Dv(Fl*kmEhww!%Obd~=* z5*&4xERkoQoTMy(+H_$~&ul;ngK+Yucy_~XKV;30LkN z1ficD`JWT`2lt*eI-4VIF-dnZ%3>4+u{%WN!j&MVcL4-Qm6473(_5?qFn zTy-uLVgefi?B?a~cPW_swn16zgcifqkaC#%r=Xoy> zi0ySsfX1d7Va7w5Gf>ypcHL`$L_6vA6I$N_#xVtQj!6<;!i(f%VDrU`GWN=juAyim z^_Dy?@|if!p7uBqoh{ZTX}(Gz`*Edw(8wf;JGo9o0T-9zzX8F+K{ED62tzwBR*We_ zfs>6z&{COqIvs+nOb{RugZ4EOHm78V5^f@8cRtaPJt3!P??-&;heSrJvXWXh^<%mg zFz_FXG2jg)atnlSyXEc(?2m7P2DxqmNFtCN zkTLrWeLgZ0bK5f!;U_Gcpz@IN6k zlv1mfATjr&#qXE-(3XNpMq&G#;t;*NNvDP1{u(dnb%v_BZvs(>1TE&B`x+pDmkdJu zV}9~IeWA2a>=u(paof9EKFB9|LZnnfY$K@hNxy|jjIYb7Njn)dv7Kf(wFKifyw+IU z8b%0Iz{35W4M8BwH1Tp?e;()cZ^79&(?iohmI?Wa)mW<}?Ne^w%xoM-ZK7?t7l=zOLW(yOP&QSF8_sFtVsWV&uE51P}`g)KRZI^+9#H;y;Vu_#7^SII?}g6OOVD6K^-PKy582?|A4mt-gEzB z&w!pVvU5Lm--{b2X;!?^xv;c$tB;Uxjo2lkY-9o&F$eh!-e%Jzj3lTWAbpe4kkuAP3`C$ezS6es}TX7^<(21G7ZBx+qCV6UYRn9 zmLQSy$pDU+EG#fru*OcfcY7r7MWW>UvvnE8)+br+VZHaU+C_{#2%y%U`CjeQG zA-A8FE=qK`R@@|?{15YkCZ_UcM7l=96!VwR!coOa&%#R5s*cN8&Wr{kS*BfN0FF3L z;Bl{6m?uE~W%SqJyu9oFGr+^|$zKq^sipDtLmRY&iM+uB`=}Jx22h~GF{5b6^as~~w=L!1qa9+BCG zU(!lQA=NH5wQDaI6PXp+MLa(2Ji}dc2!zP>Fc&+{w0=NfT|QN9sQT(3muk5E9RY86 za$MQ-4Oxpb?rS6VR;y^fg&ir(+fM$_pvlePo``N)^8g=)APqKdvqIo;dRJITGh_}| zn3W{^DNU(rBW9UC;g(OzU5w{nWQQK40w{DP7hU~zn{ns3RZpJh6|Wix$@c3_%?4Ic zEO{CQEXyYtA9Zty4(Hq1l&#vz0`K#+OK0@XveJa+M-YrMY#5_p&*APvD=|aH&*{0e z)CH?0lGNWS0C$CfgA(VuQ6(kDc7B%KM|YBeBiByx)_*v16rw31oM&T2F_haknl|2;3NY^g(|A%z% zTKl^uVVevYP#mRrJKh)Jecfi;pSpIM@%F@kjh3&Bk!uopdTBq+Pjk=_O0OA}yK_Me zLf4O5N`W3~EGi+jWvyFEAyw7YQdbT2(AJ!Yo3P)ukb6^o*4j9 zTjBmG8`xI^r?|~ZoJQS|{n5-zM=-0=J^%>cORa&k8kNx>x~D^*vf_c4p{wXK0taPIKx8hQa+p(Pv$M*6%q}O_#GMV z$fx%Pyu!~ouXj3RN*H&dlrSP2y+ensn{K!UJxbQts!A*TVt-v{`Xv=%lOK)VrFe!nX1tcRnDtTbJzwoYWi2nYG4|+tBP6nr3$|na$y;uuKTpBM)Jk>)& z@M0!JGsw>?2z}~^(!IHS_{#uDZUQUgc>ZmGuS}LD6hC|yz=vwVF7L6{@ULNST$+yI zAPR{b@Uc6ezk+!?-a*qTvcmY$4GU-3dw`o>m_7YI<*k8Jvnx2z)F8a69~+3OBMII2 ze@*DNdwNJm`jWmMtdD9W?|3+9c@ur|A@*}&q2U-ZMTaI#2!zj7O)}m>8WY3oi`&7ZJ z3$SfyjaWIwmgIFlIfd0n-=x*A<%&7wl~+2YTvU~dt(C{Zi^DQ&n!_Qvzc5zysYWhL zI9mWw@<2;l-BA^(J+L~CpI1lm7Sjk-#y9icy@GJol($1ki(LIzA3@!%411SW%D*C)OU96H#b84Z2j7%VTfq2u3rYX3 zH6qKf4N36CrRCMGbSdH=LusjkSm2ze1kQPDGADB%u-zBW_DNv|m%UG>dG_;_aX9o= zW++#SLSJ6tNX1<1T8~;j{yS_O331&0g;{o3j=l^csCy2*X&q zp;yd~*XhipSZpn#>hj`18oy(uMYCF8$h_VPocm^wJnUupS_)Eik-ieyu8|ws8M;9N za#62BA+y6k$w$B1#jLYED6BW$>+d;Uh~CJudFRap_~f9?!70JH9b1y?mFA4h5c!Ir zG%F=rKOgnXMfHBt$1ITUtBpeHMYyGlA7uN4fN;13*i)9GBBc!!sVEM8P&PeT`R}8{ zuB{*Wqc%Sj*ns~NU`wsL3_8Fa2=PbBwidtelGptX*xnQJ(Zw`K6>&uu7CrWCl&5@Y ziR+-$WEVb79BYAAH|0=-+38lyu67lOgUamGH$!LFDvq_3X`sS{m8@05tyPi56*6%K z?n-@hMGL`El3(j59Sv%2G3bV9pW`eCc{!2$YO`K_;p8A)v6LSoEh*A2BY5fGzVW_^ z9dx7|ZOSr^Zntt#uVGjUZ9PWYU=KqP2-Ww7-`i}dOLk1^w_LD*dJI?8l@=fAW*i2a zys_`5k)T*~gL|eRBhL)$;(HMEoomr4bewsctpZ=b!BuRtf@R!YqyZL}6XN+evx{2)9vV+^ zXh5_O2L|hcs%Cl!loQJQlGu&PcBekuLnnphC;wYvtx{@L;)%Tk<{{=`9d{kH;obi4 zHFyn=PY|S_jl?f|6M}u{7y~pcYqKhEsg{cp+s&3AdLj3al52kSmQt<$apxA#!J&zd zAA#VRObCVapy1-Hv)~2OcR&1_1OzaPIuHnnT|KUHf&%lCd*S{U0Ky*VO%cQ$j#!=Q zNyhay1fvT4!sZ^Zu&@jkuiEewAylL)FqA3eryg(K^?W#e9!kvZ)aI-CTLPC*=IK?Y zxZTCuI6eqmcn_{8c!Sn#99dWCKea>#U~50edZri?lh3u1)Nipm;af1zPE9HTXm_S; z=iWvp?@3J#bMxAQgrpWHhVU2rOlS3yHm>breuEYf|E6F`dt`oJRnVzRr51{ESJ&Z~ z)hZyGIe^E7SF)j24U3^3q(#b!(>V>TcJ5|qI}Iet!}#FwVvSYWASZ0tyUp&hR2rx2 zNp)}FHNz236o`hu3WkPwTjwqlY^#QUX`bMa*BaDz3aYnS!N+m63#R zmA^b_s~Gd11eqzRHR9amhU)Vr(1f_=B5agE@W3&K$IKH!d8#bm{`TG07lEV#4rd!O zI7Bv1pyq|_V`$7}Jam``JCT_=?Z`2K4UA%v7Z2J|i5ynFW#3g5!?} za*l3I=3pAgh&4n#V)2yY z;9r1x>H8g}H%}b&TqbaBW^Y`Chlg`)Of%msm@HN$K!bM+OCh_kqY=xk20ULTCq{&8 z@1oN>AdVsR^6d=pcM!o%+_r=3p!Gp( zn()s}pszQ_;D^Xh6%6rZ)dY~8+G z=2$$|H`A!qD77zt4Zk{_b!qPwjDVj%^ba!X(;WRWx_uv%AoI++zK|AvzH81 z49dtk3{o^*I!vm!L(bD@y~6E|>j^rL#Zz>w!=Ybf?v3`CsgtugO432?rx1V|Y6@Y+&>XH>fIf;9LBe z^IC7k>f@mPBxR)x>l&C76W1^jdF6&+j9&X2@_G}Ayc)>@D@``aS_pG!ZJ||&^pW0I7$9^R5F~{zg;Q2avx7}hn z3&-cUxdHJ~kqj60LDx~@urQOt*wOV#zIIBZS<0tAFTK`lfpYJZ1~s<$j!oHsmi0YIbkVB{bXe%!VRGlA`a= zTi?GIUszpzP>_=-fxPq$b}MQupox8NGSvB(^{_9NGxKZuLmj?)w;v3xffw@ybL;F<+@;lOOv0eIN;`&u&67eJAsE`Zh88i#F0YyA zGngMF{^+`ZqK50Ot~}G}5lbg%QC?}be~nNW(p=T|s5Xi}A=yM{R7D8aN4J7uuf(NN}{b;fM+%LAqBH>zM}Td5~wHA19ImPU$s2V?m7`Ap9lP6b03M z22|9`-|P64J5+N5-*oDCkyqw$c4=YZ(M*FZ$uBY%{DI)NBxCReF*x=f7HHu9(e}MM zC2Ul9h68l?$`S^oIS1c{2)*Oli#*$D2oR#OFOnBU-WPYsNeU#V_-8GE6%i2f(MYvM zqN>?Ye<(5q^3RW_e81@J&aSSnd3iD~eiutJBZIF$KK_e_0m*r$P;Fw}-$B@bzrR5@ zjQ;0F)c^Z1$-lg6ZG&;lz%d6`n&to*ye&~#L-3Jw@9~9uUps3)eD|U{Qp4@VjM^vabu(T7Hr zF}(OhY=F~m%t7d^Ro_dVeD z*3HQdcKs(kjOS_tJ4{yN3k`!hCb)Q_y%&SFv#fMpVs?qSUKK{NlfZ&;1jl}u!cm81 zq38aP?@(pgG5X%A1PoS^MQ`-oT&#*Z)`)qtA>zvjxGy;djKeTJYwmN zilnPeXJaj$Jb!{*qN{X#f)Km=!h-VO?CHU_=%nZ5-Np0Bj*5zsl9CD#lPIgGgB}rz z!T&^(O8c)gM1-l`r<F@jvB#!UWU z@4JW2x^FeQa&!8tcc!1>AaggPav}WR&`b zNBVy8Coz5F3;?1rSa)|vwh2c&<;1ACy#NBU=QG-gDP4W_oDvs&(}%8`_=X)lI$IGf zd2bLk)s2}m{@~VqXr7gicQk)+qhr54)OOSz+j4>aH&bl3CO)__`hIe!NSYL>&wZng zrMfaH@;9^XEhm*2v(?0WWPl&F3>tqmTt7Cdh-)+r@X?k!!-fo;HT~Qi^qp+8=Wp?4 zO-}q1Q|jIOSjD|g%j5F=n%&ED>aM9$--?T}WP)~MPX;OJ5kFbQ*=k-)zplqB(9yBm z<=aCg?xY(v)B_p8+d;z#H)D~foo(F=pc8lwJX|MltJGlqYhL!{lWiTMvhXb0Siiptg3cTGetDdj`~cZtiXA}MY6ZA&0lkA6UPCAfEV zR8ps*w>yK_{}wm|@5_`+jOg#bv)?@wDs`}O!HX=ftzssv_nsg==Q(FJf)?Sj?tBsw zBczu0ZDt0?Vyo5Y*eCz8Vu1&}ED(BvE5Zjl)-S^CMn=7bsGLrZtK{tZ=D5x-anOov zJQ;uqnY9h?IK+maWn#5PZ1`>ck$w{BQb=vwaX4k1xIEWXLwqN@In1YN$Dx?M+uqm_ zW_uiv8(;hN7ST(@+rxWp?z$jmxr3IS^mgMKko69hymCJ4$R2#0;cti!zU9NOo9${v zp?yW0L>$@l$r*@0J=$?Opq3pVB2tj#Q-f@hI5I3tnVy=Gju+Tnu~WDF>I?667!)?9WqN!WOH*>C;|t}#0C`5P z2TQ6iJ|G)ykJ49ix5;z5@;r)?ky)gM3XW&MW4iejXn+TN^@gt%m|`|oza-#e2WCV= zD|)8m_4j)m4aV1{-1M@@ovpHvm7VHiSiOrbE?`Jc=I(9Jhg-tWK_mJjD)}vztFvY5 zLThmQF!LHfHFkTV=y7&>w|eoYQEg?iv!~}1f#9X)PW`H5EdM6)spFAMK*$b5a`(lH z7hPt(Ho&0`!b`t%?Bm`EI;4v<9_I4mGCpmoOVyR`sDE#Z|U@mq_j^1Cm;48XCbrJCwjc4|7Xa~h#w6pS0!0(zv*{i;tck$YWf@tgSW#f+!X z@+xi~dr5et6JKM+Ds#Fo--XYy--~t5v3z$3Zp7)2K+!S zk^+&L+xO$^?X^Av7yC56`n8mvSxt=QlxbajCP|??|44>T{USqyif~Vkp(A%-u6#Oo zwghMnoHEu=ZDbJBZH}J>LyyD7F@HH{-#&FKTtk#v*BaiAlB&yT)SgE@d-g^M)gGa@H;$h`pxOqK z!xLqV#e4~Ok5)~!`nX-6%@(m-Tqj|h_bm@_;m@KXmlw5cON}z~^t4lS!l^7PL>{Lt za@(ITnE*8OdaPP7lL00uYFL7yDphFj8)9pR3^@Jtl-r>lq-ykRk(Q_5i5vIg$JCR%UiYejyr^8M&dEQqWdVORcn$ zb2?55>`FAx^HfK6eK#OqS=@%9t$-(j!*3LP+0sk#_uZH@9DJ`=BS3`lLHC(KXOq+T z1V@$Mqt}g8d$mNnqE{8(W`eyx&-?(?jcMGQ5G{OH>mlpqxoN-$8$Q*MW>NniK+|ys zuNOijLW#J!xvLlUi|v+7eC|KUR0Zv{fcm8R6B&whL`@ABMuDXB*Uq^lun)zq%-<#z zd!FO2j~>5DOvJtLRezpL#4Vi=r}J9v?CC`5X1;Mb_ey{Gv#UtP=dcEV3*!p9*x49@)fsTww+5 zv(v{`Wc}*V(_<=eKz=*6cK>svRw{aG{{R6+q!azBw9F<7MT#L(B+D!CMi4+ZLdLxS zZj7|$S8oSY-9)(=fGy>BNX94UFRi4y!{wMS(%tQ;K(o+KYHR)l-VK}tM(`avaXE{7 z=2KGBrgte^i5`wBMwyP~?c0MF9<24x9O%aGGLi#LNyQ$q5=If>6qE<057lyZKJs2s z$*bK8ikMpC-SC_6gR+5b`rIO!f)kr~vp^+`n1294nH~_HV;t|hWT7dtg=opt z6+*z=rl&?!4dT1H)st;^^|QiG4<=MCoPRggvuS(>sg;*PXl$;7IMZVT^I-9_NNSuvDjonqn{NCS z2x=^ybAMGS!9NQ|v}^Ht^<$ub{6G=~06{5&bjA*PC?PrBuQ$Innz+8H9cwY}h#wQ{ z$YSYP`nyLqQN#^i{a%<9B{mk{@Rqtyj>R!fm)K9WqELSs+ae)_AZ(Z zBj)!ocK;}n&7K@u`8x_~5d74~y*E03(pdBH=hEXhr$9>owX_Dazi`Cq)|g(R`nb`j zdxJEpSYx-Nqj;5Dy{N0M@}wd&S+^BdyWdW0oT`xC|Hh=9s8|)kQ80kg_6VtyeGPQ7 zXd~4#5?Tjy$9F=|85~l+?JdBOxi2^$KmS)18G^mTBFn|k6whoFCMC* zuCLNvogqz_K`bG1wn#5*#NWKIzhR(Hp8W*|N>R8bbNs{4ApW@DdvNW<+z&sN_qNFEJ9Op@m*PUAo7C3p8JFUu81>ZS zDE~qPn~5H@^05S{BhJc>~6gQg$huM>kLbVGw%Nv0SHfF{$t{vIl7!->QRIo(D zh+igH_E%d8F#W?z>a>+>ITw@uXPY%5{oRZDlba~4_M>zbyS&7yhwRN9MQ&yJgiIJ& zyV+^9P?Q_d-Y6A38lhd8+|WwOuHD_B0eFDrQxMm5)Q*XFfKtE`l_=ft-VQCW)AW0b zV{@s4N~5vFw^jC@n)1wE6tm>7w+K)Ch^!ld%s_^6P=fWq9?r>8k<|X!*6iOeEj8icQVI+B&`|9w;VJVSERD_hU~^S&-9K2059U_T{dXP0wC!f1cuDo2rpN z!LL+lYuW;*@dXY;wJ6j5N>}(fHp`1%mY1_%a>kxu(%Ij{6tDWt1KTc9@gI9&bKFDq zQL8Y&7js|jpg6(Lnb>om8_$i@K2+ z>KsoJA>)2BGRvgQg{LbjSjRSO~@e z`BBvVzT(1Ii&c}=-Mfs8ol&W1_-3Nu_I5*3qE+hjzmQJ2@6Ve=iG?{5mlrW9isX=c z`jLByQqDDLE1|q{?O^yyZqTEUAn6zfORGeMRuX0kx|8@>vS9&LV|q3XBBxi#W}!b2 zot?QyI(gq7mI~$zY3n#EQBn=b&6YW}#BS#W?sFO+ih9S97>3=@@0_Z?xv=}C6pi{E zokN@N@&GknE(dw@rMTpZ=PXGXYTz-MP{Xben!}#t^&)yXfGM1E&F4NFRWt4i-sg53 z-@ead#)1URFR<^3u-!sS6hW_Z0FL%V!tUaYCMnX1>R5aOk=Jq<)pTq0U_?PB*5xRx zj1%p%B#l&|!6ctG&2j(WMQ0pycTUUsl15^dd_1%n$A*RG z8K#2dI4e1?Xz~Xkb83p2D|#+bt1U8h`gRP zJfQ?`(#fgZ=~kbCJ05ME3oKz16!E?nMDiulY{qodLv@q(5FFIhHzvx#B!q(fX--#= z&*C|l8GkesL}n?8%4fJ?p-8M5e?ND3%mb?B>moWgoRwvyyutTqSl&2}BSU!G*MWgY z=nmw-HOrNpjI(T0P}51qxX}d>$8vW3>5FFmaao)hC`VyP{>X6wy566U;Md2sEh?Qg z!m|rmHtZ-ADH1&USOn5JBi;G4{qaAy?3PM;PWJsu7rNM-l@W7GAmhyqQcM+ahRg0b zP^#l1sCh*;1=_j0rf;5|nDIl;k6q%u?Zg8?8Gj9{hL+74jA8c?wJYFcV15Kj&ybmFYn28Jn#l#fR1F<&~ z1&WhD>x38Qri$uV!q%}lZlnyAg1gvwfCc`{PJxRK;DU&D28vxTLBn?ZdHLW37fvtoyd#AnEh5u1*6t6-Joh4e)hPsgeGszd%?gOnzj7^gKF z=#pEAoAE69$(nTX%zO{`)~|6ua$+4yH3-lwyS>-ib9~3db7WVrCxzACXBte;TToE@ zm?FMdl*>1psYSK@AWy&69)Zz5>bouBey+NL`d6yd6)~osybC?qFh|(JscMSyXwscPh3u zlV@EM$Y`PiDQzT7X(8WP-d+5Dmq7x;m1Ilvmc2&V>ms8;G3#J__+yaeQL4u2W}aH> zyG?YuhqzmB{f4OYR*X0c=TP1r&lb+z0ylu3#T*<(Y-pY-8hxs1 z{k|)S@oN5Fo(@dt^l)Vdl4W%&u*zwK%y}!%&+A2my_G4aU<#&KK3unBeDo+9WFCLb z+!BKm9H(lNjCHIyKhoCsfI=#N4jnhz=%Cx^VEOLp{vjft%3PMKVDcV<^I*X+OJ0^ufvr@wJlOx88;!&+F7# zAPx6OX~EXXyV+i$w=)+Q@^y{Sxq{*?czIbaYs1#FcSORteV+VO01JoIM5D}7o%B8k z_9hu(B>mfuVWFFO67}EE9sGT$M>5X-B{rD>BXF19X2JMDpkVk@8ziqCtmbol^9U7+ zg_y~NnR*ZwzS?+e<^e&XpmZS2B}YLmeK{a`d7zO>-u*CgC;wvkxkR|^C<%rUHT5;r zm!Nr1R8SlASaqTOoV1;Q!oN|%MHk^4GdE3I@^z?jQDxMW;#2if`uSMZkYr!F!oLq z%bmx^{hMv5bgso+Uw7T%KT7u1UwjDKp424Z)4k$vEl%KYO2#L7LNM$le4XuiOQG!p zXrhDZ{Ij)9i$9=~=21aa*w64(Hm6+j>=drMJ+QqoMAxk|7RYHBF|wP0*hr`W;@ZuJ zyL;P1x;%?qd_L_$xA+d zKBiqlqNjY|F!a9n9YM&4e(nO+tpP5t1z@9 zM;E<>Z~wJ`l-^?eSlVp{vV)__a`x%K-xxOiWP6+*wr;Sbi-7(FoaVGN3w3P+A z&-wsnOG8825jr}~+`+Rus)faJ-RGvOIMWQhuU924yLidKJc1Xq9~ijW$lnaJ_o}R7 zO%@WL`)$A{MI}--&isKKmq4RWakx2(%5un3!nbra9>HVjcVyZZa~Vd_al5Ttb=%%Z zFI%=qNw)2q*H+Gz+NZ2i1+cBapoXskjoq{L@>kDC1<5E$W=1o%tz=dl&q+o`+k}XS z1!uGSoGkA8xKQfY2qlYF-Y~IbRHIR+nB`N(3PrdHwTf33871WqASWga1uhuQXw@&F zNehLOjzaa56~I`JRH(*Xkno+glvQqPj2beuq0DIH_?97O!|#jA79t>cnAfMs>1J%} z(U9$tnbPo6%UQ33hN3?J&jl#fsz2bF3hqMm5CSx0RDbu1wmWab#6MP6#xQ9#yn4~q znVyoOAaJ=Py*`mvTW0VJ2S_xw+1&t+_cQHfQNfn=)$dhQPmt3%zlS`Dh2$hs&VBlo zL|j-{prvrdk3oldMj1#ejO?}4mw4>?57u8jv$c2PYo`Y{yn$1cW~Bp9_4{q1nH_10 zRJU}JbI|#Te@jAKLsnb=Q`E7#OvB#%FIYz-|NoYCboe{#*n2zZ{#A$UG~5KSh7!bB zS*2+-LvFdP2|kQ4a@=k7Ri+u)w>q8E-_|pGQE)vJ`n41OCJYLT=J8j3mofl2Y2mPvf*8JMp zMoeS+^;2s7n`j9|Gq25R2Rssi6==rV;RCIDh z0WoQCkzAwX>$SPK^+jH3Y@Z=BHEpfi(a~KY>77C8M$hgRSqqmNcv8%kew`9XDL-^s zCU8$m#kc7uG%>U}aw`?g>~YC~cp4a_2e~)}zRPudIO;3JZ?EtQx#bK!tJ&4$mXwW9 zOP%Z++4!kN#yks$&fi(QlFvFQEwJI!sVVtXFzZohNjP>Mv%dRm!wrm)RhHmtWv85? zQ6200(5oDZ!}pA};Kgeu49}5tA&OOy+#J~4Msy}~B|kMD{#IOPDfAhtv8%l6Zl_pQ z;0jvQdY>-3MihkT6`cv3^VNxXCL^)dr_Vq(fJEzz6I$E-ZxdI~zPdAlwjgTZkrH2Q|a<9jzr#>K2oVZjS4Mr7^C=I+BrKiAJyeJ4ldFZX*^ zZn9R01xY`^;doIE5D~BLRZrj_INjDSFlPxLl!$yZOA%2kOfgI=15`k zd&%tuU-W$)cSJsbAY<{!Y^x8+*ajj0J&gGB$6vvSK>4rvE$a$9P9)>QMoviu$JM4g zX#Fw6Lju8|@V&H+^AdSRz<&Zv(qqDCA)w`h{msU~B1E0D=~>(u;qd64=5yUyeD=wQ z?H&dgG9-W0ZbD7lK;Sg-eG8T*!G>FMQ?GVP>Ac-z+V6MkX7m5Xx>;)eck5;$HPx}% zF)Wtj>c&aZ@R7S?hK#!#n4Qy~umDMz2uiyfp!YuFcp!f4_|K$ zimKJ-a}2Nuhryuvs*jb{#J|1-zKRGey8Hi! zBi#Rwac_Tl)k3}|c7HnTcKh9uNtd222xAA=ahST8;#ba)6vlyk8dl8w>*)h}27tO8AKUHIK{_Ghk>e-%}^AlehTRQ~#L+1U2ypZNEM@V}Ca z{(DE|zh(G*QI-F3iT&Z(u*v_iH}1C~eSi43{_xviKbZbd(%Yl%SWdgMLsLdp)|iwg zhUm)6xRQO&h|kJQu#n}C$uYGj&NTsn(m!13Gv&HK;bYInp2$h1OXhkxV}!C2gScVl zkFFlss{{>AmTO-th@+R+U%T>=bXrNZM~T3#Q$qc#Ch`e>A&8~8@;pTbeZn%!8BJ6)RX*gej+WQmNP4&guQ+vkB zlSsF!ozD&?JGoazD%_#%Tc6GB`z8};2l6lAry3Lqi@Ep)FNzBNPu?cL>~SntqRu(# znfh~EEpq}LMlz-yhAU(@y9K^52k(Zvlfg($q?4H*M&)nBt(2Wj=xB|RG*X$JCwfEQ zOjj9Y@5HrEY+kdFeC1fY^`hewATj*U&C1R}H932ewX&2&Uua^ZK;BGWGdD#$2i6$Z znPO$bZ&;8!xSs>_HoR|er)y`}%^m-9A<~GD33mfVOvwd}SZai<- ziq6QkXd46s&UC;EO`Rk;zK#2$^9Stvh#uLus>?QwD$h531W#uPnv^tO7vmAdJUUk0 zN)GfXwwkJKc5UUyep=gEYRE)axfTf}+pEbiu2VHK(utS5`3xxxe&jHdc)&UV-~=DRJ!SV5*uI@H)>njnHV$`ocBZGN zi_y}lYs^4gA0H=2Ho8}9gseuZu6)4T99BZgMw~F^+LhhPBm8-rWcH%Ic-I`GmoJf(q zBofG&!s_ZF!ZE*P3|I$5--(1h*&$C-?t5%jVd%fKjfB(pUeb*t|)!^-qdTjek;XQkb(S!=75o@RFuY z?v7{;J+rU(f={tOe(fO`NiQrwxdBP}8yH#0dyIlMo^k0QWMnNDeg`!tL@73=U@g6} z=h*{5PE_#H%a2(W{$zmW)ZS9IzPhk&bgO+@K8eT$)6y0x6Yd&2E6;=Rm|QSh5iNpg zpgFw?!TV{a(#3>SY`)sQ1mVfcYZ!|45Cp|U4Yc+*m*(IeV&q#Y?djTLpW%;>BZH~p z9}EmvpEow#ZKorc%|!ndHktV}-Jc>*gU+QhB~3{p%^}X2-?E2{mu7fe4Z)PhQR4>S zE^#F~N>x8YS~oXc(?WKN53Pp8SoIaob=~EgRGol`)x*e)Pce}%T{g+512UFred9a}jBAXmT}N&Y1W{<>bzwn*u4fwKlxpHs<+?Chz0in-^zZABCD!)KxA}O=a9Tylr}p* zlRc=CcRel%``-l5!1@SA}#3<>3(B)m{6eHC;M91uvl3EPmkdfVvb^ zAt7mlO^#9Lp&|Uh9%9Zpa!2NxNv*!xULRgK;_6=B=6nqQIs`pmZ>M6hY?8jZq0-Tu{7vCY%}M&o6T#Nd#8 z=kcsNqmJ8=clYUvA~FLncr|74>qw=PbW|S927P(uIpD$6nU%lBn*MK7;&h`OtXvb7LzMq43WEeep7w^q4v{L0O`80Fw zCTK79yyp(C{~6(x~rDO#aI4?Z@sjqk^SX7y}NN zNQV8(vl;P6&nDUUpFEq!)>V8p)jR!n<0Gt39e%9d-R%eiG7~9>+|Dg|5**4jpV-Vv zi3|(Oq>X`EvlOtf+`O|!ALD4w;yMDcXYy94BHj5%V)DJ*Ti%FA5_jz~g7jQp z6}Xk{e5NeMOH1NOd%k@jN;la#=y@1!^`(NeuxQrva`yc`P=RTM8eOAbcF~Tx6RiCK1VT#U>Q>n@iH$mE^0U;12p2J9 zD5}Ann69YBizL3YA=GIkGU-h+G_o2delwZsa7Dt|Wk5JF{D+s|cN6Z<=v_o%@ACw( zUvPh3)#C*n6Dg(6_li97(1l06Jatqoi|gAC44Zd|U0RgB7w5gHr&#G*bT{}Q)yF!L z{M{rU)4}1yz&)b86n)0k@RUfZV)Hr5pJ>Vc9o1X$EGiylvhpVrQ+If5QiY61T8zWB zZlSJXZqZd-n-DBSI7mkIk->whZ;*2v-2PFs$AxBPg>b3t^*9@8y)`}hL^t-aQmq5f zz90lTztowQnoV1|mgkpdAVqrm$5RWU9EbU``=@>e^{j$9T+_dJNzP=+Fc97Cew#~bgYV$GGyGX=`A>|ZbPkzxRYF>!T28`Q-O2~W z{K$EOVXDPBvsfe07g{G-n_tB@T+qk3tNiTJD>zOPeK*U2n-Q4s=#6f#%QPT|R_de) zgZa(-Bk7c*2;>IN861>r_jxb9G~>DxmXadWrP)^F6d1vHRV96K@dzz1JSxZi{P{%X zu9t@_SWioMcqIYewp+W53#X5FR7l3)n0N2qb>D5f*eV6x7Y(fXY=Yd#Np-UXRkRSX z8Fi@A?BlcCxHFgMW>x_f5OwD(+&78`hKMgrIES`weaOJET@9oL!Vxf)=amgH8(T_q zRKp@?K~-uC!xtrkovU)lcz!ir(J(Xp_!>Khu8^QRE0&^?k})!x&)c$)W(18aY5(ln zwB#*;TM?&7Dks|rOC#>3m8Wsey%{pmljIC^@Oz9QJTWU&nEShFbA)>WH4)=eiL`^z zEy&&%-~ECmw*XU$6zeLoRCQXR4(VNgU{tCSzS>&wGszJyB=#~nL9X$uP$H3H|of*gk%Q9{;;DhR63Ku*yybx=n4D;hPn+BuwZ7@ za0|W#A5p2er}WEU)Ti$t9g`3x#faRUEeH*P8x`n2m&|g!jz-wu;Rzc}CDY zIBUtvg0vpcZ>*Z8!K7d7#cJ-&bB)}|UVG-Hn`_Hi(a{(~Iao*orXpgsq*&^*^@&P) zqd&kk4EVbJ&hpGm@uSQYJPV&1^&$|35hKa9rn<9R@Kb&>D_Q8u8k{t_?E+-l?>MQb zB&rcpkX2}K)Gpmhj0hd08Y0!@7(PQqnlx*DkqXKf~6PO=YJ79HsV$1%(HZE^`I`wlP#*W>Y@c| zd>x`^zV6Qzwt0UuYYJdYq-h0vkzrgE^4SdT7p#Rl5dALJ{FglC?_y0tre_-Y*RN=^ z@L=@}0@6rzy#&;h;qPY6wOb3heav{BDDB-257YW@DjC+wt1|fX`MC2L&V0rZ=@{q8@(ts zATIkJ~#=w4aWc5#JAi6bH9YwKz}9(RU^x z|1#X0qgXzxdm_$^f(fURzNn|Fa9*a>7I{33i@bC9xkRV1Dd|8DN2bVgRY}IqzUY#h zzb35=oaRb>LaDa;_7=xfdm@IOkx}i6?3U_*mk0QONOQT7)d^aKs(&mGel;ASrpEY5 zUDdH>6X2EJl_qL10`x+Tm_ZyNa=u`|n2{06R8feFULy3~&oj&kr#f2Zxw~W$mNTMQ zFVYqZNg)Pr-nkgKiWn<8;EEe71?gJ#UM}T~TCeA>E0KQBlVvOs%vZ?JCTFCyQqCQj z*mfA*n|hTfj6#t(uukZ00#08{oF4MSyJ_F=Z@~X3-;DT8zNw9zn4aR|{VR(6VZ?JzrvaW4)aV^~$crdcPT@ zV#1q35w4}gfSBYO*yhA|%@ia%W=OOY(v%IT1qvnf6TZ=16O7Ts4rjZ7$yr{^cbi^* zvD{8$Y8*r;zVNG@ic=Wx8;ANCFs5$hKhLw$ zN0B2r+eq-TpJ*vCm~nrZnICZ1TrRQ6xyj+h@ONf0Jf(bFZPRzl2T-4UzRaG?e}+HK z%CsBX1zCfChJ}q&k=v8sEmL`LbR!Dbl+O_}R$uvsct>l8|QcRx#C7R>~^KA`2*%NvFmUG8b+!d``}i>!f#d zoiouUcXqEFWk653)${{5e^{=*?h!cu+x|_ebmoq6m)&E{e@m<_)|x4D`!h_aYBYU z)y&nX9DBV?0d8ALT9X5yU$H3phTPF#W#cQQUcLIL$!GUDD>}%~YTHBWG+w60y<{pQ zgFQ{M^F88RZRQt|sg=v{%M{Na7Gg_<;k!9UIrfzOwy#axe8Y?~m1U)K#z*tZNs`!} z(A7yJCqc5RU3>lH*JqRjC9hC-MBlK*#GjQ99#0~3o|hl@6~DgH_IPm-H-2M0f0Bk? zy!w?=Q#U?{1%_>qwojx-hNaOW4+CSE51SPfLbHC8ZxRj+oB+H0L~LXxui0hQ;=7== zsj|+jg?Zr_JE^giQ5?gdfkAek#?yMh=RseiaR!-qfZm<`LTTRin=!##$){=JOh925pPzP=*g91V=HonC~|&ZnS>)sasIA1E5)+ z>yn7p%CZ0XW{sGnqJs#MoX|LdS@gF1=;GKbl$ZYOr|_mT+4b^|547@~qv882ZgWk^ zOZOoLwe*N zj{j})X6Yu9j?3iZ`jtrb>uLP|$lW|w3bBK|IM*ITbgWUJ1_T=1hX?@u`Gv7s=Fmq% z|L-~3d&B!7>`WiuV9Wp+I^zReiadb9rTc^35}mta;CW=3HTL3V^p%>Q5qqxfO_h&Y zZ@hFdFsK!PaIXE#$UUBG2=jfLOwQzJ>s3he@ESHZmO)VvhE<-HV>lT zYXlQ6tRB2M<;<>n!DRAQ>D%i)ViFjhza~pfClbz}`7@W$XP5!0UfTxjJcwfU*uTVr zpCXcbqyw+tK0RxW}xAf7DsJEMrV?%fXK?p5%JA zyJ#5f2vCxdURv z&`EN&Fs-1KJtheduH~(JW3W*K!JtleCf;=$a9-$@u<}PW|%}k2vWc(M`LY3w|J`k%+#Jy?KFg`*X?8p88L_vfsc2 z-61;}MMFf;Y(+RPG31?Q@}zdS@=(Tn2Rpbyb(nvm_@~Q66A(grj#Hl4a+f za=q9#L{Di4b9YKZWB`+Hsdcvc-I4#LhUP%H*+Sl=HQRnA(0A{&Zo|ulx1F zk2NFm?X*L!oFO}XK`}To+GDw@)`6Y5lJP?}A8d3Ge`7rLAocv_p_}sOGjS=!8H76H zXPf^Zp*i&D)d%oULg&FQp#E>)SAG7G5PRRR0O~3FpVY50hJU3!U%KvJ3GrAg+GHp9 zW&--4GrLJD4tFkee3GFB`2rq<-G%V{%CCP z(B?NZtOzl@cu|ob+O8nBm@2r;6OaGgxD)dE+qd^Z@Uv2Ks3YugL)EL!gkQ02YotW! zJ=fbf23+1^=0;u~8u?IP1&R6&jE@FB?q1LhO^ho_JF8M03%<$so4TMs6BGP|6O84ncr!DGJ``*=W9CRd*#dy|7&8PzO$LzW_F1RBfd$eO6JiW^>%)sd1 z$B7Ex7s8Jz9zy<%`=Vp}zn1qgeEvh~6mmYr;F}^VZveJeXCmuz;E-lX!&c%5m(u1% z*+;Rbe$5(d2)#H9k8`Z#9;J*prdxnIf=`bs<X z+{n=5g^QChLl<|T`OlBuQLMYV_}<_P2@{Ci6Qfllod0^h=CRTbiaNJ*UnTZx=>zUx z*P&#O%52JybW4|2N;=AmJ6f%OBJ)L;519Sx|McOe>qnVv&4{oo=bi*N-dC~Wnm2Xi z3INPwq>xE;=gE{aIGFbTgPLYs?0eXHQ22$;>u>zjS?^K;JeQm2JZzfxN@bsRi%=5D zQ&RtA%Gf*BuAdVej6w}%m@R>4g5G%Ra`Bdralicps_MglyCFc--G^-JfI~qr1 zf2vo;I-3^6GU-HmS5yM3v=3)3?bFRBlk0as0r_~5$fJx&IirP^(qsQNb0d8FNjKD81kiae-u?$(XsrC-^fa4b#pWwfsIyV`f0NYw z7rfBO(F9%5p@io~?cT&P?~TJ0If5kp9gE=wvx@m$dRcE|DCNdcopsz=hdgD7@o&~- zbIQw}+=u>+>)|4F4IJU0c;mTeeSGE?7pz4buW8myMfOC z#rlolDq2cKL^88~0brQ%Bp81_a%;M4=Y@UWd}cxs9((oA4$w_H4EbCih)`WQ7N!K? z08I5zCBXXmuzt2l9lK`7&COoU=prg9?#b|n)0T?x7ex?J(V z4Dd$wnGa{FoISIE7-*1Ob;rsA`i$l^SwxA#{KxWBDM||GO#RUMOS=?5$zIvec-sIz zNMYGYkf@qlRrwY-(+<}FDQJJ*+JO$}qb7G-rF*nb^^XCr>D83VKmIMP9NF* z-MCv^uObQ5B)_%n0%?OlJHVS^l7aGkxzZg0m?)Ek&*>iN_a`3Wrq+2Ak($7p@tR@D zX$+G}fFswP&CvTdvX^nlz$ZfuYhgzTnD@&IwLnSMpY#Mx_5~Q}ugFpz`OYaArxsX; zjg@^yR)f5LCc3%c{XY}k{K9=Ex*37~-w@rbc<^tcn^b`4<{eQ{MK^iC#QF?M_Eoz7 zZ#LFHVUs%riuS5rKRktvNa>~~F3duPfQ$8!|1I;A+B>?AIcL(hP>~_g9bY^kN=g`h zbLN5Q+{_u@IIHlqj_@BG?a8uw*shHLlADxf=4wW7je4ZD5uJ95JRdzrh09ZlHo8!e zrrW!@erHPIjn`XT9C`nx?ByiD^}J z^YgCng>elC-6wK}dEPbFjj9la5w27n{Jz4Xuh7#*?!wCBvpnuIz%y<6GZSCq-zBgK zvt18j_ZfXHwuc^G?h_P2EJJ&6iAe92_0e;)v$MCB?2`tLf|Bwb(0om2R+1CSz@&7yjdZiwC9pm0qp1-BEcacvB&ez{Xw`E4Ax-Q7ubyz_9XY-rG zb%wS|7j+Tr8Wb{(4^71Wa%00&$Rz{4yXG(xf47m_>?Zo0w+pDz2?6UFMZD zs5W!>Gm+@EPGi2@dC47OjtKkk{QS#r0p=yxrz8kqtq{=ub(Uv-!qSmn49-dV19Tl^ zr|H`WQH5Xu??@omt5WvK+D<)qMu9(VLU@i~YAKtwmp0|M9S145LcWOObV*mSsg{nTcy`i1stO}n^c}yF=FGxxvFKKA`hccR~p5QwN za~xLp?wMm7d`LqXY@MS+x^;OQ}{@RMbdJ*U(auvOh(}ON4I-N0tyWs-ZKg1N| z-612>kuR0geRCHf&ai3b>BzV7Kn22=GyKZ1J#XMo+sJCS-JCf_w)+65tt^P8TaoUP zMe(lgdZiqZW(YByyJkxg!j}>1&S{9=W$i=wVQ8=j9U0llUVc8Y&TgmyH5ah0*6eJc zAGjQT5mT%$T0ayVOE*AHM)vZhSuHf9b$5G{INHOEX}DC>xccnmo-1*t!-7mF@Vh;@ zAD!nk`sRaHnn;;%0kdBV_N$DTOFT<2%WTzL!cHX<~=ZRxRbz8CdbHbL{&-J+ciJ7YicsVt_N-j9^O6n6^L?&H%DfVKKmF@e@+jHAx z`mFj&?`xu7C#xRYTmju4gZ>BrwfupQ1W>s5P8k9;#(NJ8qGZoE9Mv5Ve^DJA!)9&JiJ3s*B-DX7i&WlXM);oHa7} z2==7sG;N)ZERyF4I~A5rw+uvOkdcwSQnOBd;Vh4$p5wYo15?T7xK`S89NC(aDW%=o zYdl#jnd*O{xHi3U)p)W&pT40EOGEM}BU=cKIl&`NJ6WjopNA}pu=y2eD78IXa-mF& zhqbe?$VkZRnf8e~8nQgeTSo{-uZtTds@4tkON01yS$}r{`|De&1Otdju3`M%jnRa9M%K{;lIwWuBZ;ZVA$8DS zul~vtK!f3OCvfEpp%K=@%9a#lWDiWff1jw`f2w)D5I76*JDx`4Sk5bJ%p4ef^tI2Qoszkbogi)bX$|W{ zJ5eobu-)*+GDnd?0X*v>@VWotr9=A5veehpv;FbohmnbiQ-(g8<_@r$|NerYr#=0{ zje!$&{q&A^sjPs%PKd0liwjk#qC1)?Bk2tP{?GsZZi9}Z^xqHu{$_&xoWVbQ`d|N4 zEPlTD?2`ZKrQ^t?L-kMRfWz#e>)Evb`Lt5TBPEvqd^$`vGECqq7|8wOcPkd`j_tqL0$g3OrN;v~{y)Gs&xSs?PW9{n z{FbOr{>5c?oId>j{mr8$|3C4oGngnDdiHXgHx_iXnY8>kd#Vj*cAV2*teo{oKY24A zgp_+fTa8XDZ%>sDnzk~yy#HibV!mDwj{G%%^+>x}QsN(!YK*?>d@69cX+Eb%4VI4F z^qSQf4KaplC@WfLxKog2i;SM)O%GHIPZUG1FXLuFahj&?X|32lDjYPg%$gxZ$4h0B z@Vp4GTG;BdnLTk{lMpuQ6k!a>ySai>NB>lCB$DQHCXRJT8~|hXPZcoS0_q<{lO&YAD%W!m8RUwu7!!%}VF~biPLYpPmAP@{uA=^%W z^kn_ZdYc+r7kR(fMJBbaPfk=;M0OHb6NgZo5X>Fz)kg>DXwIFUB81Ks?JFJK#}L}4 zs;T3^TPHgPr^q7Q>9K75NT>Ci_JI-SPaBj+2S?5!$B*+J%Q@JZVoszCjf!$)OM^>9 zfqnMYel^wtUA?V}{*}ZS)K9U_P|`6=~ot3R0O^@P9tECvMbrz~t-*K%V$z$%tUBB_l zhf;`2SrJ6Y){zCt{$!@3MBeUv8hebojVxo^tA|0~ z;aYLZ^XaXlAtY2#KR@5`eLSM@YilsF!)1_JEfH5FFWK)Y6<-2}Y|?Vlp>m z30>V^Ca(QPc$`R!a@xc!+45F4J3kH%B(}5>ca-&K0tdw*Ka5C(vK`C3?|&d~vZ532 z&|?#$50MvI&6@Urdp$8j@F(`Ot)MuQ8LG*#@f3FbW2Z%eHMDNeRtt^Vtu$UQ5fQtF zGSK<&EW~Y41laVDF-9FzenVGmYEH3u0C2!F`GjsEi^={SHk%{RjDb zSNObF#A~s~{fu>aO;Q&>%t{ON&+ndG4qR-8Om++QI|R%(s>fk$_A-#;v&IH>+RUsD z{(Dre5g?2c==T-WS@af72AR9;oa;wf*-v2TZ<{XZ)wufum=3BGh62vo-) z@X{umxA0f}cV>3RxjoQFt~XQt9}l8GuEt_J7&J>E7%9IV?4f5gmXN}JX-|9au52Z} z?PlZrfIHQXv%rsm!F~h3d8ye@VarWCH{a~>(>s#o_`&vZ?jzGG+CAV&_=MOQwS=u~ z<~iRY2bE#_h^HRnXn0<7x*N^L*qqQnFY9*GinyyEH~k`t;k*WUSZaKmMAulrwP|>)WM+;Fs?S|&qfthxMfIXNwC6s2 zXEfez1ESiHeZ$bI?1e4KVM{7kRh?ur=P)&WZ^F30X0|1VT#=1ybVzDWE_dK1QkRQD zpO*yvVbtvSjW!V1A|ZG{>V==+7Uu#uQPv8k4sy}zfh_97KWjJVOzqhioE@p+(hX#_ z$KOB)(HA3IlT^gxv^zD2H7p$k;a5!Z_yk7~d56_ej?;{;UhXC)cH=+N;LVV-F{{nV zY-|Iz3j}xA)RG>Kv@VBcR zU|yo!7qzw>oM-~pg{Y~D%tgn+dBE%r`Ypke`;>Ls0;{J)!og&LVT60*sb768=4(%L zSVq5f8a^T>)ei)wQV;&p)+~4&jX3MyWpwWS)@#8UhW}~K| zd!@>I5~_+1XCV(g-S$?(zXtM?5w!6l@b=S|xQdn?6JLugMa4l}MnmpE@C(EKQApJg zpKSfJYDB2~knk!eK67XBd71kP>MYMEyUxKWWj{@rvT~l+PP=jq*R*34Q37NVF*;mb zp>4x_#=g0+q1~c<^9LIJ-Slo_Jk-hlca8{k%0e<D=4U&O*?)r-&tl{J(5$(-EQQ; zUk#}3e9hW*2N7&-%PoO5xN)PxExdjxUFmv)Ko>LTWW8d>^p9Vh6W%*~c1awIgQmu) zW*v#0eTS<4x}tW|%>W_&D#ua2Kg5GLURh*OJCA)-e!`$1LMW%r)u!0Z(yac?#W*KC zhg+Fr$mmy~WK*54>+yy5$WHvejl`Lp5@0xyX|*n8$33qYnWe53AXzLB^Nw~KXpVOO zNjdI@SrxQ2V$(HZp_0l6|E%SlGym0h?^8EF(-Jw}J6f#1d6+TKuW9yVR4m#3N0AL# zBIjeu^Sh_bHHUnBvuv_j=&k7lgh*PE_U4rA#AfLlKGMq6t+P7_*ui(E>`KAd$qWy< z$BI?!eJ3?C?LULHTI&ucMi!AJn-MWw64+nKeS%y$us&o=84#f&OeYn~vv#fyU0aMwmweZ&# zO;+^MHZ-m+`-_m))yJh9Y6`Xcj|K#jW34|f7rH78^3<3bdiXY!PMRXOkB&zgn|I=u zp%`9qjP>|rb1=K~-SMXbwf(iA!%|r`_tx!tF&OlGLY29M$3jgd z>y_juGj}C_HhRqDF5KU(MHux&?MR`C-!2jF0BWVdMsBLE08JBMBm};r>b7XzKVq( z;NXCzI{DE7X0=DQa;-~&F}_)PTo>k!`&5mut>C~uj4UE^&A$G->2q`PW?uKmbjb6X z6nCmvN?c@I;j9fpty5Ve$XVX!r^M&PvDe2DBp_my8Ugjs!2!DBdHkL5`@sH@RL^iL zwM+jat0Et282mca8Xx`cohL*QKoQJucQ*#GTd#R9wYf7}26t$Wf5v`#US?rAdg3x# z91i-;iuzy}xLI{eo_D@bWZp%Sxo_$$Q#RLOsB_>&IsB` zynUe6IR+j;Iko#k+E@arz_KM}?z6gXipQ%$RYH2Gmr9*RMT(OB$ETS7IV%i>t%1~^ z*RlG_;kVPE)B8%u=jh$B5A?*2)iMjRcWYG?`B(h7+02JCPd$R~?Sl?WuhlD@?r@yW z)NfXVv<8UO7IH`pFxW$T`KLiZwA>Wyu=n3&(Rhlc9 zZ1jnshSKJ&UFw4yCZ5u3d7xtd@VB@5@}Ce1Y)+0H;pw=uoiM++52*{CV= z2UHi^HY(IZSquuXnKeFuO(hg8_tjXvc{kCA&4AA^BbvK6W~Qznmf}fDN|Gb?{5iwK z*}KB}osNUd91TKMO&%=8MqIe2-OBax@xJ--V(id#Z2(H%arfoUdV{Y=iq4&W{Ym0Y z5(-^3K2D^j$CjCZvmjMWsjbHSS@ky*{TQ?H#kj5jm`IxD#utx4%a^mUzdjeQZ1GpG z#f&Gf#)1a{1=(}>U>`b2=;vRv=8&z}JOKV(L+NLm_j-UZ zmdiNr38u~JSj|2m;7MRm+2EJF{CfpeY1xcXtZD@fxBjUa%oHDn8tcpf!KJwJ;u{!* z{8^UhoVj(up%!SY&E}b$aeYm@!EiR{`0C{PU>nC+V@V8mf^F5{z>V zQ>1^^^j82oV^L<;m6_kt4F*bM&d$A3&d;Iu z=IM=H-RUDpj_*l|<)a>sw^Frt?#@f}-Vq&y`-<|IfT)Ee-&?d-jD(nExZXWJrkPsP zX)Vb(#<(@(GJcRI^c4Y6a`TFb7_r<6x_Aj|!L$#=WVpQN<82S3niP$ZlbP91T4B{Jz zWN`3gnbLjgqn2i*sW`!yk$~9QyfJ4zm?sv-y)S690bsZd3sh7wg3P1v2wTpXl6Qhx z{MEm@b_YGIs2T-d3dryeQ6b(cR1s7+!XY@I4mcOGKEfc9y?C%g3Ls7Xpz3fs&I&{y z9Trf|cpfjm;3uMPQ_h_HX2aDew;r?~E;0F*Uy<9w>BGj^Kfb*~b0+emj}H*4!N zqGi3zg};9n3MH2?dqXj8mDV_#DOUylW6=gdlKDQYt55*-`yZ{gV#`k|uzNj)Nef6iqW8$=+}AQ3!H6BiGbRZE>O<(0)xyf~e${rla*YlR(CW7$ z_mGojh}5CA;$Q086YOUSeYFzINu1~u3Zx1>kBe{XvTXHc+SuYR6J9C3u>3~Q%6g%Y zw7jN_N@_3KTAzE`^Nb!kv$95Rq96-9o`OGDCjEH9U&+hW&iy1~vp9AW zLtc>a@{L~WT#ELv$c~2L-jU&!cp7*>IBhoAx_EAN=8?N4S6q$WyNw%&lz#t6bW@WQ z01O`M)|CBJQ-hi=-Fd+U4P5^CEy6-@x=r}rU$DNH*$5{kLr5`sE(eDw5;nU6*rC!( z_6#EJc>~~lQ)PZp4qH&QEThgxJNvB#Wi+QF&RtDXzNQx*2g9ABEs0q^q@9vk46Lm; z{A;2_fy*R%5C=0*)#)9!%SiA>N8ElKS(;Z6g`>Tu>#xf3y}Lo|E%!IU zXOEXy%9&Eh_1QgkQ$`4{n2pD~zNr5{fW56DN zT2X*g>#rE9xg&GSKaCLsu&i~??TSFJJh5dts@xK{JUVgO+%=RyCsieX@$X5-0tFqm=Ie9myvjDNy-l%CB7b)g=A8{Iybs@H1|7^k>%wT?Dpqhdsd+aR{stC-Lfx=;< z)qpY$eemptyGf_0Xi)uJM&tzR7O0ZYH}o3cL+>x5JlO-}tQ0#(_+)Kz=e|maPyNbr zTVM_VnZ;xMZS5NuOT7Du6b*uX4Cj5oHFKm8VIt1eXXeTSh%G*8Io2Pa&@D2apa|e1 z1E9~$pqz^tg?3fm%xdnbrw4;($;TU=wSkTEcdg&m&y|WjeoF(ooeT_EKN$t;c6EmA2Jl<7r#09z=v z+Hnsz76pVA;Na9a(0maQHu=u8(zA@C<~15Sd#=>8Xx_Z7I47H9;jH}O2rd;fYaNR+ zh6>t!%gYO(i3%KETc=2P60`rfh~G&7wv`KC{%kyEN%?D@Yxe&1J)KP*DQW_Y2Sp+c z{kkkDfW&g}Jr$1=I6+kF(xj`QjCRCbd6Q) z!+g-a;sVud@~(&A3}!Zm#sz+=jp7f5N|)U0A{1`Q45fjGG*wNb9O&JFqF4B!`#JHq zvFnUD8P!WkR|CbX4=&@Db_XXmBA1fbbdv6R7d^)8AA8y!*i%{e2c z1!yXgOlOx>ltDxEGIIUt$+3gKEOih?RtIL`I?-Y~me)fcB!VEbM{612)2q%-zuo6; z@H@0^B||{`Nd&RXRAIo@0?+<*IzxX)j`#a8=^z{b@H6SKx8DSHv0(KxeYqb~*4^qf z4~48Xk5w2(3|b{~Ue!-(OY5uNR9w>gV{3-KMH(Y%t$!(UOmJ|!m^>*p3L4y|NyHy# z0|oqRE&al}k-(c3o3EWWF$f+pOolb150}=y4`bnaPN(DN`r7Y$X?GjK3Y=C(3A^>$ z$!No#f>hgHi7K3<4^O_EPM_8CeDW)gGKyPe{noK!b*(-x6#KVv^>;)*D2yAb#Xn$6 zfAHXAfx1sWJE4jYsc$7&PaO0G$j@fLqXiYsZC<*bYcaXA! z#JcXU>1!YNQ4~Cl86C)@e#74Qx^mQIRWTIAFRcxSH5WB?_pG+voAL+(KVQ&C6fJqJ z-tD){Gqi50*F;s0cz$x?mP|G38XtL6eDM0VBubf+jEqk^#p_%DW7=(_k8dI*zm=rt z)Tk7(2J-w=y zn8&cqWyU+JOS{*1Dfd~@zUSE(%yTwHM_Vv{rLECZ`av^S!}5Ks)DxM_mPH|%;JF6Z zZ$j?gS9U+b(;(;DE$sShpeFP1cW|+?Yz-nil>^^(6>?ost$CZhEW|j7t7+-(Y`?wv zHb0q0&qPrNBNg9k>cm%L_jSXD=)@p&v4usiu z=1C}dKK_kgT{~7 zjkK96laOIj%dwv*Tzo1F_kg%zaeP&7)_gLW4M0)=n6U}&Vz2Et^|q?UdvUyO3+PB# zj2PcS-Occo%)Y?FeU-4EfME4Tyz=T|sS-Uu@ItCaTQJZUSLiiwm(gD~XR$^>tt{uF z)5Q(BymgQ(jQg_d!X>ljY90JAw02hf#cTP4euZVRUjhr&k@Z6Ib z%WTwuF>8PO@jlS3wXvRvi>{yK3P3h3*Sg1XPoHz^HF+@@FK5>EDmV~&{w$Ofw{g%H z>%HEWuJVePVcdQedd3@`_V$_MEH=FO{twZ(t|__oER|htr?(ffd_@ zp%1{`DUbRqK5%Gd;@l%SBm_9aDKd9ujt#qPbhT|!D`y}OR^glAOwjkJ<34R?bC^CX}GH z#omzZ)cHsKhEQ!#_H&o3n-P){!|g>?zM+zQ*~`*ZL(*vGC5mlnH$lr-1-Xz;2hs~o zB-xh|K{%CSRrb56HWQF#t9#sp(qn^3-H)GFb||HN7^vq+75zVd2L?h5`#%;CN`s2+ zip#BNuZ=@Dr`sOdDZgy4qo*x2mQf>>b}&J1We;y!IJKV0O5$1@(=1Z_(tLvr>RN)g z5H)Uc59^+%c#BZBc$Z%fNVHbv$^13Rsm1a{Yp=2H1^GG*c0>e@V!(>cf^45H6P~{5Q$YZs2r|7X{oWMA+7}5I87_&nMuYK_Zn#j2fx*J7|kjW znIH`ZZI?i??{JP22^?PlT8Pal z*K9@O?YrH`v|1??P|KLb@7ExYgG&YVS^tbUe%rv@hIuCe^r>MjOUE90*)B2fi`bP< zmb{a_#k?iaaZZj^Az3e`+G>A7y7L}Y8QvxIcj;N&&0gFcFdMG4PHpR?3gag|09qlM zZ{NN9iaU-%e@14Z50!Kf-I5pGHtwFn+LX2Grw@I6fRG8m3Br;bI=5Y>iHJI73$T@9 zXhkLK-hlm zUC)7rAOs!q_KwJEUMTPv2~(eFCbf$`tL2&e-GF^~vW2%?-UlEE2BQX5@!@bUw>?(k z#*bt7vCnRs&>mxteYa88z=Llg9%hCK&wtgaQ#U;AJ;Y>_+P&qgTLYe-dd1X|lPMvt zDCG|D^-60(QxXL@?$QFj<908Kg$&Dr`e*_Bekzw&0Dxc zrBAvU6OZeSakGiKBa)VInr#i@m!vyCjLWx4jt{K&L53x`t6jO02f7AuMH{_RA{?9G zZoiZA2&EQKMB3xG(4MaLknWmd|T#dd~J3#Fw0rkjt~r;EM%h7eMgQhr+E( zjW3soYW=pfs0JX*u2GiUOF{+>ut7KC#j&ZEGAv9HMIWBiz8nic2cRpqH#P72dXg%z zAuBCyBI=*oXHikfEnZ*xbo(j`l$hvMZZ}768a(B#sNI5OH7=wAKt>JLomeujf}QhkJFQLhXpNfP zvrHL&<1jJS*y88ZyZ}ELN+V+YopIA7fS{)|e%yO;wFpU>RaMjAddCcdV8%89t@GE` z1%`q){iki~fg>{{%Mq_D#f0)bu8YG90LUkh^ksUw+aeTDwjcDB!hHGU@n!2+sF@ho z?mG^wdYAVbS_zBK2_L$ejAq#1%WCOzsjZ2>K;ZerTSRvox4!JLHphClk;X^VHd#Z& z%k$*Dv_zA8+lMXZ8y;0jYK`C2ZB2linxaC->Jj9jXVk@wq=bn!=m5Jh+FaYpSvtnW z1<(fw=Yni3Pc{yJ3YR(CY-FeO_mSvrVnRZK2@szDN(8BCt-v!9ZWg}Bv&L{Xbi-)` z2_tQF+0&BODvMQNPAf7WCpOzLn@xlR6EM0<{OVcRmY8B}-^G*hA})5r{Vu^{okH_7 z$D}Vg*{9!r z;W{h-R+4qb_D2f61bLyBhZ{6ND_hraIe#Om3#OGASr&M$RGI6X#R)1Xa4RB2=hC+EPMpjs4LpBm(oFMT^13{YRQyS(GY0 zChRQ}BSpE#u@0H1Z<U-wxHad9wu115YU*C}#QvVdF;=2H@zCot7O1WCjpyi`B_= z-0gan0T!InAhOo6o`vMKg&6>&Z;`vl;1sPS z`M@BKMB{xg(P?KQEeI5IaJGWR0`?qd4~5QXfJeS1botxLDxC(OtsDBOtoWHfik{Io zm+7%!6_xh)ec~Z9Wu-Om3ytd^<_{Yfa#xh58~hU|QSuYSV5%tKLS>1~4XTE};BNGG z6`&>R@UNp4MWx=CDpFe*N5x>}k@8>Ed_F+1hVc2(ft`6B=6T9d{}K#|nv5)WyjYj_ ztYr6%5=AZH5!0aNtedTiYT%^Y7-5BiAAxqyENA zd~*3OyhMO>^M84XXSeJB@)FPP!oR=%za@44pW!9if?L*;Xosxtqh;%p<3-mRXD56YD@1uJiuE?w%Bz%!P4yGQNSJ3pq3rZ>-;n0Tl#*bM2Zd`mL^G;$nU z)xKx)E_SMg-XDIyekAq#R9wUS2@&KjTEiN{@x%hW<|U9yLl)Mg21>4wGf*foUO(NT z(ZdZ{5{JQ)X7xrf7RZuZPo?5Is}xcqK=?94Kk+>_dNQ@2e;YYDBS>>c;z9M)=e_}J zp&>X_lhde46Y&)wFF2I= z0Qs?;B+r%nj8tS-@3zBWUgI29r}e(T7A^h1esTDnp6-MSl95eIhqQhJCglBzIw`%2(6Id1UVup_(1)O9F9*8&j1^1ehO%BE106=k_X;{KJ&;aY0|51MQ638Q!7X(TJG8GK((!8z9G{3kr%uT-&X&EQ|Ofd{!K zNz>I5BR9q#T%SPKio5^H6$(6@X-ky)rL)k>fBMDQH*<1!h-XIX9eIpU82i$Py@cBUu!HhK%=GV(hDe ztViWFCH5|w4Hs19qo=I=+e{x*_74ccTvdJG=1-xJn7}9GZom+UZBt>p=D6_ME3^AU>DW?cF+$8EDB}0OLvR^0067U;sox((uIAH{(LC z|EZkd=hdz@2cN|M=-K%QKpz-RsyihL_CN=Q*vk^>_GFkfoWB5=`mk#cbPtz5oo!kW zw?-@$i`=xpOU1bN@kBK=jXr}2MM2zt0saE6-o`zPRdRLyE%FfDjY^!&*o#m;kerx5OQE2i^pFBXbOjGkYPxjOJMPf2C=Hr5dezN(p)G-HSNWj= zB~{qDErf*t3>+Qtv1A7mvp7oh{b_er@VS~ zNWJ!RdzRZKo*P$DpL4t%4}#bF)u-K+=N+yL1ho4enA2JeAB>tT56WQ{*@<1L7M!e;(>_~(x5sQLY^q7pNzQ}x()8XvwVj!h zQN8Bl1P>2I$>CvY82pTV7O=&}EQ-5o|GqB z0@*X0TmHaT+N8sK!SSx=uDIZu9s<1(cU35|`P5~)cJJUNYn?o9Vb^u**sniA z6;NDJajRfB9_Wg#+za%ce43W^3Gcr8)g!ZaiVhxir^0IwDA`uF))wpCTJQx;SAKEZ6v@wsGoPm_5;SZT*(RiTkEZYDi7Nh9u8(o#{L^Vjl#C-`Y&6EoyUJmk^AkfWKDhfVy+y@mnt#i}YU+unEd6y6EJ z9_b;Q_l!gDZ}W&-20z#IKkd;J;f3;H`vvFP5?)~ebflwgy4of4cpuwL+-z^bznPyq z_*!B5u#0sto#_jJS1c^R^0GTJ{c-cqxiwwlhTw41;-PC*jq%A&;qoe&ae#`fPBn(w zpycL3xTp~_j6oCAYfbcInWo>I@}}p{;+~x{vd31x1I7=yziX?zE_3V_fPXRuHSO+X z4Gh;T1=hh}@W5KdlDmEcT2@&D#L`rsFcs9V=ngTyt)kpY<3pV*YD7yuKT-J4WD4{7 zS9%~n+pa@m5p%OiP-K7yH)tTWQEFJGG1&pD%~VCzVXqI$iN29raww zz>Lo`)+p=sIkdPW>C8*sGk}X!n0LKah56FM5#sH|#wWR-<)J|D@oYt>xR^9RiZ;2d z3M;2qVvnsu#%6`Z`P=donYntBH zl=4;I2v*L#Xko;DXY2tL<->(w58V~$-oXn-?RvDL8S7D~>6LSNUdm23jVGbTMm$sn zq{ltZa@=V(C=h7N`PeKfz>?)SctkK-c=`*NX8`>>K!Z?0=%Yr(jtsjt)%@gp_9#mq zT%jQ8;|JYnvazGl1Y(bxInU%rC75DuOU)?g^tmsI^s!zDAlQ0<-^7hcquI5Gy&|n# z)4{!kSSVI5dd4x)(tvzb0h0}U>OW@!ZPt$*E`L0fb0z?bDxp&sb%`+Hh7d3&D|kE z55TqVqC%d_0f`wZAnXnU*mado!xJqe;OjcuwD-rkxlRDbba%F%VXPckNHre z!O%9n`E>8Kf;0{-HEPvVopmfBjO0#%^&wcWRY2x!^3)?|(4?;ZL~Trb+kIoZVp1af z!=*Feb1kLk7cvWZBPwg7M*q2O?WB~`_XGG(PHPL;UL!NG`8yqqw?yPHBji#(Yc|Ho zc{#rLOkCsmq&u3zn_LO2n@4U43|vS#T2^MrXV*!BVf97#WXkP6ZyE*z3C2tyVY0G2 zEbG-SD_o$t1Jt0$WZ*{?0I~dk+B@&4Cf99W1FpalMAQW$umC$nic*!Tq9W3zcN9Yp zNDVC@prF!Jnt=2U5;_4wC@P?#cSuM;ks1Qh5=kicWu0^P+2@|N_rB}4F)n|}kRjod zFW-FUe16YVs=;X2uRk{VBH?_#-pwML?fHE*Raw0~4@5J&W9E0!Nd%Y~P>Ay0^y58B zDn|WNYhR=kF*YuW4SmFAbEC!h!Ep)YD#WK(`OGyW>h*E#V+pa&y$C;a&g=aC;B?_(%wCi52A zR9ZoNBW{$xoiY^CyN*4Z&(6Z>>O(WAUItJoeDy+LU?tmg{fSn9RI@{pTyYO(4nc)r zLz>cZ3SqHQfTbf-FxUk-#h zOn>!V3NswtGrvO1o7Y~Iti`KX zI_EMMjBkhI8>HgvEM}`E6Rj4%@*tHqTFo$%^)^jPmiM;rZjXUeXZj9UAXbI#!`-kBH=Qb@nQ>#xqY^3W>5T!vw+c1J(hKJJn4LN$tI z9(2G>I94C2dpkR~Y>twsk4WxR5Q?s0i>!fvMEqtl{uZA6OL#XJo||{{_x4Om`AF>e z7}tXL2Ts$`O8=%yU81cTDK=bJa}lQLm?3g}hz>MHUI(g{SjzP{_sPCwlIvkD*|B&e zQ!Y+622S!LM;@`rGzj2d8jtl`4qP>V;W1W>trk*U3uhZIU)egT(-u}9KpM13)U72L zB)Qc__N~B#D9%pF&2Lu1So2G~2F^9SM%N9CgbPa#t-t3F%_^y)=Rrk(zW2X*D0$Xs ztc+=-Pn+0$okTY2_@+~x-oA* zD8BeLpPo7sQ1dI1zHmy^QKlV@T3@wF4H)z2yl!_%dn}7V5kRgP`NY~{`jvfaUGH8N z@4KFisRuFf_I9+Gko=f083*0>CyNKJJWGaA-uX-11Wo*}JL2E>s=m=ai zo&r(BH8dvf<_9o~lR7JO+$kfkdbMGjS)73|`#TlY=SOrM(~PLcwL3gOV-w3so^&(g zOEOCvR%5cecL7CmgKXp9*S|W5mOlP*K*a>BEQx8l)uP0^8huEFDSPd-#uf&>v|-2V zBXwa`NuUR?B_*Jv99i6!HZ^^peOd>MyEQbc!Y6pZ6Lg7}T>y`8w`bOW=Cg`!K73S7 z@SQ!Ie3D!Oom#U6EhuKppZX!6!275qlI9Y(y3CtaqF=wHrxcUklf@0h zW|O|i!4Vm|Ufxr-k`!movJA2s^+t^1$P-?0vdC|JQ|YkfX{O8h%U=Hku+`Bl@l}{{ zh|dx7;4rjH-zdpB7VEq{6#Rwq`5LAygq~+>%m;C}6x9_YC_R@bQm|M z3{p!H&-xPfxbPw}sG#*F$B;bQAJAp3#ozO;avPqbHH``uvlu5TbN)ee`kHoLr0i@X ztmL!~kWSW};N3ySmHNH)3eG_C8%DQ~1n~_$_r3DHtDpEUL3$>GJWaT#xl*_8;_2f> z#Fc-L=nR-gCo9YO*RqM-uNe3VNwcy)kFfrDiF*q^q5QEr;U#a_P9Tl>pik}FeubYP zwLgn7?ikhff2J?4OJ7UNRcK`3WgiQiHBM(CCnr&pGrhe?hsD*LL%e%^tPMx`5PmN) zil~}M8xS(@gp_U_Vaprv4<5i1qnc)BYzl+tvc@oAI~}P^3agUmvXu1N3Pk_3tqvu} z1;b5KTGIeb_f;Pz7uGr;clR}6{bin-S;TZ#C zi*BReuj&e+2-^)B^MTbona@8`8-PIoXrS{e;ukp#^KT?qZ z{1?6|T%FVsLWBL9PWhDVGU+3z)8@}AvHYEIXuL*;vN-YT;X^XR$iy*ZIRgUzHx`17K;j5B-5D#d+9oKs)Ry8T)-4n_n@w_+FMUl zmT^j?^KZ>hys91|usmblSPc3Uu>X@W1l;D%|0(Ec{q<{)ZeM!38SN%dkjpoq)vz8-?OYYNQvMmK!#7&n&~@+F zQuS?%<*NNWe5NkhzHm$XXmpvS#x^Bt_UDFJ@1z??a3$7Fr6G!xt@6gPuKKL=-BRGE z!)0l4B{#hj=zg5tVuERCee)Y%y}qV*Ce7`+AMN>^6S14k z_+?;F4GxJdYC6aM(9V+Q7ROhv^Vw^x#=rJFDLx`k(^{Z?=oB&4h+*YCl7C$Y>Z5-> zIxL;D`-;<-lZwp_n%tlB-oIn@H0kde4SQ%}|8r#87g-s`d$MR}q}eIxa_d9CxRVkK z>KjYa>b_1(SZ5qF#K8ssF`S6N&J_!om;2d;%I_O<2O&>OlO1T_;gK;}q_wRR>L`jo z-#!LsJb}$AZk2^3PSU>KNAa`90_^|xL}5^Hgbs9c?V0@v^VdexFt19|YsyFeG(whL z0*S1?;E*sNz4;gJv+GGNj1oS6`(LongfpFm8-ejADu%84HC>u7rvi6H?x@OC*rflq zV1EB`^uj5p7Vnjy@cU`ZhZbdaXEwzYsXr2IPruZi{RH~JRu0U9`N;z3c8y-8hfQow zELplI>UW&kl2fADc#)s2j-tI@;m$U9*IEOfV7LBEAM`Wr=gW_lwi)}o>msMMCu(C? zMw=$#lEZ)}r~jFECk2Xve72$e{=B@46{VD=Z)G+(Gw1>_pcH!^)Q+sN_o%TOvmX@_ z6q|F%BfgPtrBYi)$sr-Rr&S<&)~aqEKZv)-M)@z%rUd*K1QZuP9X~kZ%29}lun(U!>Vnmr9FBoQIGxnJS7xQ0zQnytD**#+ z(J{tXMH1>h9NA!6#cj$pBD5?zVFgt-ssU-Bnj6L1mg$8{g2N!feotq;4$xs)7ndh6 z=*_PH3%V{|cW|8cTQ}pooRt}KD%jgr3`i&b1p_5fOTC!vD7gQe1Pu!iq5cgZXx!YA zlWGl>n%;iF*suyOs~2rAV6;>EppaLr^h!Q2!dX?eS;o%9DYvDhu3E}GPNn?)iOikg zR~C_(UvFZ@N(U(DWI^Y74mZ-=0BP0O&1>TDEgrUEKLu~W;p>KGXTFifqQ*^6fTt&TiT%(a`p%Gkc0FZ25LL5y1||2lu- z0H<(HnQ_1R`A+|ho`ywXQvdtx7=L)>g{iAwGIpF}0-3Xleg>1)v%HT zg8JXWhVCP7s3z}{H6e#puJ*(RJr1Y{XDD8_{K@%iQMAqLs;@68B7KS+*`eldrpsCs zHmw#%McY8Cls#HRb4nXJzLn`A;&-JC_6D(tDD>_glD;Qh_e|3zZK2A3I~+?5)=OB4 z0$}iv`GWH6(X9_PK9nU69!hUHOXE?YAP_;=?4OqYf;W3u-1D1d>wTGxg#a49u!~$W zb6>miQK|`5x-oJbfL;{Q{pR!D7F?&ztoA$;iplwGbh9LQi>${3r-D)*;%-_no%3!! zy|gVoweg5C>)Va_0iUethWuVqpCv&p%1Hb+Xy!&02yG|Ny~?F&o7R0~6>(^cp{Ahd_;<6u?mGQL_;G{- z#rrP^DY7ktSA{lg&?2Q&tZyf?Q55zra&4_avb&aV%HqUN z!>z^o$?Y$mV~!(*48pKvRUMvl2^!~W){wk0C9iX)uA0PTC%fU?*yP>dtI%Q;!uh&| zegQ~LR;&*HP;C;+JM9i}5;i^e4$C8I;q6>W4Gqfk5IyuRDaqBnhqzG1%f9^TJMUqc z4XoknZvB_tt?=I4H+V=*WW8&ep_1k(Udbk9p`k?fqZ}e|5#it>`M3fwar0FEB>MRt zBbT6Gm+>*p(hg|2br9>YUPm@wXVHGB^GNL)h%AQy3`o2S_W*&vh{L`QlS+YdzRiBZ z3Au&2iU=o!80#kcEW~DdOUA>#6f#`qH^^jC<;>#bH9T>z^A@9m{JZf6tr<3U)^9(G zl{k5)3$}z`-DQ-*tw2JftyIY2QnF6wSD}kv)(YI$V$*g1Em0b}E=m`T8g_`PYC^n_ zOx`u}7O!z1?GKjA(r&QJd%|nw0y;;cznQ3Z=unfkfWyIc%OOKnrVJ}_J4>A){_xf=qIDr2Q2RC(qk*+;hR$$gpWn? zQ2u1cIkVN>IWY>d_+ZRM7;^02jb71UR=wNbfpf$nHy%(oY>N&(zL)^EE!4wV? z7Zqhm0g=8UiIMaowVnfO2U0f~-6-m_WBAvE>0!-3kud!+1=dMDlx$g#n4O)+KjV(A zt7m3sG62P3@xT*Nqvtl#XGdiBl*z?rl$A-Xv8(GKIt&}$@Phfp%|Ur9UlL2LYF0+-vK`8z}@d3MS9Ll%1 zvnIve>f@X>Mvtf0)Hq%8nhXz%es^=MNRNxIz@ny*XuMg6nAGZUfEkT(r`U>&dn404MyD3A6cig1I-8d$M8jHZ^Mxvy&lbQ zMA41{?FT1{_!xWFyX}>)@9HP6HUPU#M;AIYc;-vuNa8!GNAs&3_5+)1uaPwSNILGB z)o{+l!$~FJ378PN1){F?Vur6BGeID{!^$Rm3NznqwQ5a2knN;Yp;ezI;dLok+LG|Y z&6c@Fk`+GxNqU;9={IC{RAe1Tx0z^XR3lI>h^>W`7CGGDs7CYfx* zQKNS57d9uW`J?wLJ1>?Wb|bND$W8D`OE+!U;KIGY!%$%|XzICC=Pj!A5`*1{O&npK zB$L2!>aFnF)x{to|1=s?F2i&fz8wGSvs3h4eMYewPuAUCxq7sk zlw9Ecc#9pY0_JdfzdZy-i@^P_b&n|Xbt=aUYdw0H(r8~)%T`|viPx#{6F^TWJUOhG zh*&*`ufH>vrbQS9Nca5*@5qNej}!g0+M{^9EJYkfV3gIB_m=NcF! z^jBB*n@{%yo5s)7ZT#$PfhW$yy&F8-BGorM zXQd#0-mr% zy^<&HY}9PV7FM|#8=o}j@7N`-C-Rpxpt|Smnkx)4-#Lv%FMP+As6e&uKZzg3kK)}D zZQK0g<4S~o@9~i-#kn#5 zsR^B+9Tw7bqEW2?Wa%061tVXHAahF8&=}e}@{;EsI7F*GRSBVYkmIW~2;ZzSNAfrP z`*@Tm*Z7ruQ%BGNVf0wi+ZO+cC!P}n-mxQ>?{-3O^{vm}Liz{lH@r7x-7D$#T~(Ue zpSXu2eq5m=yB*Y|ofj>wm1?XWTZGJO196rNd>Jv&?Uf}mL|`K-fBtunR>+~c9sioC zROHvH{ciYF`Hj%2GyC+q3G~U-z!tW{W5IL5+03^Eo#BY4~x1{pA@|Nx1 z2!827cIoC!=-A#G)eUqNuWRcQUVy?d!^1S|W5V5GkC#h&H!}~H2CJuhMP&EIbT*;J zeWEuAnGwb~o^JODpBnYv#aXFsY6FQ+exbI*$^3jt@}S%$O*$}iDopo11K*MG<_&Hv z_S%edAnD5`a)G`!Igv%8B3B19sX)CZbs1Cwt!+*{I3LPjS2?pAabaKf$V*Gd#Z&!{ zp5LNL($NU>Sf&SSh^Z1f z8k|C~_)5FTky36_l>wkxcgolQ&~tt@6M5pyrzjx_G=|Q-8OrFgiqliyc;%`BDwRkK zk8LL(`;wjD2a`Kdgi}QRff5mJ`+NV%Q0K=*0#uGUThW2JV)<<>@7LRax6j)e{X}tU zoSR_;--0Crdz}`7%CQywA~`wBRGx77GxuL#qhitLcZNzuNl%9yN<`zFQxeP2Ib`JX zq*}?&Yz59+IRc(8XYoaUF>>0c{>8}2&SaNs0aUwZ&1L-sbD)l9EPWgP zL9RNdSihXdk_M(*%k7IK*s>YMawefoe%FmKtv3Jm+A;jhRR6mSqyHx^-k+mJ zU5=3_c>bX*qOK4Q^hiCaa)-5Ws_hp7U3*5;G$SvS)u-p+P&Ev?0x4_4>{(TB@1 zKD#XvpF(l{ljDm;mc+rmfb?cDAIA0+w5o}9L$ZRG<} zd}?ZEp+9P6oXg`6jpy1HRp8RVS}N*HpWNI@5JRFJr{brY-;-~T=IDn%CzUPNA7aoO zD_*YhiQLP4|99fAm;O}z71m&huXMxf&V&JT`~%q@uDa% zhipI$!9#Ylfs3ZSUG~S`{`|f%Xmq&m1Uw@@yKr(U%leb&v!y$mN=EU9A>ULxkCdxU zm{~R+sebF}BUZxgXxidRh;MNl5qC_rfltRsP@|2yK8ufYP2RzjFY}ZqrC@T$VWj3^ zS;itlfrJ?A0pMEgrH+J|qsAYS2_78LO)=lXHuk=z{A$H-O-?2PY0f76$<8f)!AOKuh?nh>bzIC6EaVhX zHZ50-&5 zgN(qd^_}T0R_>oYqHQcouRF-42k-Sj1h+gJMYDMLaqxQN-G40-HO4(xV-zdgu`3|> zo5K}D9^+fb56$4Y@XOr}_INtzEUWv#PM$)$8z!|Z?p~mLfRok2(N#A*cNjUt1UbDu>k84@?Z$Uriq)tE z;;_R(B?-Kv@0MU=AiY%?kMV@xrpgQ?bk$~P+GwE4lih3W53`F&m-i$22PWKjCPrje zjzcP9{M}z*XuHfV>EHR!xn~3h<37UDLbPv5>k9iUWZ5ZJsKq<;quGfb=-|nRfe8CM zpLT~ZIkBZo1Dk0LWm)6aO<9@gNlCxI&E2H_>@IX*A*OI~Ci`__TGEHnn|mE5BaNUu z98vlCxQXCHJroMh*WvLGBLr+@im7BoE+4c@g)eJtorzC!t<*(sv8F9CFkFz=xOKzu z)PX+bS1plR7pefA;KH`Ny*diX+%7q)?sNPrSP1HB0EWIJF?UMr0Gaa}D*Ay{8d~9K z2%)%VhFt8$QQ6&emhW%UiE8~%=|oxTj!QjhbeP4C_;$hI5b)!3aZiv@v6Z2RXpjzu z>pge>keVNLwdmyKU`em@Op6I{iv^Cf4@m@%XmZfz`LqDSaS6w}iDS-h$D7TXVipDl zRoaBNX+a!$}nO^|MsE;xZ95NBPclO|cvus<}m!f3cY_x4^ zdmwI+%sN2K{L^snU6YLBxNV-)!Fh6hJM?J535Y(d+5J;6i@_H-akssYt;+Rpl!@ZQ zRY}m~7P%=1pNQA{uzVG*sqegu&r;D6eJ}6%;$K@)R$6!g{QmG!%9&J#)3QqgRY`lZ zr!02na|s?lK~s|+?4tv^pz;o|nr)tKqOSmHE+wePHV`DF;qJ3h_5ztJ$tx)pgFX@Z z{EdazXkQnRGcWAW@*L3wO~#^-0C?r@?mWVEHodcPh6WDVf3$q)H~9kzhpYmFgyj1` zs@J72dc`GV&(G|~-klP2ZV=h+jbP{T-K{mjQHL%#?`F%U&~^7Lg6KsMq^%7nd}hv2<0ps#^TL z%ywFhWVs*x{)swCP~*@aek}2)%%E0r<@@W+e8GY9opttWM=WH#ZrXxQ$dmA)*f6HR zxrPw@f$62RT!|DxD#u{0xBJqPGFy}{b2AJJfQCo@%kL~8*L_Gqrcx+mqSMG${=H3~ zY+g`+w~fW?+K(3{aNh#Xs*0B-y7VVEpHcm>IM^2=rP>v{Ix;wjTj|-$%a|UyWV)bd z6lZe@#X0^pJ#`$M?WzK|Wy67wjZ_Ca?*vu`f0FCtPuv z!&#d`IJ0_(mU{b}-spt^UJZiwpVqZ%SoUzMUNF?WlW{@fR42#@%5h2Z}qH2{~+sUigWi7M@$i%_yQbKyfMhr-Q5; zoBt)qDuw=E2(q?u{l5#cwx}^B*7hkjm8DBxZiiJDO_uqPh#w2dqs{Mz(TVV>su1?q zBiDtlUFk*g5WhekYs{ZKyz+M`MKPcMS}7{|ZnOo&nY_t(?GCg&wFQTV)xd4Jo9iGDY z`Fn6lm(GP3J?8kV{#Cg!0XJARQYDX_usIiRqXNOx^#YPY@fsOMz7AP3o zKhfxS#vaXa;okW)_)?yXjy4StGd_I(hrFUOtN)-^RQFn5BHQ~Dvdjo~w*t18&NJHa zDk3kC5BI@P$uith7B`~ye2;vhOtb43`95IgG4C6VA-I6Iz{;HuC(vFyQlv47FK$;W zqY%@(nY2jM$%d>P!}7@-hNnp}Gp=B!V$G9#7PyE(Y^`_2de)?&KI2i<;$UuNZ26GbTaF=GY z<`L+2&=&m&I>1jzF~`7wo{zF_5wZwDukO3%gY*lAZzZk%Lq`+({HaGLbx6Zf5x#D7 zNyT1Y%d1Ofx9QofRk1xYR%XVGI@q0(Rvz+4fGD_S?s$p1Gbl+NJ2@(h0B_&us@=a%E~ChEWy z!+yt?pb(fs%WNTMVnaKOQ;|0qeHFO(ldgB;#tk_BL=9lu0&8{PML8 zS2$$W3f#>gp>WrN`^o0^H_Vn%$*SQ+GVqLg`COuFZXGcnjeC$zTrNG6o`zev0nC)$ z(Y6j6C7Jzlr7CArqi4Xao+yHAAXLeTRm&Ae{?d_f&uxsrx{fmQICHS1V|p6A5xvW!p)Im5M7u-gV5Cvm7opc%Bz?Lp#8mQT0W$ znoQ_oVV1UCTxDyySACGQszYg2CRkj=AFOKV8vstsaZoZY2v=Wq?De?<1K zz`RE1aY^KMi6T44f7@{I}DAx4h;67c?{dd3qh)J!dER)jNFup zO9LgbzvT7NyI%Esuy$XqG+|378_fQe$Wdd3o&4s|Gi;+gY|>XA=@%j!7iPWLYSVVO zg=e%4A}Q=>nPOeX#fhKR(YD;y3gr?kaQEF1{cII#aKKFz-P!anQ@zje9?T_w-5Jd0 zUj}B`<-d}Q{#zn-oee&bP292B^?0sm%$nM;{T(UMdP#=#x{g|@k0D$Gas8mgGETAc z3Pd}d>E#kk_gu>;69E)q-4$xt69e?0BO{`Q?&X zC)HptLv`-!xnBdyCrdW6b_dt@*5lpWl(V6C$#K06y;0cGTn^nz_1(_sj5=`fret2>GgrtqnCa=VgP73 zr?kv{xAd63u{hs(Cqh{WIX!W@`r=|_zw&xEePyrYM0=c9wmtdgu+LVLPp8mr4z*sVS$dW zQ*~R|vxhQ%dd8qvK8jq`ZF`p96v&XyHlX~r7qQ?TIZO@i8+8?bJkgPpqF%E@SFu=Z z?qfa4UiiX$EHiU|pgUDVyinG2z+?i@Z$K?Mp_z&kLjiI}DjphRd5cE;yr?|uX0$Jeno967x{ zhMhi?Cxbdy)rzfG!NEA$zn~;Gwd9+F+|*kOIW)al57XBWj%!p9faaeVQ7cjF+F(Zc z_`nV-_}oV(uM-oNt2(qlC@fR3XP!YCj4RT+LG}JWLZ~ldJs5{oK)G(j@BE}FqC-;- zhH4-(ob%+VG^?kwZ>_mt#YTJp3G0r7>N?C#X>sjqLd)7Ab#_vl-@f7dXY}jDG2je}GH?$cyRJ}a;(Etm{DSCGmbYe-})47|2 zc6lwVRR)*SR4mdDNbsw9#0d3$7bJ*D2f&X4OGk3U=p{w&W~EyiO3+8b!Agb}-R2YS7$fK#Fjj)7 z=LdFfuRq|&^4knhoY871qZC?6S4)fju}mi6azWHpzttQUQmk$gdf86WX1ougwuD-W zpi+84yWcq?;8@Vk0G<3ga-}j}=l2KmF#=G#Rm{*ut#^+|@(I4o;Cxom(z`r`8yPAN z9w;wYXn>b`@-w_x@-(C#qiGrWgc|81J|N!^j7AM^m)f9j@g?9sjrf=7+(|!KjQoDy z9S!~k=MNbKw5H%5xTl66DzdUJzYxl-WjsWic>YzLrGx1@xeCQ)&F+|fYMvJr+@c_K z*}j}W)Xw6C(=fA9ysRaRD?cG-$bmx9+>uKNKPXD-Vo|bZNIf+=L*lx|@N-G;)Ubk^ ze3H%<68;wmvZwb51N`CahiZ>P?eui%*_f79F^S5YHw0wpL%_>@vtd^pu{Dbk8Cfu( z7q8{>pzrbR8r7yJ4g_raLlb{~r-n}|>>S}D9gGI>i<3Z ziEo^5jVSy65Ny%!c~Up8#+VdjpHq-$i+-V`)27QRrgwQ*XhR-%%=L zt%f&Jb3CKNtT;Dw7(^1ChJVe{?7Ab7b=yo*U0_h^)bQZB{wEJIP`xkMsx5ycF!>nX zG01veXMRKQ_3!gN^793`@71a!fSJBMDQM<=;CiX-3eOX!`c&Bx!6UyPrh3rqT|!8l z=!3;G-W$G(#c)l<^RCLQHHX=6nHck9B!6HZy%ydW8RbVWr*YvepFEE!?n3#~hbJvY zi5n+)^DbcDoX3vll1JBcevST(98S62X8yIN_l|W+SCj%yPWv^9 zqI(kv&R=VVrKce4kp^bQV?A-iZA#qhh&x0IJ4K~@I_(c!+l(^Bz3DYE)ol1`I(%sP zGfN?h;;*j`ViTcHus^v(_>hj7>rETSc#AF^CeljPrV`!CPPkGUCtKfEZ4wM4toC`5 z!?=fV7blX5@Ozy~%DFOj7WFlCFC<)&REvUES#B>j3wx(Zl|3W==42(QW#Lf1_v*pw zPCypv@rS~|%i0|5D)CL}7m{#FZ4fcA!UtK{f@qvPSf|CQS>W%ZnoG|Dd>6EQeO2=& z%82pJ$gHG#3hp4}2=%90{KlPR-S(QVzFOUTHntr zxia#bs6N#AI0lx(0IE%E(g)G=LhTLHh4S{Wnpz90+^dB0WLPZ{9z^C{pru|MMrCel z`^L!IWTt$@xKHyw8Re7>Qv$mfqYQZt|^y4I8{7D=sr&eGgEz{&_TM65v%MBNNb^oT|fV>Ok(Ml$k7D7 z^gQ2ars{^I3dC7>rXN=5UA<@*f%^#(*exLq9Z67f1z0cwgBssR>6T*c*1P_aDaZO< zbK8n)X z2tZDVT)%_IoPJf=Rfy0lxTwumD5iXkxG7Go+$dIKBo|Upja^X@Dy0nKP~>{?216nu z@ivH@m=T*lC3o$KHlD=EyEv-y^%qQDxqm$dSqrwpB)%vWv?~nk3IL&|I$C+B*%;8y zbTTv_+%sbxUEEtP(>5*MEkBK+%(>`-B$?!|&>ayH;r4 z4W*^`J9TBD2G*|+mIfkM?xwFj9ol#>qS|epJip`{6rhYSiY?V0+!%YT#>9V^p#0!j z7ji4=SDqp8c%j?|Rv8yUc5<183ZAkMs@<9t%{8jjkSnV-j&g_uZ`u3eU>hZ6{gS(> zb#Swl-&e;dm;Te2Az+66f4R1lIRK;DpsSfyC)KGe{Q0wpxAJc3Lz{WqyM?K2I^Y4G z{|6^3tNtf)qT4CRO@E9DA;>Q)hL>N7N><>0n!6>Z>o^^jB#>Hz1)C$zj@w=j<-*>| zuZj$d0LxXft^P$^3V{pBM*Fn!rp`|R&Z>o%vws~VnbXKGJQ%n6>JlZ?Gx=L=t9L63 zTp7BDx$t3`CZ{{pY~EKPiFNAEr_U%`$ot;7m)gfM*?;Yn-zrMtT>SqbOw?6vcXfMo z?!BaPxgrM9OVl^KXj%fChz87~plLBvrFT0A0pe|ZaKy7+1 zoe!ov#J#QSiZyE69e2#f8p7`{SAKB`!_(TDv?(1R8?cj1nf|>;sqv`%lzdM2m4V%8 zg;vw8F+1wE0((BQ)`3$7vbd<2w;IYMSLjDI#d-@h_9pCVDPN~gacxIxct zwo?~Ab>fGMhg^3GGtKlpD)}yI?R@w)!)HFPQykg=ZW+oHs9i0<;wa2Dm)vyu`ZC!U zl4*pg!bT}5BM0K*`(EptiVlYnZad4vKE9K=(qhu6em8*$*@x-T3U3;JKKG?8QF#tz z50(x}yqo4e_gj?2+I^UKb^6|KEz|NB`79aUR>gr|;o+xm-<~27L+Zs-b{on#eldbs zR<{-euj`T&zk5fO>8i^gv|93QOW;%V&vI_vHGCbGb}=Wg@XaF(wHiSEq0!>2@qdTR zG_~mL{ueL$_{Vr-GqgpaX(zt9<^>yS94x~;BKHnFz-84K&tv=JgN7a@n*o(r&UEqD zID~td+q*|X%4^|3AY<`k-yIU&L{p1ERMyMoaYkb*$V4R^xuDSkgd~WrJ3mw3UUNXV*Z0k;IS-q*?fR2kNR9 zT3OjAy=?Nn?N(EY8~?-z^zyxCr#JbNQWMA^uWaR?)z&NZ!qUBeKmR%ZAqIa*JW9lI zCfI!&dvs*d!hYk5&3LhHZ;i_xZ%?RErqo4|Rt*x21lBs0%coDalTmf_lnq*=*zG-E z7eVWF>;qOggTD;`mGskoHdvd5a52738LOtDDm5eOP@z-=32DH8C|w$2zMTVf9_5RA zyBND*!dg1{Q)fuUQEM|Jl75!8qu%|4H7wAUs|XCqr~WKRmd*cf+s~dVMZi1`PF4P~ zEgFTk&uO<-9zgN|h1E|Z^UJnfnd5UTF1d=ywsB~mhx+Qu!DQRb93~k*8|WnK>Y)|*eAfMc$P@B z>Un0c*AsW{VxR?4;C9qWZf=VQ53+r9#PN9A9+1kF{B#?r4|Q=3thmoX1_+bY$FDB~ zZbjK=9MZt-b+t7jK($~9)`zf%ct386zkr^unygn-Djr9%J$!w_eS1WN1oZP0A3t>E248+zb;1e# z5F=&yvk_sG_z`#_{{7YK1*f3{gOpoX`&!9_#HF*VyuqZgLuKloPM2+NlZtyAo*Qcu zBZbx8RJB|jnO?i5=N+Bcrpb;F#jQHdZM#383k1ebuqyjlI=`Z?DJGy&LJ@q{x-Z(2 zQD}{M%Su{d$U6J)T27PZ&oCT~=Icc&lMl|AH}fTXDh~L%)uYjeaA)<{kB-djwf(Mj z0jIQe(Z);-b6|&Js13!Q!A-q<8O)XF zu;Zy^bVDZ9not!B_JsHwcD;8caKYfWYu+QS9UaNe65o1-mYgX2ut+nMY?I{@%d;&= zaq$GZdEeK%PM*Fj*Z7yM>*f(jJ{2qmFJdc^7%W8*EQ06D*%lc71P6rGt-?Qx@YMSM zgeUkNIQaN`_qYFl!tBK&xjIItovtpy^;8kec*13heX&d(601|kd A4FCWD literal 0 HcmV?d00001 diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png b/packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2c6d9f1d5022d1a93366f1cad641740a2ff0bc GIT binary patch literal 8355 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 Date: Fri, 3 Nov 2023 12:22:22 -0400 Subject: [PATCH 65/65] Arp Datastream Only --- packages/tychon/_dev/build/docs/README.md | 79 +- .../tychon/build/packages/tychon-0.0.58.zip | Bin 2358090 -> 0 bytes .../build/packages/tychon/0.0.58/LICENSE.txt | 93 -- .../packages/tychon/0.0.58/changelog.yml | 5 - .../tychon_arp/agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 67 - .../data_stream/tychon_arp/fields/ecs.yml | 197 --- .../elasticsearch/ingest_pipeline/default.yml | 88 -- .../data_stream/tychon_cpu/fields/ecs.yml | 176 --- .../data_stream/tychon_cpu/fields/fields.yml | 33 - .../data_stream/tychon_cpu/manifest.yml | 33 - .../tychon_cve/agent/stream/stream.yml.hbs | 23 - .../elasticsearch/ingest_pipeline/default.yml | 108 -- .../data_stream/tychon_cve/fields/agent.yml | 110 -- .../tychon_cve/fields/base-fields.yml | 12 - .../data_stream/tychon_cve/fields/ecs.yml | 228 ---- .../data_stream/tychon_cve/fields/fields.yml | 27 - .../data_stream/tychon_cve/manifest.yml | 33 - .../data_stream/tychon_cve/sample_event.json | 8 - .../tychon_epp/agent/stream/stream.yml.hbs | 23 - .../elasticsearch/ingest_pipeline/default.yml | 67 - .../data_stream/tychon_epp/fields/agent.yml | 110 -- .../tychon_epp/fields/base-fields.yml | 12 - .../data_stream/tychon_epp/fields/ecs.yml | 197 --- .../data_stream/tychon_epp/fields/fields.yml | 201 --- .../data_stream/tychon_epp/manifest.yml | 33 - .../data_stream/tychon_epp/sample_event.json | 13 - .../agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 78 -- .../tychon_exposedservice/fields/agent.yml | 110 -- .../fields/base-fields.yml | 12 - .../tychon_exposedservice/fields/ecs.yml | 239 ---- .../tychon_exposedservice/fields/fields.yml | 18 - .../tychon_exposedservice/manifest.yml | 33 - .../agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 71 - .../tychon_harddrive/fields/agent.yml | 110 -- .../tychon_harddrive/fields/base-fields.yml | 12 - .../tychon_harddrive/fields/ecs.yml | 176 --- .../tychon_harddrive/fields/fields.yml | 84 -- .../data_stream/tychon_harddrive/manifest.yml | 34 - .../agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 70 - .../tychon_hardware/fields/agent.yml | 110 -- .../tychon_hardware/fields/base-fields.yml | 12 - .../tychon_hardware/fields/ecs.yml | 185 --- .../tychon_hardware/fields/fields.yml | 21 - .../data_stream/tychon_hardware/manifest.yml | 34 - .../tychon_host/agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 92 -- .../data_stream/tychon_host/fields/agent.yml | 110 -- .../tychon_host/fields/base-fields.yml | 12 - .../data_stream/tychon_host/fields/ecs.yml | 90 -- .../data_stream/tychon_host/fields/fields.yml | 243 ---- .../data_stream/tychon_host/manifest.yml | 33 - .../agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 115 -- .../tychon_networkadapter/fields/agent.yml | 110 -- .../fields/base-fields.yml | 12 - .../tychon_networkadapter/fields/ecs.yml | 98 -- .../tychon_networkadapter/fields/fields.yml | 135 -- .../tychon_networkadapter/manifest.yml | 33 - .../tychon_networkadapter/sample_event.json | 63 - .../tychon_patch/agent/stream/stream.yml.hbs | 23 - .../elasticsearch/ingest_pipeline/default.yml | 108 -- .../data_stream/tychon_patch/fields/agent.yml | 110 -- .../tychon_patch/fields/base-fields.yml | 12 - .../data_stream/tychon_patch/fields/ecs.yml | 228 ---- .../tychon_patch/fields/fields.yml | 27 - .../data_stream/tychon_patch/manifest.yml | 32 - .../agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 112 -- .../tychon_softwareinventory/fields/agent.yml | 110 -- .../fields/base-fields.yml | 12 - .../tychon_softwareinventory/fields/ecs.yml | 202 --- .../fields/fields.yml | 27 - .../tychon_softwareinventory/manifest.yml | 33 - .../tychon_stig/agent/stream/stream.yml.hbs | 22 - .../elasticsearch/ingest_pipeline/default.yml | 78 -- .../data_stream/tychon_stig/fields/agent.yml | 110 -- .../tychon_stig/fields/base-fields.yml | 12 - .../data_stream/tychon_stig/fields/ecs.yml | 203 --- .../data_stream/tychon_stig/fields/fields.yml | 84 -- .../data_stream/tychon_stig/manifest.yml | 33 - .../data_stream/tychon_stig/sample_event.json | 13 - .../tychon_volume/agent/stream/stream.yml.hbs | 20 - .../elasticsearch/ingest_pipeline/default.yml | 99 -- .../tychon_volume/fields/agent.yml | 110 -- .../tychon_volume/fields/base-fields.yml | 12 - .../data_stream/tychon_volume/fields/ecs.yml | 176 --- .../tychon_volume/fields/fields.yml | 57 - .../data_stream/tychon_volume/manifest.yml | 33 - .../packages/tychon/0.0.58/docs/README.md | 1166 ----------------- .../transform/arp/fields/agent.yml | 110 -- .../transform/arp/fields/base-fields.yml | 6 - .../transform/arp/fields/ecs.yml | 192 --- .../transform/arp/fields/fields.yml | 8 - .../transform/cpu/fields/agent.yml | 110 -- .../transform/cpu/fields/base-fields.yml | 6 - .../transform/cpu/fields/ecs.yml | 171 --- .../transform/cpu/fields/fields.yml | 18 - .../elasticsearch/transform/cpu/manifest.yml | 12 - .../elasticsearch/transform/cpu/transform.yml | 19 - .../transform/cve_linux/fields/agent.yml | 192 --- .../cve_linux/fields/base-fields.yml | 21 - .../transform/cve_linux/fields/ecs.yml | 150 --- .../transform/cve_linux/fields/fields.yml | 70 - .../transform/cve_linux/manifest.yml | 12 - .../transform/cve_linux/transform.yml | 26 - .../cve_windows_2019/fields/agent.yml | 192 --- .../cve_windows_2019/fields/base-fields.yml | 21 - .../transform/cve_windows_2019/fields/ecs.yml | 150 --- .../cve_windows_2019/fields/fields.yml | 69 - .../transform/cve_windows_2019/manifest.yml | 12 - .../transform/cve_windows_2019/transform.yml | 26 - .../cve_windows_2020/fields/agent.yml | 192 --- .../cve_windows_2020/fields/base-fields.yml | 21 - .../transform/cve_windows_2020/fields/ecs.yml | 150 --- .../cve_windows_2020/fields/fields.yml | 69 - .../transform/cve_windows_2020/manifest.yml | 12 - .../transform/cve_windows_2020/transform.yml | 26 - .../cve_windows_2021/fields/agent.yml | 192 --- .../cve_windows_2021/fields/base-fields.yml | 21 - .../transform/cve_windows_2021/fields/ecs.yml | 150 --- .../cve_windows_2021/fields/fields.yml | 69 - .../transform/cve_windows_2021/manifest.yml | 12 - .../transform/cve_windows_2021/transform.yml | 26 - .../cve_windows_2022/fields/agent.yml | 192 --- .../cve_windows_2022/fields/base-fields.yml | 21 - .../transform/cve_windows_2022/fields/ecs.yml | 150 --- .../cve_windows_2022/fields/fields.yml | 69 - .../transform/cve_windows_2022/manifest.yml | 12 - .../transform/cve_windows_2022/transform.yml | 26 - .../cve_windows_2023/fields/agent.yml | 192 --- .../cve_windows_2023/fields/base-fields.yml | 21 - .../transform/cve_windows_2023/fields/ecs.yml | 150 --- .../cve_windows_2023/fields/fields.yml | 69 - .../transform/cve_windows_2023/manifest.yml | 12 - .../transform/cve_windows_2023/transform.yml | 26 - .../cve_windows_20xx/fields/agent.yml | 192 --- .../cve_windows_20xx/fields/base-fields.yml | 21 - .../transform/cve_windows_20xx/fields/ecs.yml | 150 --- .../cve_windows_20xx/fields/fields.yml | 69 - .../transform/cve_windows_20xx/manifest.yml | 12 - .../transform/cve_windows_20xx/transform.yml | 27 - .../transform/epp/fields/agent.yml | 192 --- .../transform/epp/fields/base-fields.yml | 21 - .../transform/epp/fields/ecs.yml | 124 -- .../transform/epp/fields/fields.yml | 109 -- .../elasticsearch/transform/epp/manifest.yml | 12 - .../elasticsearch/transform/epp/transform.yml | 19 - .../exposed_service/fields/agent.yml | 110 -- .../exposed_service/fields/base-fields.yml | 6 - .../transform/exposed_service/fields/ecs.yml | 227 ---- .../exposed_service/fields/fields.yml | 6 - .../transform/exposed_service/manifest.yml | 12 - .../transform/exposed_service/transform.yml | 19 - .../transform/hard_drive/fields/agent.yml | 110 -- .../hard_drive/fields/base-fields.yml | 6 - .../transform/hard_drive/fields/ecs.yml | 171 --- .../transform/hard_drive/fields/fields.yml | 50 - .../transform/hard_drive/manifest.yml | 12 - .../transform/hard_drive/transform.yml | 19 - .../transform/hardware/fields/agent.yml | 110 -- .../transform/hardware/fields/base-fields.yml | 6 - .../transform/hardware/fields/ecs.yml | 177 --- .../transform/hardware/fields/fields.yml | 12 - .../transform/hardware/manifest.yml | 12 - .../transform/hardware/transform.yml | 19 - .../transform/host_info/fields/agent.yml | 110 -- .../host_info/fields/base-fields.yml | 6 - .../transform/host_info/fields/ecs.yml | 81 -- .../transform/host_info/fields/fields.yml | 72 - .../transform/host_info/manifest.yml | 12 - .../transform/host_info/transform.yml | 19 - .../network_adapter/fields/agent.yml | 110 -- .../network_adapter/fields/base-fields.yml | 6 - .../transform/network_adapter/fields/ecs.yml | 93 -- .../network_adapter/fields/fields.yml | 58 - .../transform/network_adapter/manifest.yml | 12 - .../transform/network_adapter/transform.yml | 26 - .../fields/agent.yml | 110 -- .../fields/base-fields.yml | 6 - .../fields/ecs.yml | 198 --- .../fields/fields.yml | 16 - .../software_inventory_installer/manifest.yml | 12 - .../transform.yml | 24 - .../software_inventory_rpm/fields/agent.yml | 110 -- .../fields/base-fields.yml | 6 - .../software_inventory_rpm/fields/ecs.yml | 198 --- .../software_inventory_rpm/fields/fields.yml | 16 - .../software_inventory_rpm/manifest.yml | 12 - .../software_inventory_rpm/transform.yml | 26 - .../software_inventory_store/fields/agent.yml | 110 -- .../fields/base-fields.yml | 6 - .../software_inventory_store/fields/ecs.yml | 198 --- .../fields/fields.yml | 16 - .../software_inventory_store/manifest.yml | 12 - .../software_inventory_store/transform.yml | 24 - .../transform/stig/fields/agent.yml | 192 --- .../transform/stig/fields/base-fields.yml | 21 - .../transform/stig/fields/ecs.yml | 127 -- .../transform/stig/fields/fields.yml | 126 -- .../elasticsearch/transform/stig/manifest.yml | 12 - .../transform/stig/transform.yml | 24 - .../transform/stig_linux/fields/agent.yml | 192 --- .../stig_linux/fields/base-fields.yml | 21 - .../transform/stig_linux/fields/ecs.yml | 127 -- .../transform/stig_linux/fields/fields.yml | 126 -- .../transform/stig_linux/manifest.yml | 12 - .../transform/stig_linux/transform.yml | 26 - .../transform/volume/fields/agent.yml | 110 -- .../transform/volume/fields/base-fields.yml | 6 - .../transform/volume/fields/ecs.yml | 171 --- .../transform/volume/fields/fields.yml | 34 - .../transform/volume/manifest.yml | 12 - .../transform/volume/transform.yml | 24 - .../tychon/0.0.58/img/TYCHONScreenShot_1.png | Bin 201501 -> 0 bytes .../tychon/0.0.58/img/TYCHONScreenShot_2.png | Bin 175239 -> 0 bytes .../packages/tychon/0.0.58/img/TychonLogo.svg | 59 - .../tychon/0.0.58/img/TychonScreenshot.png | Bin 337235 -> 0 bytes .../tychon/0.0.58/img/tychon-color.png | Bin 8355 -> 0 bytes ...7a3c0-3e08-11ee-9610-15dee918f31a-cve.json | 116 -- ...383c0-e508-11ed-8a95-ab70156d4b18-cve.json | 136 -- .../5be62502-2bab-4d66-97ff-d9373963c50d.json | 22 - .../78931842-dc88-45d7-a6ee-d79fb9f615bd.json | 24 - ...-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json | 203 --- .../10359860-1139-11ee-af86-538da1394f27.json | 54 - .../2e9c9ac0-1138-11ee-af86-538da1394f27.json | 54 - .../5be38411-3902-4686-8209-1ab75a6d3847.json | 60 - .../934a39a0-1138-11ee-af86-538da1394f27.json | 54 - .../beeea32f-31ba-4be8-9e2c-14de47280aac.json | 56 - ...-026431f0-3de5-11ee-9610-15dee918f31a.json | 17 - ...-11990b80-41b6-11ee-83e4-c92ed141b9e5.json | 17 - ...-27edf330-3dfd-11ee-9610-15dee918f31a.json | 17 - ...-39b55820-10f2-11ee-af86-538da1394f27.json | 17 - ...-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json | 17 - ...-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json | 17 - ...-7f851220-3d41-11ee-9610-15dee918f31a.json | 17 - ...-9c222660-1100-11ee-af86-538da1394f27.json | 17 - ...-a3922360-3de6-11ee-9610-15dee918f31a.json | 17 - ...-bae88930-1133-11ee-af86-538da1394f27.json | 17 - ...-c957d710-3d4c-11ee-9610-15dee918f31a.json | 17 - ...-e18d6100-3c85-11ee-9610-15dee918f31a.json | 17 - ...-f26ce820-3d47-11ee-9610-15dee918f31a.json | 17 - ...-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json | 33 - .../build/packages/tychon/0.0.58/manifest.yml | 43 - packages/tychon/changelog.yml | 6 +- .../_dev/deploy/docker/docker-compose.yml | 18 + .../deploy/docker/sample_logs/test-arp.json | 43 + .../deploy/docker/test-tychon_arp-config.yml | 7 + .../_dev/test/pipeline/test-arp.json | 52 + .../test/pipeline/test-arp.json-config.yml} | 0 .../test/pipeline/test-arp.json-expected.json | 85 ++ .../test/system/test-tychon_arp-config.yml | 6 + .../tychon_arp}/agent/stream/stream.yml.hbs | 10 +- .../elasticsearch/ingest_pipeline/default.yml | 106 ++ .../data_stream/tychon_arp/fields/agent.yml | 0 .../tychon_arp/fields/base-fields.yml | 0 .../{tychon_cve => tychon_arp}/fields/ecs.yml | 54 +- .../data_stream/tychon_arp/fields/fields.yml | 0 .../data_stream/tychon_arp/manifest.yml | 10 +- .../data_stream/tychon_arp/sample_event.json | 44 + .../_dev/test/pipeline/test-cve.json | 58 - .../test/pipeline/test-cve.json-expected.json | 104 -- .../tychon_cve/agent/stream/stream.yml.hbs | 23 - .../elasticsearch/ingest_pipeline/default.yml | 108 -- .../data_stream/tychon_cve/fields/agent.yml | 110 -- .../tychon_cve/fields/base-fields.yml | 12 - .../data_stream/tychon_cve/fields/fields.yml | 27 - .../data_stream/tychon_cve/manifest.yml | 33 - packages/tychon/docs/README.md | 1126 +--------------- .../transform/arp}/fields/agent.yml | 0 .../transform/arp}/fields/base-fields.yml | 0 .../transform/arp/fields/beats.yml | 54 + .../{cve_linux => arp}/fields/ecs.yml | 58 +- .../transform/arp/fields/fields.yml | 17 + .../elasticsearch/transform/arp/manifest.yml | 0 .../elasticsearch/transform/arp/transform.yml | 0 .../transform/cve_linux/fields/agent.yml | 192 --- .../cve_linux/fields/base-fields.yml | 21 - .../transform/cve_linux/fields/fields.yml | 70 - .../transform/cve_linux/manifest.yml | 12 - .../transform/cve_linux/transform.yml | 26 - .../cve_windows_2019/fields/agent.yml | 192 --- .../cve_windows_2019/fields/base-fields.yml | 21 - .../transform/cve_windows_2019/fields/ecs.yml | 64 - .../cve_windows_2019/fields/fields.yml | 69 - .../transform/cve_windows_2019/manifest.yml | 12 - .../transform/cve_windows_2019/transform.yml | 26 - .../cve_windows_2020/fields/agent.yml | 192 --- .../cve_windows_2020/fields/base-fields.yml | 21 - .../transform/cve_windows_2020/fields/ecs.yml | 64 - .../cve_windows_2020/fields/fields.yml | 69 - .../transform/cve_windows_2020/manifest.yml | 12 - .../transform/cve_windows_2020/transform.yml | 26 - .../cve_windows_2021/fields/agent.yml | 192 --- .../cve_windows_2021/fields/base-fields.yml | 21 - .../transform/cve_windows_2021/fields/ecs.yml | 64 - .../cve_windows_2021/fields/fields.yml | 69 - .../transform/cve_windows_2021/manifest.yml | 12 - .../transform/cve_windows_2021/transform.yml | 26 - .../cve_windows_2022/fields/agent.yml | 192 --- .../cve_windows_2022/fields/base-fields.yml | 21 - .../transform/cve_windows_2022/fields/ecs.yml | 64 - .../cve_windows_2022/fields/fields.yml | 69 - .../transform/cve_windows_2022/manifest.yml | 12 - .../transform/cve_windows_2022/transform.yml | 26 - .../cve_windows_2023/fields/agent.yml | 192 --- .../cve_windows_2023/fields/base-fields.yml | 21 - .../transform/cve_windows_2023/fields/ecs.yml | 64 - .../cve_windows_2023/fields/fields.yml | 69 - .../transform/cve_windows_2023/manifest.yml | 12 - .../transform/cve_windows_2023/transform.yml | 26 - .../cve_windows_20xx/fields/agent.yml | 192 --- .../cve_windows_20xx/fields/base-fields.yml | 21 - .../transform/cve_windows_20xx/fields/ecs.yml | 64 - .../cve_windows_20xx/fields/fields.yml | 69 - .../transform/cve_windows_20xx/manifest.yml | 12 - .../transform/cve_windows_20xx/transform.yml | 27 - ...db40-d137-11e9-a2af-693b633cf871-stig.json | 0 ...11ee-9610-15dee918f31a-exposedservice.json | 0 ...-4597-11ee-83e4-c92ed141b9e5-hardware.json | 0 ...11ee-83e4-c92ed141b9e5-networkadapter.json | 0 ...716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json | 0 ...e-9610-15dee918f31a-softwareinventory.json | 0 ...3dbd-11ee-9610-15dee918f31a-harddrive.json | 0 ...11ee-8557-a7ea91123f8b-networkadapter.json | 0 ...bf50-3dbf-11ee-9610-15dee918f31a-host.json | 0 ...3d41-11ee-9610-15dee918f31a-harddrive.json | 0 ...58ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json | 0 ...-3e02-11ee-9610-15dee918f31a-hardware.json | 0 ...e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json | 0 ...12af0-3d4c-11ee-9610-15dee918f31a-arp.json | 0 ...c490-41a5-11ee-83e4-c92ed141b9e5-stig.json | 0 ...11ee-9610-15dee918f31a-exposedservice.json | 0 ...bb1a0-112a-11ee-af86-538da1394f27-log.json | 0 ...6a20-3d47-11ee-9610-15dee918f31a-host.json | 0 .../02acfb43-5302-4331-bb10-4174171f6091.json | 0 .../2dc584bc-c446-4150-b561-1415a45ebe87.json | 0 .../37150b25-1c34-494e-8214-b58a5a716c95.json | 0 .../39822d3a-870f-4a82-8928-e9264b4d1a31.json | 0 .../41d172ee-a0b8-4b20-9c93-6482f0abbdec.json | 0 .../4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json | 0 .../62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json | 0 .../6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json | 0 .../6ce8198c-8c52-4f20-8e68-b566ebf84b18.json | 0 .../7d972a32-d117-4963-a7bf-58fc65fb1ee8.json | 0 .../8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json | 0 .../9267bb1b-cf22-4417-8cfb-6606848140a7.json | 0 .../a264bf8d-abc3-4789-9f4c-bf76397e06ba.json | 0 .../a57870ef-07d8-4d12-a067-8c66eefd10ca.json | 0 .../a61d021d-d78f-485d-93b2-8075149794af.json | 0 .../b006641c-69de-48bd-9a5a-1125f0da1c0b.json | 0 .../bb5226cd-c099-46d2-bb71-0257232c7d82.json | 0 .../c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json | 0 .../df491fbb-3f09-4ab0-995a-c2c549a9bc21.json | 0 .../e0015160-781d-4885-9ae6-04230d059bfb.json | 0 .../e886429e-9532-4f44-bb36-6465fe760866.json | 0 .../eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json | 0 .../ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json | 0 .../f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json | 0 ...-837878a0-c3cb-11eb-8956-0b1a70e695fd.json | 0 .../2140f083-6e39-4df4-ba41-aa1f41cb81b8.json | 0 .../2e5a7e20-1137-11ee-af86-538da1394f27.json | 0 .../55faa99b-ce17-4a41-9f63-4a7439e3543a.json | 0 .../6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json | 0 .../6839b82b-22bf-418f-a86b-7e7a4cd074d7.json | 0 .../6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json | 0 .../867e3450-1139-11ee-af86-538da1394f27.json | 0 .../bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json | 0 .../c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json | 0 .../ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json | 0 .../d0d735ed-08fe-4393-9aa6-120236995152.json | 0 ...-d954bdb0-3298-11ec-b058-cf4fefc29658.json | 0 ...-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json | 0 packages/tychon/manifest.yml | 6 +- 377 files changed, 563 insertions(+), 21883 deletions(-) delete mode 100644 packages/tychon/build/packages/tychon-0.0.58.zip delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/changelog.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/docs/README.md delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-2de7a3c0-3e08-11ee-9610-15dee918f31a-cve.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-75c383c0-e508-11ed-8a95-ab70156d4b18-cve.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/5be62502-2bab-4d66-97ff-d9373963c50d.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/78931842-dc88-45d7-a6ee-d79fb9f615bd.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/lens/tychon-1d1b99c0-c3e4-11eb-8956-0b1a70e695fd.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/10359860-1139-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2e9c9ac0-1138-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/5be38411-3902-4686-8209-1ab75a6d3847.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/934a39a0-1138-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/beeea32f-31ba-4be8-9e2c-14de47280aac.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-026431f0-3de5-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-11990b80-41b6-11ee-83e4-c92ed141b9e5.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-27edf330-3dfd-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-39b55820-10f2-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-5a3ae0c0-3dbf-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-7b7ab4c0-3e02-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-7f851220-3d41-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-9c222660-1100-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-a3922360-3de6-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-bae88930-1133-11ee-af86-538da1394f27.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-c957d710-3d4c-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-e18d6100-3c85-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/tag/tychon-f26ce820-3d47-11ee-9610-15dee918f31a.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-ee4b44b0-40e6-11ee-8111-21f5f34f6dfc.json delete mode 100644 packages/tychon/build/packages/tychon/0.0.58/manifest.yml create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/deploy/docker/docker-compose.yml create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/deploy/docker/sample_logs/test-arp.json create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/deploy/docker/test-tychon_arp-config.yml create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json rename packages/tychon/data_stream/{tychon_cve/_dev/test/pipeline/test-cve.json-config.yml => tychon_arp/_dev/test/pipeline/test-arp.json-config.yml} (100%) create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/pipeline/test-arp.json-expected.json create mode 100644 packages/tychon/data_stream/tychon_arp/_dev/test/system/test-tychon_arp-config.yml rename packages/tychon/{build/packages/tychon/0.0.58/data_stream/tychon_cpu => data_stream/tychon_arp}/agent/stream/stream.yml.hbs (78%) create mode 100644 packages/tychon/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml rename packages/tychon/{build/packages/tychon/0.0.58 => }/data_stream/tychon_arp/fields/agent.yml (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/data_stream/tychon_arp/fields/base-fields.yml (100%) rename packages/tychon/data_stream/{tychon_cve => tychon_arp}/fields/ecs.yml (72%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/data_stream/tychon_arp/fields/fields.yml (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/data_stream/tychon_arp/manifest.yml (78%) create mode 100644 packages/tychon/data_stream/tychon_arp/sample_event.json delete mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json delete mode 100644 packages/tychon/data_stream/tychon_cve/_dev/test/pipeline/test-cve.json-expected.json delete mode 100644 packages/tychon/data_stream/tychon_cve/agent/stream/stream.yml.hbs delete mode 100644 packages/tychon/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml delete mode 100644 packages/tychon/data_stream/tychon_cve/fields/agent.yml delete mode 100644 packages/tychon/data_stream/tychon_cve/fields/base-fields.yml delete mode 100644 packages/tychon/data_stream/tychon_cve/fields/fields.yml delete mode 100644 packages/tychon/data_stream/tychon_cve/manifest.yml rename packages/tychon/{build/packages/tychon/0.0.58/data_stream/tychon_cpu => elasticsearch/transform/arp}/fields/agent.yml (100%) rename packages/tychon/{build/packages/tychon/0.0.58/data_stream/tychon_cpu => elasticsearch/transform/arp}/fields/base-fields.yml (100%) create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/beats.yml rename packages/tychon/elasticsearch/transform/{cve_linux => arp}/fields/ecs.yml (64%) create mode 100644 packages/tychon/elasticsearch/transform/arp/fields/fields.yml rename packages/tychon/{build/packages/tychon/0.0.58 => }/elasticsearch/transform/arp/manifest.yml (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/elasticsearch/transform/arp/transform.yml (100%) delete mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_linux/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_linux/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml delete mode 100644 packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58/kibana/visualization => kibana/lens}/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json (100%) rename packages/tychon/{build/packages/tychon/0.0.58 => }/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json (100%) diff --git a/packages/tychon/_dev/build/docs/README.md b/packages/tychon/_dev/build/docs/README.md index 9b319086e30..92aef340987 100644 --- a/packages/tychon/_dev/build/docs/README.md +++ b/packages/tychon/_dev/build/docs/README.md @@ -11,86 +11,11 @@ * This integration supports Elastic 8.8+. ## Returned Data Fields + ### ARP Table Information TYCHON scans Endpoint ARP Tables and returns the results. -**Exported fields** {{fields "tychon_arp"}} -### Vulnerablities - -TYCHON scans for Endpoint CPU's and returns the results. - -**Exported fields** -{{fields "tychon_cpu"}} - -### Vulnerablities - -TYCHON scans for Endpoint vulnerablities and returns the results. - -**Exported fields** -{{fields "tychon_cve"}} - -### Endpoint Protection Platform - -TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** -{{fields "tychon_epp"}} - -### Endpoint Exposed Services Information - -The TYCHON script to scan Endpoint Exposed Services and returns information. - -**Exported fields** -{{fields "tychon_exposedservice"}} - -### Endpoint Hard Drive Information - -The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. - -**Exported fields** -{{fields "tychon_harddrive"}} - -### Endpoint Hardware Information - -The TYCHON script scans an endpoint's Hardware Configurations and returns information. - -**Exported fields** -{{fields "tychon_hardware"}} - -### Endpoint Host OS Information - -The TYCHON script scans an endpoint's OS Configurations and returns information. - -**Exported fields** -{{fields "tychon_host"}} - -### Endpoint Network Adapters Information - -The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. - -**Exported fields** -{{fields "tychon_networkadapter"}} - -### Endpoint Software Inventory Information - -The TYCHON script scans an endpoint's Software Inventory and returns information. - -**Exported fields** -{{fields "tychon_softwareinventory"}} - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** -{{fields "tychon_stig"}} - -### Endpoint Volume Information - -The TYCHON script scans an endpoint's Volume Configurations and returns information. - -**Exported fields** -{{fields "tychon_volume"}} +{{event "tychon_arp"}} diff --git a/packages/tychon/build/packages/tychon-0.0.58.zip b/packages/tychon/build/packages/tychon-0.0.58.zip deleted file mode 100644 index 1e0012287edbde2403d92ff590129332d72bc3ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2358090 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
7AcY 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�Bc-3U@BllA52Z_WJW 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

3AU(> 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

WS_VJ21%MI&3=V01a_pY5|I?>8_4LP3$bbQ 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 +=JGgXTM^Zo!q6nq5!9RxA*;z`Hzd`1})xs2Z5 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≀jyTs`v-UWTO9b+%4sQ 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�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

Ur2WwJGh+im3 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%0A!%Hy^|0QxWXkSNK6!i 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

3iOHUuT@oEn$)3A$WA)tZuoU~j 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt b/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt deleted file mode 100644 index 809108b857f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Elastic License 2.0 - -URL: https://www.elastic.co/licensing/elastic-license - -## Acceptance - -By using the software, you agree to all of the terms and conditions below. - -## Copyright License - -The licensor grants you a non-exclusive, royalty-free, worldwide, -non-sublicensable, non-transferable license to use, copy, distribute, make -available, and prepare derivative works of the software, in each case subject to -the limitations and conditions below. - -## Limitations - -You may not provide the software to third parties as a hosted or managed -service, where the service provides users with access to any substantial set of -the features or functionality of the software. - -You may not move, change, disable, or circumvent the license key functionality -in the software, and you may not remove or obscure any functionality in the -software that is protected by the license key. - -You may not alter, remove, or obscure any licensing, copyright, or other notices -of the licensor in the software. Any use of the licensor’s trademarks is subject -to applicable law. - -## Patents - -The licensor grants you a license, under any patent claims the licensor can -license, or becomes able to license, to make, have made, use, sell, offer for -sale, import and have imported the software, in each case subject to the -limitations and conditions in this license. This license does not cover any -patent claims that you cause to be infringed by modifications or additions to -the software. If you or your company make any written claim that the software -infringes or contributes to infringement of any patent, your patent license for -the software granted under these terms ends immediately. If your company makes -such a claim, your patent license ends immediately for work on behalf of your -company. - -## Notices - -You must ensure that anyone who gets a copy of any part of the software from you -also gets a copy of these terms. - -If you modify the software, you must include in any modified copies of the -software prominent notices stating that you have modified the software. - -## No Other Rights - -These terms do not imply any licenses other than those expressly granted in -these terms. - -## Termination - -If you use the software in violation of these terms, such use is not licensed, -and your licenses will automatically terminate. If the licensor provides you -with a notice of your violation, and you cease all violation of this license no -later than 30 days after you receive that notice, your licenses will be -reinstated retroactively. However, if you violate these terms after such -reinstatement, any additional violation of these terms will cause your licenses -to terminate automatically and permanently. - -## No Liability - -*As far as the law allows, the software comes as is, without any warranty or -condition, and the licensor will not be liable to you for any damages arising -out of these terms or the use or nature of the software, under any kind of -legal claim.* - -## Definitions - -The **licensor** is the entity offering these terms, and the **software** is the -software the licensor makes available under these terms, including any portion -of it. - -**you** refers to the individual or entity agreeing to these terms. - -**your company** is any legal entity, sole proprietorship, or other kind of -organization that you work for, plus all organizations that have control over, -are under the control of, or are under common control with that -organization. **control** means ownership of substantially all the assets of an -entity, or the power to direct its management and policies by vote, contract, or -otherwise. Control can be direct or indirect. - -**your licenses** are all the licenses granted to you for the software under -these terms. - -**use** means anything you do with the software requiring one of your licenses. - -**trademark** means trademarks, service marks, and similar rights. diff --git a/packages/tychon/build/packages/tychon/0.0.58/changelog.yml b/packages/tychon/build/packages/tychon/0.0.58/changelog.yml deleted file mode 100644 index c3c87258df3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/changelog.yml +++ /dev/null @@ -1,5 +0,0 @@ -- version: 0.0.58 - changes: - - description: Fixed incorrect types in field.yml and cleaned up formatting - type: enhancement - link: https://github.com/joeperuzzi/integrations/pull/5 # FIXME Replace with the real PR link diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index c975fdfbb18..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -description: Pipeline for TYCHON ARP Tables -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [network] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: "{{ _ingest.on_failure_message }}" \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml deleted file mode 100644 index a52c5ee4b63..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_arp/fields/ecs.yml +++ /dev/null @@ -1,197 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - Direction of the network traffic. - 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: |- - 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Error message. - name: error.message - type: match_only_text -- 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 83acb15d7f3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,88 +0,0 @@ ---- -description: Pipeline for TYCHON CPU Information -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - gsub: - field: host.cpu.speed - pattern: "[^0-9]" - replacement: "" - - convert: - field: host.cpu.speed - type: long - ignore_missing: true - - gsub: - field: host.cpu.clockspeed - pattern: "[^0-9]" - replacement: "" - - convert: - field: host.cpu.clockspeed - type: long - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml deleted file mode 100644 index e4ce9dde8f0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/ecs.yml +++ /dev/null @@ -1,176 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Error message. - name: error.message - type: match_only_text -- 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml deleted file mode 100644 index d2212239b15..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/fields.yml +++ /dev/null @@ -1,33 +0,0 @@ -- name: host - type: group - fields: - - name: cpu - type: group - fields: - - name: caption - description: Host Cpu Caption. - type: text - - name: clockspeed - description: Host Cpu Clockspeed. - type: long - - name: family - description: Host Cpu Family. - type: keyword - - name: manufacturer - description: Host Cpu Manufacturer. - type: keyword - - name: name - description: Host Cpu Name. - type: keyword - - name: number_of_cores - description: Host Cpu Number Of Cores. - type: integer - - name: number_of_logical_processors - description: Host Cpu Number Of Logical Processors. - type: integer - - name: speed - description: Host Cpu Speed. - type: long - - name: virtualization_firmware_enabled - description: Host Cpu Virtualization Firmware Enabled. - type: boolean diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml deleted file mode 100644 index 82a7fb19357..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint CPU Info -type: logs -streams: - - input: logfile - title: Endpoint CPU Info - description: Endpoint CPU Info - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Endpoint CPU Output Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cpu_info.json - - /var/log/tychoncloud/eventlogs/tychon_cpu_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-cpu-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs deleted file mode 100644 index 8b177f1461f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,23 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true - \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 22570ba4e4c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,108 +0,0 @@ ---- -description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: vulnerability.due_date - value: "1970-01-01T00:00:01Z" - if: ctx.vulnerability.due_date == '' - - date: - field: vulnerability.due_date - target_field: vulnerability.due_date - output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX - formats: - - strict_date_optional_time - - epoch_millis - - date - - "MM/dd/yyyy" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [vulnerability] - - set: - field: event.type - value: [info] - - script: - source: | - if(ctx.vulnerability?.result == 'fail'){ - ctx.event.outcome = "failure" - }else if(ctx.vulnerability?.result == 'pass'){ - ctx.event.outcome = "success" - }else{ - ctx.event.outcome = "unknown" - } - - convert: - field: script.current_duration - type: float - ignore_missing: true - - convert: - field: vulnerability.score.base - type: float - ignore_failure: true - - convert: - field: vulnerability.year - type: long - - set: - field: vulnerability.scanner.vendor - value: tychon - - set: - field: vulnerability.category - value: [oval] - - set: - field: vulnerability.classification - value: cvss - - set: - field: vulnerability.enumeration - value: CVE -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml deleted file mode 100644 index de55a4d1fda..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/ecs.yml +++ /dev/null @@ -1,228 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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 field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_keyword -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - Hostname of the host. - It normally contains what the `hostname` command returns on the host machine. - name: host.hostname - type: keyword -- 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: host.type - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system version as a raw string. - name: host.os.version - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - 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 National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml deleted file mode 100644 index b73c0500bbc..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/fields/fields.yml +++ /dev/null @@ -1,27 +0,0 @@ -- name: vulnerability - type: group - fields: - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason. - type: keyword - - name: iava - description: Vulnerability Iava. - type: keyword - - name: iava_severity - description: Vulnerability Iava Severity. - type: keyword - - name: result - description: Vulnerability Result. - type: keyword - - name: title - description: Vulnerability Title. - type: keyword - - name: version - description: Vulnerability Version. - type: keyword - - name: year - description: Vulnerability Year. - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml deleted file mode 100644 index b1dc5ee94f8..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Vulnerabilites -type: logs -streams: - - input: logfile - title: Vulnerabilites - description: TYCHON reports on tens of thousands of Vulnerabilites, this data stream reads in the results as upserts to your Elastic database. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: Vulnerability Results Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_cve_info.json - - /var/log/tychoncloud/eventlogs/tychon_cve_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-cve - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json deleted file mode 100644 index cd07585f2b8..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cve/sample_event.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tychon.id": "564D3240-42F3-6AE9-5634-12D3BB4842E5", - "tychon.campaign": "bd31e9ba-1756-4fd5-b463-ec712ce4dd8e", - "tychon.realm": "TYC742586751BDC4383A8388F974883333E", - "vulnerability.id": "CVE-2022-25315", - "event.outcome": "fail", - "event.created": "2023-02-07 16:28:07" -} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs deleted file mode 100644 index 019ad423b43..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,23 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 4b044aee00e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,67 +0,0 @@ ---- -description: Pipeline for TYCHON Endpoint Protection Datasets -processors: - - dot_expander: - field: "*" - - set: - field: '@timestamp' - value: '{{_ingest.timestamp}}' - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' - - set: - field: ecs.version - value: '8.8.0' - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml deleted file mode 100644 index c29f4029e57..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/ecs.yml +++ /dev/null @@ -1,197 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - Additional information about the build version of the installed package. - For example use the commit SHA of a non-released package. - name: package.build_version - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Package name - name: package.name - type: keyword -- description: Home page or reference URL of the software in this package, if available. - name: package.reference - type: keyword -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: List of keywords used to tag each event. - name: tags - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml deleted file mode 100644 index 03e45729afd..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/fields/fields.yml +++ /dev/null @@ -1,201 +0,0 @@ -- name: crowdstrike - type: group - fields: - - name: service - type: group - fields: - - name: falcon - type: group - fields: - - name: signature_version - description: Crowdstrike Service Falcon Signature Version. - type: keyword - - name: status - description: Crowdstrike Service Falcon Status. - type: keyword - - name: version - description: Crowdstrike Service Falcon Version. - type: version -- name: elastic - type: group - fields: - - name: service - type: group - fields: - - name: agent - type: group - fields: - - name: status - description: Elastic Service Agent Status. - type: keyword - - name: version - description: Elastic Service Agent Version. - type: version - - name: endpoint - type: group - fields: - - name: behavior_protection - description: Elastic Service Endpoint Behavior Protection. - type: keyword - - name: malware - description: Elastic Service Endpoint Malware. - type: keyword - - name: memory_protection - description: Elastic Service Endpoint Memory Protection. - type: keyword - - name: ransomware - description: Elastic Service Endpoint Ransomware. - type: keyword - - name: status - description: Elastic Service Endpoint Status. - type: keyword - - name: version - description: Elastic Service Endpoint Version. - type: version -- name: trellix - type: group - fields: - - name: service - type: group - fields: - - name: accm - type: group - fields: - - name: status - description: Trellix Service Accm Status. - type: keyword - - name: version - description: Trellix Service Accm Version. - type: version - - name: dlp - type: group - fields: - - name: status - description: Trellix Service Dlp Status. - type: keyword - - name: version - description: Trellix Service Dlp Version. - type: version - - name: ens - type: group - fields: - - name: signature_version - description: Trellix Service Ens Signature Version. - type: keyword - - name: status - description: Trellix Service Ens Status. - type: keyword - - name: version - description: Trellix Service Ens Version. - type: version - - name: ma - type: group - fields: - - name: status - description: Trellix Service Ma Status. - type: keyword - - name: version - description: Trellix Service Ma Version. - type: version - - name: pa - type: group - fields: - - name: status - description: Trellix Service Pa Status. - type: keyword - - name: version - description: Trellix Service Pa Version. - type: version - - name: rsd - type: group - fields: - - name: status - description: Trellix Service Rsd Status. - type: keyword - - name: version - description: Trellix Service Rsd Version. - type: version -- name: windows_defender - type: group - fields: - - name: service - type: group - fields: - - name: antimalware - type: group - fields: - - name: engine_version - description: Windows Defender Service Antimalware Engine Version. - type: keyword - - name: product_version - description: Windows Defender Service Antimalware Product Version. - type: keyword - - name: signature_version - description: Windows Defender Service Antimalware Signature Version. - type: keyword - - name: status - description: Windows Defender Service Antimalware Status. - type: keyword - - name: antispyware - type: group - fields: - - name: signature_version - description: Windows Defender Service Antispyware Signature Version. - type: keyword - - name: status - description: Windows Defender Service Antispyware Status. - type: keyword - - name: antivirus - type: group - fields: - - name: full_scan - type: group - fields: - - name: signature_version - description: Windows Defender Service Antivirus Full Scan Signature Version. - type: keyword - - name: quick_scan - type: group - fields: - - name: signature_version - description: Windows Defender Service Antivirus Quick Scan Signature Version. - type: keyword - - name: status - description: Windows Defender Service Antivirus Status. - type: keyword - - name: behavior_monitor - type: group - fields: - - name: status - description: Windows Defender Service Behavior Monitor Status. - type: keyword - - name: ioav_protection - type: group - fields: - - name: status - description: Windows Defender Service Ioav Protection Status. - type: keyword - - name: nis - type: group - fields: - - name: engine_version - description: Windows Defender Service Nis Engine Version. - type: keyword - - name: signature_version - description: Windows Defender Service Nis Signature Version. - type: keyword - - name: status - description: Windows Defender Service Nis Status. - type: keyword - - name: on_access_protection - type: group - fields: - - name: status - description: Windows Defender Service On Access Protection Status. - type: keyword - - name: real_time_protection - type: group - fields: - - name: status - description: Windows Defender Service Real Time Protection Status. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml deleted file mode 100644 index 83539270d37..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint Protection Platform Info -type: logs -streams: - - input: logfile - title: Endpoint Protection Platform Info - description: Endpoint Protection Platform Info - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON EPP Output Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_epp_info.json - - /var/log/tychoncloud/eventlogs/tychon_epp_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-epp-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json deleted file mode 100644 index 4b3beb399a0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_epp/sample_event.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", - "package.product": "MicrosoftDefenderAntivirus", - "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", - "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", - "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", - "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", - "package.revision": 200, - "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", - "": "Succeeded", - "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", - "package.installed": "2023-01-3009:21:18" -} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index be29d467bde..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,78 +0,0 @@ ---- -description: Pipeline for Exposed Services -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: source.ip - value: "0.0.0.0" - if: ctx.source.ip == '' - ignore_failure: true - - set: - field: service.name - value: "{{process.name}}" - if: "ctx.service?.name == null" - ignore_failure: true - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [network] - - set: - field: event.type - value: [info] - - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml deleted file mode 100644 index e9c7a68e0ac..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/ecs.yml +++ /dev/null @@ -1,239 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - 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: Absolute path to the process executable. - multi_fields: - - name: text - type: match_only_text - name: process.executable - type: keyword -- description: SHA1 hash. - name: process.hash.sha1 - 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: 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: |- - Name of the service data is collected from. - The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. - In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. - name: service.name - type: keyword -- description: Current state of the service. - name: service.state - 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: Short name or login of the user. - multi_fields: - - name: text - type: match_only_text - name: user.name - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml deleted file mode 100644 index 77a8e2cbaee..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/fields/fields.yml +++ /dev/null @@ -1,18 +0,0 @@ -- name: device - type: group - fields: - - name: name - description: Device Name. - type: keyword -- name: service - type: group - fields: - - name: description - description: The description text on the service. - type: keyword - - name: display_name - description: The human readable name of the service - type: keyword - - name: status - description: Service Status. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml deleted file mode 100644 index c86415c93f3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_exposedservice/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint Exposed Services -type: logs -streams: - - input: logfile - title: Endpoint Exposed Services - description: TYCHON will detect open ports and their processes to help determine extrenal exposure for an endpoint. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Exposed Services Output Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_exposedservice_info.json - - /var/log/tychoncloud/eventlogs/tychon_exposedservice_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-exposedservice-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 60abac9c0b3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,71 +0,0 @@ ---- -description: Pipeline for the TYCHON Hard Drive Dataset -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: disk.size - type: long - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml deleted file mode 100644 index e4ce9dde8f0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/ecs.yml +++ /dev/null @@ -1,176 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Error message. - name: error.message - type: match_only_text -- 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml deleted file mode 100644 index f897cf8ee96..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/fields/fields.yml +++ /dev/null @@ -1,84 +0,0 @@ -- name: disk - type: group - fields: - - name: id - description: Disk ID - type: keyword - - name: adapter - type: group - fields: - - name: serial_number - type: keyword - description: Disk Adapter Serial Number - - name: boot_from - type: boolean - description: OS booted from this disk - - name: bus_type - type: keyword - description: The Disk Bus Type - - name: clustered - type: boolean - description: Is the Disk Clustered - - name: firmware_version - type: keyword - description: Disk Firmware version - - name: health_status - type: keyword - description: Health status of the disk - - name: highly_available - type: boolean - description: Disk is marked as highly available - - name: is_boot - type: boolean - description: Disk is a boot disk - - name: location - type: group - fields: - - name: adapter - type: integer - description: Zero index adapter location - - name: pci_slot - type: integer - description: PCI Slot location - - name: bus - type: integer - description: Disk Bus Location - - name: device - type: integer - description: Disk Device Location - - name: function - type: integer - description: Disk Function Location - - name: manufacturer - type: keyword - description: The manufacturer of the Disk - - name: model - type: keyword - description: The model of the disk - - name: name - type: keyword - description: The friendly name of the disk - - name: number - type: integer - description: The number assigned to the disk - - name: number_of_partitions - type: integer - description: Total number of partitions on the drive - - name: offline - type: boolean - description: Is the disk offline - - name: operational_status - type: keyword - description: Operational Status of the disk - - name: partition_style - type: keyword - description: Partition style - - name: serial_number - type: keyword - description: The unique serial number of the drive - - name: size - type: long - description: Total Size of the disk - - name: system - type: boolean - description: Is this a system drive diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml deleted file mode 100644 index 21b27d5034f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_harddrive/manifest.yml +++ /dev/null @@ -1,34 +0,0 @@ -title: Endpoint Harddrive Info -type: logs -streams: - - input: logfile - title: Endpoint Harddrive Info - description: TYCHON reports all the physical Hard Drive(s) on an endpoint - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Harddrive Output Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_harddrive_info.json - - /var/log/tychoncloud/eventlogs/tychon_harddrive_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-harddrive-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index ec00b2777d6..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,70 +0,0 @@ ---- -description: Pipeline for Hardware -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - lowercase: - field: device.present - ignore_missing: true - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml deleted file mode 100644 index bb5d4f6e3c0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/ecs.yml +++ /dev/null @@ -1,185 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_keyword -- description: "The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. \nOn iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application.\nFor GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user." - name: device.id - type: keyword -- description: The vendor name of the device manufacturer. - name: device.manufacturer - type: keyword -- description: The human readable marketing name of the device model. - name: device.model.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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml deleted file mode 100644 index f8c9a4a7192..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/fields/fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: device - type: group - fields: - - name: class - description: Device Class. - type: keyword - - name: description - description: Device Description. - type: text - - name: friendly_name - description: Device Friendly Name. - type: keyword - - name: name - description: Device Name. - type: keyword - - name: present - description: Device Present. - type: boolean - - name: status - description: Device Status. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml deleted file mode 100644 index 1daff5cba8c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_hardware/manifest.yml +++ /dev/null @@ -1,34 +0,0 @@ -title: Hardware Info -type: logs -streams: - - input: logfile - title: Hardware Info - description: The physical hardware attached to a computer system. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Hardware Output Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_hardware_info.json - - /var/log/tychoncloud/eventlogs/tychon_hardware_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-hardware-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 286f6620da7..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,92 +0,0 @@ ---- -description: Pipeline for TYCHON HOST OS -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.memory.size - type: long - ignore_failure: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [host] - - set: - field: event.type - value: [info] - - remove: - field: tychon.definition.oval - if: ctx.tychon.definition.oval == '' - - remove: - field: tychon.definition.stig - if: ctx.tychon.definition.stig == '' - - convert: - field: script.current_duration - type: float - ignore_missing: true - - set: - field: host.security.antivirus.exists - value: "false" - if: ctx.host.security.antivirus.exists == '' - - lowercase: - field: host.security.antivirus.exists - - split: - field: host.security.antivirus.exists - separator: "," - target_field: tempav - - set: - field: host.security.antivirus.exists - value: "{{tempav.0}}" - - remove: - field: tempav -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: "{{{ _ingest.on_failure_message }}}" \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml deleted file mode 100644 index 3dd1f484316..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/ecs.yml +++ /dev/null @@ -1,90 +0,0 @@ -- 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 field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: Operating system version as a raw string. - name: host.os.version - type: keyword -- 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- description: Error message. - name: error.message - type: match_only_text -- 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml deleted file mode 100644 index 59bdd71baf8..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/fields/fields.yml +++ /dev/null @@ -1,243 +0,0 @@ -- name: event - type: group - fields: - - name: deviceguard - type: group - fields: - - name: basevirtualizationsupport - type: group - fields: - - name: available - description: Event Deviceguard Basevirtualizationsupport Available. - type: boolean - - name: credentialguard - type: group - fields: - - name: enabled - description: Event Deviceguard Credentialguard Enabled. - type: boolean - - name: running - description: Event Deviceguard Credentialguard Running. - type: boolean - - name: dmaprotection - type: group - fields: - - name: available - description: Event Deviceguard Dmaprotection Available. - type: boolean - - name: hypervisorenforcedcodeint - type: group - fields: - - name: enabled - description: Event Deviceguard Hypervisorenforcedcodeint Enabled. - type: boolean - - name: running - description: Event Deviceguard Hypervisorenforcedcodeint Running. - type: boolean - - name: secureboot - type: group - fields: - - name: available - description: Event Deviceguard Secureboot Available. - type: boolean - - name: securememoverwrite - type: group - fields: - - name: available - description: Event Deviceguard Securememoverwrite Available. - type: boolean - - name: smmsecuritymigrations - type: group - fields: - - name: available - description: Event Deviceguard Smmsecuritymigrations Available. - type: boolean - - name: systemguardsecurelaunch - type: group - fields: - - name: enabled - description: Event Deviceguard Systemguardsecurelaunch Enabled. - type: boolean - - name: running - description: Event Deviceguard Systemguardsecurelaunch Running. - type: boolean - - name: ueficodereadonly - type: group - fields: - - name: available - description: Event Deviceguard Ueficodereadonly Available. - type: boolean - - name: usermodecodeintegrity - type: group - fields: - - name: policyenforcement - description: Event Deviceguard Usermodecodeintegrity Policyenforcement. - type: keyword - - name: version - description: Event Deviceguard Version. - type: keyword - - name: virtualizationbasedsecurity - type: group - fields: - - name: status - description: Event Deviceguard Virtualizationbasedsecurity Status. - type: keyword - - name: ufi - type: group - fields: - - name: enabled - description: Event Ufi Enabled. - type: boolean -- name: host - type: group - fields: - - name: cloud - type: group - fields: - - name: compute - type: group - fields: - - name: name - description: Host Cloud Compute Name. - type: keyword - - name: resource_group_name - description: Host Cloud Compute Resource Group Name. - type: keyword - - name: resource_id - description: Host Cloud Compute Resource Id. - type: keyword - - name: subscription_id - description: Host Cloud Compute Subscription Id. - type: keyword - - name: tags - description: Host Cloud Compute Tags. - type: keyword - - name: vm_id - description: Host Cloud Compute Vm Id. - type: keyword - - name: hosted - description: Host Cloud Hosted. - type: boolean - - name: network - type: group - fields: - - name: mac_address - description: Host Cloud Network Mac Address. - type: keyword - - name: public_ipv4 - description: Host Cloud Network Public Ipv4. - type: ip - - name: public_ipv6 - description: Host Cloud Network Public Ipv6. - type: ip - - name: compute - type: group - fields: - - name: location - description: Host Compute Location. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host Cpu Caption. - type: text - - name: count - description: Host Cpu Count. - type: integer - - name: memory - type: group - fields: - - name: size - description: Host Memory Size. - type: long - - name: motherboard - type: group - fields: - - name: chipset - description: Host Motherboard Chipset. - type: keyword - - name: serial_number - description: Host Motherboard Serial Number. - type: keyword - - name: os - type: group - fields: - - name: edition - description: Host Os Edition. - type: keyword - - name: extended_support_license - description: Host Os Extended Support License. - type: keyword - - name: extended_support_license_expiration - description: Host Os Extended Support License Expiration. - type: date - - name: suportted_plan - description: Host Os Suportted Plan. - type: keyword - - name: vendor - description: Host Os Vendor. - type: keyword - - name: security - type: group - fields: - - name: antivirus - type: group - fields: - - name: exists - description: Host Security Antivirus Exists. - type: boolean - - name: name - description: Host Security Antivirus Name. - type: keyword - - name: state - description: Host Security Antivirus State. - type: keyword - - name: status - description: Host Security Antivirus Status. - type: keyword - - name: tpm - type: group - fields: - - name: compliant - description: Host Tpm Compliant. - type: boolean - - name: digest - type: group - fields: - - name: id - description: Host Tpm Digest Id. - type: keyword - - name: present - description: Host Tpm Present. - type: boolean - - name: version - description: Host Tpm Version. - type: keyword - - name: virtualization_status - description: Host Virtualization Status. - type: keyword - - name: virtulization_status - description: Host Virtulization Status. - type: keyword -- name: tychon - type: group - fields: - - name: definition - type: group - fields: - - name: oval - description: Tychon Definition Oval. - type: date - - name: stig - description: Tychon Definition Stig. - type: date - - name: version - type: group - fields: - - name: agent - description: Tychon Version Agent. - type: version - - name: content - description: Tychon Version Content. - type: version diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml deleted file mode 100644 index 338763ad7f9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_host/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Host Operating System Info -type: logs -streams: - - input: logfile - title: Host Operating System Info - description: TYCHON collects 1-1 information about an endpoint in this dataset - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Host Operating System Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_host_info.json - - /var/log/tychoncloud/eventlogs/tychon_host_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-host-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 913f57a575c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,115 +0,0 @@ ---- -description: Pipeline for parsing TYCHON Network Adapters -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - remove: - field: host.adapter.ip - if: ctx.host.adapter.ip == '' - - remove: - field: host.adapter.gateway - if: ctx.host.adapter.gateway == '' - - remove: - field: host.adapter.dhcp.server - if: ctx.host.adapter.dhcp.server == '' - - remove: - field: host.adapter.dhcp.lease_obtained - if: ctx.host.adapter.dhcp.lease_obtained == '' - - remove: - field: host.adapter.dhcp.lease_expires - if: ctx.host.adapter.dhcp.lease_expires == '' - - remove: - field: host.adapter.driver.date - if: ctx.host.adapter.driver.date == '' - - remove: - field: host.adapter.wins_server - if: ctx.host.adapter.wins_server == '' - - set: - field: link_speed - value: "{{host.adapter.link_speed}}" - - set: - field: host.adapter.link_speed - value: 0 - - script: - source: - | - if(ctx['link_speed'].contains(' ')){ - String[] linkSpeed=ctx['link_speed'].splitOnToken(' '); - ctx.remove('link_speed'); - ctx['host.adapter.link_speed']=Long.parseLong(linkSpeed[0]); - if(linkSpeed[1]=='Kbps'){ - ctx['host.adapter.link_speed']*=1024 - } - if(linkSpeed[1]=='Mbps'){ - ctx['host.adapter.link_speed']*=1048576 - } - if(linkSpeed[1]=='Gbps'){ - ctx['host.adapter.link_speed']*=1073741824 - } - } else { - ctx.remove('link_speed'); - } - ignore_failure: true - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true - ignore_failure: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml deleted file mode 100644 index 5d02886421b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/ecs.yml +++ /dev/null @@ -1,98 +0,0 @@ -- 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 field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: Operating system version as a raw string. - name: host.os.version - type: keyword -- 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml deleted file mode 100644 index a4ecfb6ce0c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/fields/fields.yml +++ /dev/null @@ -1,135 +0,0 @@ -- name: host - type: group - fields: - - name: adapter - type: group - fields: - - name: alias - type: keyword - description: The Alias given to this adapter - - name: description - type: text - description: The network adapter description - - name: dhcp - type: group - fields: - - name: enabled - type: boolean - description: Is DHCP Enabled on this adapter - - name: lease_expires - type: date - description: When does this DHCP lease expire - - name: lease_obtained - type: date - description: When was the DHCP lease obtained - - name: server - type: ip - description: What IP Address was the DHCP IP obtained from. - - name: domain - type: text - description: What domain was assigned to this adapter - - name: driver - type: group - fields: - - name: date - type: date - description: Date the driver was installed - - name: description - type: text - description: Description of the driver - - name: file_name - type: keyword - description: Driver File name - - name: name - type: keyword - description: Name of the driver - - name: provider - type: keyword - description: Company that provided the driver - - name: version - type: keyword - description: Version of the driver - - name: gateway - type: ip - description: Gateway IP Address - - name: id - type: keyword - description: ID Of the adapter - - name: ip - type: ip - description: IP Addresses assigned to the adapter - - name: ip_filter - type: group - fields: - - name: enabled - type: boolean - description: Is IP Filtering Enabled - - name: wins_server - type: ip - description: The WINS Server attached to this adapter - - name: link_speed - type: long - description: Link speed of the adapter - - name: mac - type: keyword - description: Hardware MAC Address - - name: media - type: group - fields: - - name: connection_state - type: keyword - description: Current Connection State - - name: type - type: keyword - description: Current Connection Media Type - - name: mtu - type: integer - description: MTU Size - - name: ndis - type: group - fields: - - name: version - type: keyword - description: NDIS Version - - name: subnet_bit - type: integer - description: Subnet BIT - - name: virtual - type: boolean - description: Is adapter virtual - - name: vlan - type: group - fields: - - name: id - type: keyword - description: The VLAN ID - - name: wifi - type: group - fields: - - name: enabled - type: boolean - description: Is WIFI Enabled - - name: signal_percent - type: integer - description: Signal strength to connected WIFI Router - - name: ssid - type: keyword - description: The Connected WIFI Router SSID - - name: bssid - type: keyword - description: The Connected WIFI Router Hardware Address - - name: radio_type - type: keyword - description: The radio type of the connected WIFI Router - - name: authentication - type: keyword - description: The Authentication method used to connected to the WIFI Router - - name: cipher - type: keyword - description: The CIPHER used to connected to the WIFI Router - - name: band - type: keyword - description: The band used to connected to the WIFI Router - - name: channel - type: keyword - description: The channel used to connected to the WIFI Router diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml deleted file mode 100644 index 29608b8b892..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Network Adapters -type: logs -streams: - - input: logfile - title: Network Adapters - description: TYCHON reports on a host endpoints Network Adapters/NICs. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: Host Network Adapters Location - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_networkadapter_info.json - - /var/log/tychoncloud/eventlogs/tychon_networkadapter_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-networkadapter - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json deleted file mode 100644 index 19c53d20731..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_networkadapter/sample_event.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "host.adapter.dhcp.enabled": "true", - "host.adapter.ndis.version": "6.30", - "host.adapter.driver.file_name": "ftvnic.sys", - "host.adapter.driver.date": "2020-04-09", - "host.os.name": "Microsoft Windows 11 Pro", - "script.current_time": "2023-08-13T01:00:03Z", - "script.type": "powershell", - "host.adapter.virtual": "true", - "host.ip": "10.154.5.200,fe80::c2c9:f4e0:eb65:2c33,192.168.56.1,fe80::5bed:2433:ff9d:efdb,172.16.0.1,fe80::e9d4:5969:ce85:2c87", - "host.hostname": "DESKTOP-AF7CIQM", - "host.adapter.ip": "", - "host.hardware.manufacturer": "Dell Inc.", - "host.adapter.driver.version": "2020.4.9.0", - "script.start": "2023-08-13T01:00:02Z", - "host.adapter.subnet_bit": "", - "host.adapter.driver.name": "Driver Date 2020-04-09 Version 2020.4.9.0 NDIS 6.30", - "host.adapter.mtu": "1500", - "host.os.organization": "", - "host.hardware.cpu.caption": "Intel64 Family 6 Model 141 Stepping 1", - "host.adapter.domain": "", - "host.adapter.vlan.id": "", - "host.workgroup": "WORKGROUP", - "host.hardware.serial_number": "HYLCKG3", - "host.ipv4": "10.154.5.200,192.168.56.1,172.16.0.1", - "host.os.version": "2009", - "host.hardware.bios.name": "Dell Inc.", - "host.type": "Workstation", - "host.adapter.media.connection_state": "Disconnected", - "host.adapter.ip_filter.enabled": "", - "host.adapter.dhcp.server": "", - "host.adapter.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.hardware.owner": "justin.skidmore@tychon.io", - "host.id": "47b5d5906f7d4b288a1366b2f6483148_4C4C4544-0059-4C10-8043-C8C04F4B4733_DESKTOP-AF7CIQM_WORKGROUP", - "host.biossn": "4C4C4544-0059-4C10-8043-C8C04F4B4733", - "host.adapter.dhcp.lease_obtained": "", - "host.adapter.driver.description": "Fortinet Virtual Ethernet Adapter (NDIS 6.30)", - "host.adapter.link_speed": "100 Mbps", - "host.adapter.is_win_server": "", - "host.oem.model": "XPS 17 9710", - "host.uptime": {}, - "id": "{F94CD5A5-14EB-4315-91FC-370093413BD2}", - "host.adapter.driver.provider": "Fortinet", - "host.adapter.wifi.enabled": "false", - "host.os.build": "22621", - "host.adapter.mac": "00-09-0F-FE-00-01", - "script.name": "Get-TychonNetworkAdapterInfo.ps1", - "host.adapter.dhcp.lease_expires": "", - "script.version": "2.3.36.0", - "host.adapter.gateway": "", - "host.oem.manufacturer": "Dell", - "host.os.description": "", - "host.domain": "", - "script.current_duration": "1150.99", - "host.ipv6": "fe80::c2c9:f4e0:eb65:2c33,fe80::5bed:2433:ff9d:efdb,fe80::e9d4:5969:ce85:2c87", - "host.adapter.alias": "Ethernet 2", - "host.hardware.bios.version": "1.20.1", - "host.adapter.subnet": "", - "host.adapter.media.type": "802.3", - "host.mac": "60:E3:2B:4B:40:E2,0A:00:27:00:00:08,0A:00:27:00:00:0D", - "host.os.family": "Windows" -} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs deleted file mode 100644 index 8b177f1461f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,23 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true - \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index bfc8a8fcc9d..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,108 +0,0 @@ ---- -description: CVE Pipeline for parsing TYCHON Vulnerability Scan Results -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: vulnerability.due_date - value: "1970-01-01T00:00:01Z" - if: ctx.vulnerability.due_date == '' - - date: - field: vulnerability.due_date - target_field: vulnerability.due_date - output_format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX - ignore_failure: true - formats: - - strict_date_optional_time - - epoch_millis - - date - - "MM/dd/yyyy" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [vulnerability] - - set: - field: event.type - value: [info] - - script: - source: | - if(ctx.vulnerability?.result == 'fail'){ - ctx.event.outcome = "failure" - }else if(ctx.vulnerability?.result == 'pass'){ - ctx.event.outcome = "success" - }else{ - ctx.event.outcome = "unknown" - } - - convert: - field: script.current_duration - type: float - ignore_missing: true - - convert: - field: vulnerability.score.base - type: float - - convert: - field: vulnerability.year - type: long - - set: - field: vulnerability.scanner.vendor - value: tychon - - set: - field: vulnerability.category - value: [oval] - - set: - field: vulnerability.classification - value: cvss - - set: - field: vulnerability.enumeration - value: CVE -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml deleted file mode 100644 index a97473593ff..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/ecs.yml +++ /dev/null @@ -1,228 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - 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 National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml deleted file mode 100644 index b73c0500bbc..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/fields/fields.yml +++ /dev/null @@ -1,27 +0,0 @@ -- name: vulnerability - type: group - fields: - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason. - type: keyword - - name: iava - description: Vulnerability Iava. - type: keyword - - name: iava_severity - description: Vulnerability Iava Severity. - type: keyword - - name: result - description: Vulnerability Result. - type: keyword - - name: title - description: Vulnerability Title. - type: keyword - - name: version - description: Vulnerability Version. - type: keyword - - name: year - description: Vulnerability Year. - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml deleted file mode 100644 index 06cb2a56c52..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_patch/manifest.yml +++ /dev/null @@ -1,32 +0,0 @@ -title: Patches -type: logs -streams: - - input: logfile - title: Patches - description: TYCHON checks for thousands of installed patches and reports them back to Elasticsearch for reporting, trend analysis and response actions. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: Patch Results Location - multi: true - required: true - show_user: true - default: - - /var/log/tychoncloud/eventlogs/tychon_patch_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-patch - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 665cea654f4..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,112 +0,0 @@ ---- -description: Pipeline for Software Inventory -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: package.installed - value: "1970-01-01T00:00:01Z" - if: ctx.package.installed == 'installed' - - set: - field: package.installed - value: "1970-01-01T00:00:01Z" - if: ctx.package.installed == '' - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - gsub: - field: package.size - pattern: "[^0-9]" - replacement: "" - - set: - field: package.size - value: 0 - ignore_failure: true - if: ctx.package.size == '' - - gsub: - field: package.version_build - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_major - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_minor - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - gsub: - field: package.version_release - pattern: "[^0-9]" - replacement: "" - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: package.type - value: rpm - if: ctx.package.type == '' - - script: - source: ctx.package.cpe = "cpe:/a:" + ctx.package.name + ":" + ctx.package.version - if: ctx.package.cpe == '' - ignore_failure: true - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [package] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml deleted file mode 100644 index a2ef95d3e65..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/ecs.yml +++ /dev/null @@ -1,202 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: Package architecture. - name: package.architecture - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Time when package was installed. - name: package.installed - type: date -- description: Package name - name: package.name - type: keyword -- description: Path where the package is installed. - name: package.path - type: keyword -- description: Package size in bytes. - name: package.size - type: long -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: Package version - name: package.version - type: keyword -- description: List of keywords used to tag each event. - name: tags - type: keyword -- description: Error message. - name: error.message - type: match_only_text -- 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml deleted file mode 100644 index 143a9635854..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/fields/fields.yml +++ /dev/null @@ -1,27 +0,0 @@ -- name: package - type: group - fields: - - name: cpe - description: Package Cpe. - type: keyword - - name: id - description: Package Id. - type: keyword - - name: publisher - description: Package Publisher. - type: keyword - - name: uninstall - description: Package Uninstall. - type: text - - name: version_build - description: Package Version Build. - type: integer - - name: version_major - description: Package Version Major. - type: integer - - name: version_minor - description: Package Version Minor. - type: integer - - name: version_release - description: Package Version Release. - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml deleted file mode 100644 index 1dda1c00dff..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_softwareinventory/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint Software Inventory Info -type: logs -streams: - - input: logfile - title: Endpoint Software Inventory Info - description: TYCHON will collect all installed software from the operating system. - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Software Inventory Output - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_softwareinventory_info.json - - /var/log/tychoncloud/eventlogs/tychon_softwareinventory_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-softwareinventory-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs deleted file mode 100644 index 7c6bcbb900a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,22 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -publisher_pipeline.disable_host: true -{{/contains}} -processors: -- add_locale: ~ -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index adba1f3f519..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,78 +0,0 @@ ---- -description: Pipeline for parsing TYCHON STIGs -processors: - - dot_expander: - field: "*" - - set: - field: '@timestamp' - value: '{{_ingest.timestamp}}' - - set: - field: event.ingested - value: '{{_ingest.timestamp}}' - - set: - if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" - field: rule.result - value: '{{rule.test_result}}' - - remove: - if: "ctx.containsKey('rule') && ctx.rule.containsKey('test_result')" - field: rule.test_result - - set: - field: ecs.version - value: '8.8.0' - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - set: - field: event.category - value: [vulnerability, configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true - - convert: - field: rule.weight - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml deleted file mode 100644 index 391f14d1819..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/ecs.yml +++ /dev/null @@ -1,203 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - Additional information about the build version of the installed package. - For example use the commit SHA of a non-released package. - name: package.build_version - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Package name - name: package.name - type: keyword -- description: Home page or reference URL of the software in this package, if available. - name: package.reference - type: keyword -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - 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: List of keywords used to tag each event. - name: tags - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml deleted file mode 100644 index 439e6124a63..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/fields/fields.yml +++ /dev/null @@ -1,84 +0,0 @@ -- name: benchmark - type: group - fields: - - name: generated_utc - description: Benchmark UTC. - type: date - - name: hash - description: Benchmark SHA256 Hash - type: keyword - - name: id - description: Benchmark ID. - type: keyword - - name: name - description: Benchmark Name. - type: keyword - - name: title - description: Benchmark Title. - type: keyword - - name: version - description: Benchmark Version. - type: keyword -- name: oval - type: group - fields: - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. - type: keyword -- name: rule - type: group - fields: - - name: benchmark - type: group - fields: - - name: profile - type: group - fields: - - name: id - description: Benchmark Rule Profile Identifier. - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: finding_id - description: Benchmark Rule Finding Identifier. - type: keyword - - name: oval - type: group - fields: - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Reference Identifier. - type: keyword - - name: result - description: Benchmark Rule Results. - type: keyword - - name: severity - description: Benchmark Severity Status. - type: keyword - - name: stig_id - description: Stig rule id - type: keyword - - name: test_result - description: Rule Test Result. - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: vulnerability_id - description: Rule vulnerability id. - type: keyword - - name: weight - description: Benchmark Rule Weight. - type: float diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml deleted file mode 100644 index 57e4a736836..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint STIG Results -type: logs -streams: - - input: logfile - title: Endpoint STIG Results - description: Endpoint Benchmark SCAP/XCCDF Scan Results - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON STIG Results Output - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_stig_info.json - - /var/log/tychoncloud/eventlogs/tychon_stig_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-stig-info - - 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/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json deleted file mode 100644 index 4b3beb399a0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_stig/sample_event.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "package.updateid": "9f2ff11a-e905-4dde-8cec-6d1f948613f7", - "package.product": "MicrosoftDefenderAntivirus", - "package.name": "SecurityIntelligenceUpdateforMicrosoftDefenderAntivirus-KB2267602(Version1.381.2926.0)", - "tychon.id": "5b30ba26bc503cf639fbe77cc38fb015b4e965dd7f4868d3f47f05c7b7f3dc68", - "tychon.realm": "TYCC9ED65C1B87545D19954D5C3AB93D947", - "package.reference": "https://go.microsoft.com/fwlink/?LinkId=52661", - "package.revision": 200, - "tychon.campaign": "7f979c0d-29f3-4e87-9edf-3cd854fdaf2b", - "": "Succeeded", - "package.description": "Installthisupdatetorevisethefilesthatareusedtodetectviruses,spyware,andotherpotentiallyunwantedsoftware.Onceyouhaveinstalledthisitem,itcannotberemoved.", - "package.installed": "2023-01-3009:21:18" -} \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs deleted file mode 100644 index 4daf6354078..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/agent/stream/stream.yml.hbs +++ /dev/null @@ -1,20 +0,0 @@ -paths: -{{#each paths as |path|}} - - {{path}} -{{/each}} -tags: -{{#if preserve_original_event}} - - preserve_original_event -{{/if}} -{{#each tags as |tag|}} - - {{tag}} -{{/each}} -{{#contains "forwarded" tags}} -{{/contains}} -processors: -{{#if processors}} -{{processors}} -{{/if}} -json: - keys_under_root: true - expand_keys: true \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml deleted file mode 100644 index 6e78994a285..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/elasticsearch/ingest_pipeline/default.yml +++ /dev/null @@ -1,99 +0,0 @@ ---- -description: Pipeline for TYCHON Volumes -processors: - - dot_expander: - field: "*" - - set: - field: "@timestamp" - value: "{{_ingest.timestamp}}" - - set: - field: event.ingested - value: "{{_ingest.timestamp}}" - - set: - field: ecs.version - value: 8.8.0 - - set: - field: event.kind - value: state - - set: - field: event.module - value: tychon - - gsub: - field: host.mac - pattern: ":" - replacement: "-" - ignore_missing: true - - split: - field: host.ipv4 - separator: "," - ignore_missing: true - - convert: - field: host.uptime - type: string - ignore_missing: true - - split: - field: host.uptime - separator: "\\.+" - target_field: tempuptime - ignore_failure: true - - set: - field: host.uptime - value: "{{tempuptime.0}}" - ignore_failure: true - - remove: - field: tempuptime - ignore_failure: true - ignore_missing: true - - set: - field: volume.block_size - value: 0 - if: ctx.volume.block_size == '' - - set: - field: volume.freespace - value: 0 - if: ctx.volume.freespace == '' - - set: - field: volume.percent_full - value: 100 - if: ctx.volume.percent_full == '' || ctx.volume.percent_full == 'NaN' - - set: - field: volume.size - value: 0 - if: ctx.volume.size == '' - - convert: - field: volume.block_size - type: long - ignore_missing: true - - convert: - field: volume.freespace - type: long - ignore_missing: true - - convert: - field: volume.percent_full - type: float - ignore_missing: true - - convert: - field: volume.size - type: long - ignore_missing: true - - convert: - field: host.uptime - type: long - ignore_missing: true - - set: - field: event.category - value: [configuration] - - set: - field: event.type - value: [info] - - convert: - field: script.current_duration - type: float - ignore_missing: true -on_failure: - - set: - field: event.kind - value: pipeline_error - - append: - field: error.message - value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml deleted file mode 100644 index efacb477dd9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: version -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: text - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml deleted file mode 100644 index 58d1699586e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/base-fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: input - type: group - fields: - - name: type - description: Input Type. - type: keyword -- name: log - type: group - fields: - - name: offset - description: Log Offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml deleted file mode 100644 index 12e093bbe93..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/ecs.yml +++ /dev/null @@ -1,176 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml deleted file mode 100644 index 6fdf076eb63..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/fields/fields.yml +++ /dev/null @@ -1,57 +0,0 @@ -- name: volume - type: group - fields: - - name: automount - description: Volume Automount. - type: boolean - - name: block_size - description: Volume Block Size. - type: long - - name: dirty_bit_set - description: Volume Dirty Bit Set. - type: boolean - - name: dos_device_path - description: Volume Dos Device Path. - type: text - - name: drive - type: group - fields: - - name: letter - description: Volume Drive Letter. - type: keyword - - name: type - description: Volume Drive Type. - type: keyword - - name: file_system - description: Volume File System. - type: keyword - - name: freespace - description: Volume Freespace. - type: long - - name: id - description: Volume Id. - type: keyword - - name: name - description: Volume Name. - type: keyword - - name: page_file_present - description: Volume Page File Present. - type: boolean - - name: percent_full - description: Volume Percent Full. - type: float - - name: power_management_supported - description: Volume Power Management Supported. - type: boolean - - name: purpose - description: Volume Purpose. - type: keyword - - name: serial_number - description: Volume Serial Number. - type: keyword - - name: size - description: Volume Size. - type: long - - name: system_volume - description: Volume System Volume. - type: boolean diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml deleted file mode 100644 index 2ec9dafba5d..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_volume/manifest.yml +++ /dev/null @@ -1,33 +0,0 @@ -title: Endpoint Volumes Info -type: logs -streams: - - input: logfile - title: Endpoint Volumes Info - description: Endpoint Volumes Info - template_path: stream.yml.hbs - vars: - - name: paths - type: text - title: TYCHON Volumes Output - multi: true - required: true - show_user: true - default: - - C:\ProgramData\TYCHONCLOUD\eventlogs\tychon_volume_info.json - - /var/log/tychoncloud/eventlogs/tychon_volume_info.json - - name: tags - type: text - title: Tags - multi: true - required: true - show_user: false - default: - - tychon-volume - - 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/tychon/build/packages/tychon/0.0.58/docs/README.md b/packages/tychon/build/packages/tychon/0.0.58/docs/README.md deleted file mode 100644 index ec787c21055..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/docs/README.md +++ /dev/null @@ -1,1166 +0,0 @@ -# TYCHON Agentless - -[TYCHON Agentless](https://tychon.io/products/tychon-agentless/) is an integration that lets you collect TYCHON's gold source Master Endpoint Record data from endpoints, including vulnerability and STIG results, without heavy resource use or software installation. You can then investigate the TYCHON data using Elastic's analytics, visualizations, and dashboards. [Contact us to learn more.](https://tychon.io/start-a-free-trial/) - -## Compatibility - -* This integration supports Windows and RedHat/CENTOS Endpoint Operating Systems. -* This integration requires a TYCHON Agentless license. -* This integration requires [TYCHON Vulnerability Definition](https://support.tychon.io/) files. -* The Linux Endpoint requires RedHat's [OpenScap](https://www.open-scap.org/tools/openscap-base/) to be installed for STIG and CVE to report data. -* This integration supports Elastic 8.8+. - -## Returned Data Fields -### ARP Table Information - -TYCHON scans Endpoint ARP Tables and returns the results. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| destination.hostname | The Translated Hostname of the IP in the ARP Table | 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.name | | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| network.direction | Direction of the network traffic. 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.interface | The interface the ARP Table has associated the destination. | keyword | -| network.state | Current state | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint CPU's and returns the results. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | keyword | -| host.cpu.caption | Host Cpu Caption. | text | -| host.cpu.clockspeed | Host Cpu Clockspeed. | long | -| host.cpu.family | Host Cpu Family. | keyword | -| host.cpu.manufacturer | Host Cpu Manufacturer. | keyword | -| host.cpu.name | Host Cpu Name. | keyword | -| host.cpu.number_of_cores | Host Cpu Number Of Cores. | integer | -| host.cpu.number_of_logical_processors | Host Cpu Number Of Logical Processors. | integer | -| host.cpu.speed | Host Cpu Speed. | long | -| host.cpu.virtualization_firmware_enabled | Host Cpu Virtualization Firmware Enabled. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint vulnerablities and returns the results. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | -| vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | -| vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | -| vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | -| vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | -| vulnerability.due_date | Vulnerability Due Date. | date | -| vulnerability.due_date_reason | Vulnerability Due Date Reason. | keyword | -| vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | -| vulnerability.iava | Vulnerability Iava. | keyword | -| vulnerability.iava_severity | Vulnerability Iava Severity. | keyword | -| vulnerability.id | The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] | keyword | -| vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | -| vulnerability.result | Vulnerability Result. | keyword | -| vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | 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.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | -| 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 | -| vulnerability.title | Vulnerability Title. | keyword | -| vulnerability.version | Vulnerability Version. | keyword | -| vulnerability.year | Vulnerability Year. | integer | - - -### Endpoint Protection Platform - -TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| crowdstrike.service.falcon.signature_version | Crowdstrike Service Falcon Signature Version. | keyword | -| crowdstrike.service.falcon.status | Crowdstrike Service Falcon Status. | keyword | -| crowdstrike.service.falcon.version | Crowdstrike Service Falcon Version. | version | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic.service.agent.status | Elastic Service Agent Status. | keyword | -| elastic.service.agent.version | Elastic Service Agent Version. | version | -| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | -| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | -| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | -| elastic.service.endpoint.ransomware | Elastic Service Endpoint Ransomware. | keyword | -| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | -| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | -| package.description | Description of the package. | keyword | -| package.name | Package name | keyword | -| package.reference | Home page or reference URL of the software in this package, if available. | keyword | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| trellix.service.accm.status | Trellix Service Accm Status. | keyword | -| trellix.service.accm.version | Trellix Service Accm Version. | version | -| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | -| trellix.service.dlp.version | Trellix Service Dlp Version. | version | -| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | -| trellix.service.ens.status | Trellix Service Ens Status. | keyword | -| trellix.service.ens.version | Trellix Service Ens Version. | version | -| trellix.service.ma.status | Trellix Service Ma Status. | keyword | -| trellix.service.ma.version | Trellix Service Ma Version. | version | -| trellix.service.pa.status | Trellix Service Pa Status. | keyword | -| trellix.service.pa.version | Trellix Service Pa Version. | version | -| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | -| trellix.service.rsd.version | Trellix Service Rsd Version. | version | -| tychon.id | TYCHON unique host identifier. | keyword | -| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | -| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | -| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | -| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | -| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | -| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | -| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | -| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | -| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | -| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | -| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | -| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | -| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | -| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | -| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | - - -### Endpoint Exposed Services Information - -The TYCHON script to scan Endpoint Exposed Services and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.name | Device Name. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| 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.executable | Absolute path to the process executable. | keyword | -| process.executable.text | Multi-field of `process.executable`. | match_only_text | -| process.hash.sha1 | SHA1 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 | -| 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| service.description | The description text on the service. | keyword | -| service.display_name | The human readable name of the service | keyword | -| service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | -| service.state | Current state of the service. | keyword | -| service.status | Service Status. | 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 | -| tychon.id | TYCHON unique host identifier. | keyword | -| user.name | Short name or login of the user. | keyword | -| user.name.text | Multi-field of `user.name`. | match_only_text | - - -### Endpoint Hard Drive Information - -The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| disk.adapter.serial_number | Disk Adapter Serial Number | keyword | -| disk.boot_from | OS booted from this disk | boolean | -| disk.bus_type | The Disk Bus Type | keyword | -| disk.clustered | Is the Disk Clustered | boolean | -| disk.firmware_version | Disk Firmware version | keyword | -| disk.health_status | Health status of the disk | keyword | -| disk.highly_available | Disk is marked as highly available | boolean | -| disk.id | Disk ID | keyword | -| disk.is_boot | Disk is a boot disk | boolean | -| disk.location.adapter | Zero index adapter location | integer | -| disk.location.bus | Disk Bus Location | integer | -| disk.location.device | Disk Device Location | integer | -| disk.location.function | Disk Function Location | integer | -| disk.location.pci_slot | PCI Slot location | integer | -| disk.manufacturer | The manufacturer of the Disk | keyword | -| disk.model | The model of the disk | keyword | -| disk.name | The friendly name of the disk | keyword | -| disk.number | The number assigned to the disk | integer | -| disk.number_of_partitions | Total number of partitions on the drive | integer | -| disk.offline | Is the disk offline | boolean | -| disk.operational_status | Operational Status of the disk | keyword | -| disk.partition_style | Partition style | keyword | -| disk.serial_number | The unique serial number of the drive | keyword | -| disk.size | Total Size of the disk | long | -| disk.system | Is this a system drive | boolean | -| 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hardware Information - -The TYCHON script scans an endpoint's Hardware Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.class | Device Class. | keyword | -| device.description | Device Description. | text | -| device.friendly_name | Device Friendly Name. | keyword | -| device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | -| device.manufacturer | The vendor name of the device manufacturer. | keyword | -| device.model.name | The human readable marketing name of the device model. | keyword | -| device.name | Device Name. | keyword | -| device.present | Device Present. | boolean | -| device.status | Device Status. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Host OS Information - -The TYCHON script scans an endpoint's OS Configurations and returns information. - -**Exported fields** -**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 | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.deviceguard.basevirtualizationsupport.available | Event Deviceguard Basevirtualizationsupport Available. | boolean | -| event.deviceguard.credentialguard.enabled | Event Deviceguard Credentialguard Enabled. | boolean | -| event.deviceguard.credentialguard.running | Event Deviceguard Credentialguard Running. | boolean | -| event.deviceguard.dmaprotection.available | Event Deviceguard Dmaprotection Available. | boolean | -| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Deviceguard Hypervisorenforcedcodeint Enabled. | boolean | -| event.deviceguard.hypervisorenforcedcodeint.running | Event Deviceguard Hypervisorenforcedcodeint Running. | boolean | -| event.deviceguard.secureboot.available | Event Deviceguard Secureboot Available. | boolean | -| event.deviceguard.securememoverwrite.available | Event Deviceguard Securememoverwrite Available. | boolean | -| event.deviceguard.smmsecuritymigrations.available | Event Deviceguard Smmsecuritymigrations Available. | boolean | -| event.deviceguard.systemguardsecurelaunch.enabled | Event Deviceguard Systemguardsecurelaunch Enabled. | boolean | -| event.deviceguard.systemguardsecurelaunch.running | Event Deviceguard Systemguardsecurelaunch Running. | boolean | -| event.deviceguard.ueficodereadonly.available | Event Deviceguard Ueficodereadonly Available. | boolean | -| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Deviceguard Usermodecodeintegrity Policyenforcement. | keyword | -| event.deviceguard.version | Event Deviceguard Version. | keyword | -| event.deviceguard.virtualizationbasedsecurity.status | Event Deviceguard Virtualizationbasedsecurity Status. | 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.ufi.enabled | Event Ufi Enabled. | boolean | -| host.architecture | Operating system architecture. | keyword | -| host.biossn | Host BIOS Serial Number. | keyword | -| host.cloud.compute.name | Host Cloud Compute Name. | keyword | -| host.cloud.compute.resource_group_name | Host Cloud Compute Resource Group Name. | keyword | -| host.cloud.compute.resource_id | Host Cloud Compute Resource Id. | keyword | -| host.cloud.compute.subscription_id | Host Cloud Compute Subscription Id. | keyword | -| host.cloud.compute.tags | Host Cloud Compute Tags. | keyword | -| host.cloud.compute.vm_id | Host Cloud Compute Vm Id. | keyword | -| host.cloud.hosted | Host Cloud Hosted. | boolean | -| host.cloud.network.mac_address | Host Cloud Network Mac Address. | keyword | -| host.cloud.network.public_ipv4 | Host Cloud Network Public Ipv4. | ip | -| host.cloud.network.public_ipv6 | Host Cloud Network Public Ipv6. | ip | -| host.compute.location | Host Compute Location. | keyword | -| host.cpu.caption | Host Cpu Caption. | text | -| host.cpu.count | Host Cpu Count. | integer | -| 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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.memory.size | Host Memory Size. | long | -| host.motherboard.chipset | Host Motherboard Chipset. | keyword | -| host.motherboard.serial_number | Host Motherboard Serial Number. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| host.os.edition | Host Os Edition. | keyword | -| host.os.extended_support_license | Host Os Extended Support License. | keyword | -| host.os.extended_support_license_expiration | Host Os Extended Support License Expiration. | date | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | -| host.os.suportted_plan | Host Os Suportted Plan. | keyword | -| host.os.vendor | Host Os Vendor. | keyword | -| host.os.version | Operating system version as a raw string. | keyword | -| host.security.antivirus.exists | Host Security Antivirus Exists. | boolean | -| host.security.antivirus.name | Host Security Antivirus Name. | keyword | -| host.security.antivirus.state | Host Security Antivirus State. | keyword | -| host.security.antivirus.status | Host Security Antivirus Status. | keyword | -| host.tpm.compliant | Host Tpm Compliant. | boolean | -| host.tpm.digest.id | Host Tpm Digest Id. | keyword | -| host.tpm.present | Host Tpm Present. | boolean | -| host.tpm.version | Host Tpm Version. | 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 | -| host.uptime | Seconds the host has been up. | long | -| host.virtualization_status | Host Virtualization Status. | keyword | -| host.virtulization_status | Host Virtulization Status. | keyword | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | keyword | -| input.type | Input Type. | keyword | -| log.offset | Log Offset. | long | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tychon.definition.oval | Tychon Definition Oval. | date | -| tychon.definition.stig | Tychon Definition Stig. | date | -| tychon.id | TYCHON unique host identifier. | keyword | -| tychon.version.agent | Tychon Version Agent. | version | -| tychon.version.content | Tychon Version Content. | version | - - -### Endpoint Network Adapters Information - -The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. - -**Exported fields** -**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 | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | -| host.adapter.alias | The Alias given to this adapter | keyword | -| host.adapter.description | The network adapter description | text | -| host.adapter.dhcp.enabled | Is DHCP Enabled on this adapter | boolean | -| host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | -| host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | -| host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | -| host.adapter.domain | What domain was assigned to this adapter | text | -| host.adapter.driver.date | Date the driver was installed | date | -| host.adapter.driver.description | Description of the driver | text | -| host.adapter.driver.file_name | Driver File name | keyword | -| host.adapter.driver.name | Name of the driver | keyword | -| host.adapter.driver.provider | Company that provided the driver | keyword | -| host.adapter.driver.version | Version of the driver | keyword | -| host.adapter.gateway | Gateway IP Address | ip | -| host.adapter.id | ID Of the adapter | keyword | -| host.adapter.ip | IP Addresses assigned to the adapter | ip | -| host.adapter.ip_filter.enabled | Is IP Filtering Enabled | boolean | -| host.adapter.link_speed | Link speed of the adapter | long | -| host.adapter.mac | Hardware MAC Address | keyword | -| host.adapter.media.connection_state | Current Connection State | keyword | -| host.adapter.media.type | Current Connection Media Type | keyword | -| host.adapter.mtu | MTU Size | integer | -| host.adapter.ndis.version | NDIS Version | keyword | -| host.adapter.subnet_bit | Subnet BIT | integer | -| host.adapter.virtual | Is adapter virtual | boolean | -| host.adapter.vlan.id | The VLAN ID | keyword | -| host.adapter.wifi.authentication | The Authentication method used to connected to the WIFI Router | keyword | -| host.adapter.wifi.band | The band used to connected to the WIFI Router | keyword | -| host.adapter.wifi.bssid | The Connected WIFI Router Hardware Address | keyword | -| host.adapter.wifi.channel | The channel used to connected to the WIFI Router | keyword | -| host.adapter.wifi.cipher | The CIPHER used to connected to the WIFI Router | keyword | -| host.adapter.wifi.enabled | Is WIFI Enabled | boolean | -| host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | -| host.adapter.wifi.signal_percent | Signal strength to connected WIFI Router | integer | -| host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | -| host.adapter.wins_server | The WINS Server attached to this adapter | ip | -| host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | keyword | -| input.type | Input Type. | keyword | -| log.offset | Log Offset. | long | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Software Inventory Information - -The TYCHON script scans an endpoint's Software Inventory and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| package.architecture | Package architecture. | keyword | -| package.cpe | Package Cpe. | keyword | -| package.description | Description of the package. | keyword | -| package.id | Package Id. | keyword | -| package.installed | Time when package was installed. | date | -| package.name | Package name | keyword | -| package.path | Path where the package is installed. | keyword | -| package.publisher | Package Publisher. | keyword | -| package.size | Package size in bytes. | long | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| package.uninstall | Package Uninstall. | text | -| package.version | Package version | keyword | -| package.version_build | Package Version Build. | integer | -| package.version_major | Package Version Major. | integer | -| package.version_minor | Package Version Minor. | integer | -| package.version_release | Package Version Release. | integer | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| benchmark.generated_utc | Benchmark UTC. | date | -| benchmark.hash | Benchmark SHA256 Hash | keyword | -| benchmark.id | Benchmark ID. | keyword | -| benchmark.name | Benchmark Name. | keyword | -| benchmark.title | Benchmark Title. | keyword | -| benchmark.version | Benchmark Version. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | -| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | -| oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | -| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | -| package.description | Description of the package. | keyword | -| package.name | Package name | keyword | -| package.reference | Home page or reference URL of the software in this package, if available. | keyword | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | -| rule.benchmark.title | Benchmark Rule Title. | keyword | -| rule.finding_id | Benchmark Rule Finding Identifier. | 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 | -| rule.oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | -| rule.oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | -| rule.oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | -| rule.result | Benchmark Rule Results. | keyword | -| rule.severity | Benchmark Severity Status. | keyword | -| rule.stig_id | Stig rule id | keyword | -| rule.test_result | Rule Test Result. | keyword | -| rule.title | Benchmark Rule Title. | keyword | -| rule.vulnerability_id | Rule vulnerability id. | keyword | -| rule.weight | Benchmark Rule Weight. | float | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Volume Information - -The TYCHON script scans an endpoint's Volume Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | -| volume.automount | Volume Automount. | boolean | -| volume.block_size | Volume Block Size. | long | -| volume.dirty_bit_set | Volume Dirty Bit Set. | boolean | -| volume.dos_device_path | Volume Dos Device Path. | text | -| volume.drive.letter | Volume Drive Letter. | keyword | -| volume.drive.type | Volume Drive Type. | keyword | -| volume.file_system | Volume File System. | keyword | -| volume.freespace | Volume Freespace. | long | -| volume.id | Volume Id. | keyword | -| volume.name | Volume Name. | keyword | -| volume.page_file_present | Volume Page File Present. | boolean | -| volume.percent_full | Volume Percent Full. | float | -| volume.power_management_supported | Volume Power Management Supported. | boolean | -| volume.purpose | Volume Purpose. | keyword | -| volume.serial_number | Volume Serial Number. | keyword | -| volume.size | Volume Size. | long | -| volume.system_volume | Volume System Volume. | boolean | - diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml deleted file mode 100644 index 6ae2964935a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/ecs.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - Direction of the network traffic. - 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: |- - 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: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml deleted file mode 100644 index 6ee09956138..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/fields/fields.yml +++ /dev/null @@ -1,8 +0,0 @@ -- name: destination.hostname - type: keyword -- name: destination.name - type: keyword -- name: network.interface - type: keyword -- name: network.state - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml deleted file mode 100644 index a64352df2a2..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/ecs.yml +++ /dev/null @@ -1,171 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml deleted file mode 100644 index eb728cc9162..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/fields/fields.yml +++ /dev/null @@ -1,18 +0,0 @@ -- name: host.cpu.caption - type: text -- name: host.cpu.clockspeed - type: long -- name: host.cpu.family - type: keyword -- name: host.cpu.manufacturer - type: keyword -- name: host.cpu.name - type: keyword -- name: host.cpu.number_of_cores - type: integer -- name: host.cpu.number_of_logical_processors - type: integer -- name: host.cpu.speed - type: long -- name: host.cpu.virtualization_firmware_enabled - type: boolean diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml deleted file mode 100644 index 6c11d28d2de..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cpu/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_cpu-* -dest: - index: tychon_cpu -frequency: 1h -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint cpu information from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml deleted file mode 100644 index e5104b41dff..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/fields/fields.yml +++ /dev/null @@ -1,70 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml deleted file mode 100644 index ec804d02a8e..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_linux/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - host.os.type: "linux" - - match_phrase: - event.kind: "state" -dest: - index: tychon_cve-linux -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.6 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what LINUX based vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml deleted file mode 100644 index cbb6a586d8b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2019/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2019 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2019_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml deleted file mode 100644 index eb95307c81f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2020/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2020 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2020_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2020 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml deleted file mode 100644 index 03456181e79..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2021/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2021 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2021_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2021 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml deleted file mode 100644 index bf43689b263..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2022/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2022 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2022_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml deleted file mode 100644 index e62c372c8bc..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_2023/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2023 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2023_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml deleted file mode 100644 index 66a2714ad27..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml +++ /dev/null @@ -1,150 +0,0 @@ -- description: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: |- - The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) - This field must be an array. - name: vulnerability.category - type: keyword -- description: The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) - name: vulnerability.classification - type: keyword -- description: The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) - multi_fields: - - name: text - type: match_only_text - name: vulnerability.description - type: keyword -- description: The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) - name: vulnerability.enumeration - type: keyword -- description: The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] - name: vulnerability.id - type: keyword -- description: A resource that provides additional information, context, and mitigations for the identified vulnerability. - name: vulnerability.reference - type: keyword -- description: The name of the vulnerability scanner vendor. - name: vulnerability.scanner.vendor - type: keyword -- description: |- - The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. - CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) - name: vulnerability.score.version - type: keyword -- 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/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml deleted file mode 100644 index 5d561c71eb3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/cve_windows_20xx/transform.yml +++ /dev/null @@ -1,27 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match: - host.os.family: "windows" - - range: - vulnerability.year: - lte: 2018 -dest: - index: tychon_cve-20xx_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml deleted file mode 100644 index d8694a52211..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/ecs.yml +++ /dev/null @@ -1,124 +0,0 @@ -- description: Description of the package. - name: package.description - type: keyword -- description: Package name - name: package.name - type: keyword -- description: Home page or reference URL of the software in this package, if available. - name: package.reference - type: keyword -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: |- - Additional information about the build version of the installed package. - For example use the commit SHA of a non-released package. - name: package.build_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: |- - 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.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: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml deleted file mode 100644 index 4b80ceabc31..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/fields/fields.yml +++ /dev/null @@ -1,109 +0,0 @@ -- name: id - description: TYCHON Unique Idnentifier of the Common Vulnerabilities and Exposures Result for the Endpoint. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Current Scanner Script Duration. - type: long - - name: current_time - description: Current Script datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: windows_defender - group: 2 - type: group - fields: - - name: service - type: group - fields: - - name: behavior_monitor.status - description: Windows Defender Behavior Monitor Status. - type: keyword - - name: ioav_protection.status - description: Windows Defender iOffice Antivirus Protection Status. - type: keyword - - name: on_access_protection.status - description: Windows Defender On Access Protection Status. - type: keyword - - name: real_time_protection.status - description: Windows Defender Real-time Procection Status. - type: keyword - - name: antimalware - type: group - fields: - - name: engine_version - description: Windows Defender Antimalware Engine Version. - type: keyword - - name: product_version - description: Windows Defender Antimalware Product Version. - type: keyword - - name: signature_version - description: Windows Defender Antimalware Signature Version. - type: keyword - - name: status - description: Windows Defender Antimalware Status. - type: keyword - - name: antispyware - type: group - fields: - - name: signature_version - description: Windows Defender Antispyware Signature Version. - type: keyword - - name: status - description: Windows Defender Antispyware Status. - type: keyword - - name: antivirus - type: group - fields: - - name: full_scan.signature_version - description: Windows Defender Antivirus Full Scan Version. - type: keyword - - name: quick_scan.signature_version - description: Windows Defender Antivirus Signature Version. - type: keyword - - name: status - description: Windows Defender Antivirus Status. - type: keyword - - name: nis - type: group - fields: - - name: engine_version - description: Windows Defender Network Inspection System Engine Version. - type: keyword - - name: signature_version - description: Windows Defender Network Inspection System Signature Version. - type: keyword - - name: status - description: Windows Defender Network Inspection System Status. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: host.epp.product - description: Epp products installed - type: keyword -- name: host.trellix.product - description: trellix products installed - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml deleted file mode 100644 index ea7835e54d6..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/epp/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_epp-* -dest: - index: tychon_epp -frequency: 1h -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint protetction status information from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml deleted file mode 100644 index 6d22b8685c5..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/ecs.yml +++ /dev/null @@ -1,227 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: |- - 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: Absolute path to the process executable. - multi_fields: - - name: text - type: match_only_text - name: process.executable - type: keyword -- description: SHA1 hash. - name: process.hash.sha1 - 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: Short name or login of the user. - multi_fields: - - name: text - type: match_only_text - name: process.user.name - type: keyword -- description: |- - Name of the service data is collected from. - The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. - In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. - name: service.name - type: keyword -- description: Current state of the service. - name: service.state - 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 -- name: error.message - type: match_only_text -- name: event.ingested - type: date -- name: process.start - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml deleted file mode 100644 index 0d2e4aef412..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/fields/fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: service.description - type: keyword -- name: service.display_name - type: keyword -- name: source.port - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml deleted file mode 100644 index 8c4cdb5c5d4..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/exposed_service/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_exposedservice-* -dest: - index: tychon_exposedservice -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml deleted file mode 100644 index a64352df2a2..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/ecs.yml +++ /dev/null @@ -1,171 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml deleted file mode 100644 index 89116cfd6ac..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/fields/fields.yml +++ /dev/null @@ -1,50 +0,0 @@ -- name: disk.adapter.serial_number - type: keyword -- name: disk.boot_from - type: boolean -- name: disk.bus_type - type: keyword -- name: disk.clustered - type: boolean -- name: disk.firmware.version - type: keyword -- name: disk.firmware_version - type: keyword -- name: disk.guid - type: keyword -- name: disk.health_status - type: keyword -- name: disk.highly_available - type: boolean -- name: disk.is_boot - type: boolean -- name: disk.location.adapter - type: integer -- name: disk.location.bus - type: integer -- name: disk.location.device - type: integer -- name: disk.location.function - type: integer -- name: disk.manufacturer - type: keyword -- name: disk.model - type: keyword -- name: disk.name - type: keyword -- name: disk.number - type: integer -- name: disk.number_of_partitions - type: integer -- name: disk.offline - type: boolean -- name: disk.operational_status - type: keyword -- name: disk.partition_style - type: keyword -- name: disk.serial_number - type: keyword -- name: disk.size - type: long -- name: disk.system - type: boolean diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml deleted file mode 100644 index 8a784cee365..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hard_drive/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_harddrive-* -dest: - index: tychon_harddrive -frequency: 1h -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint hard-drive information from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml deleted file mode 100644 index 5455a3fc6ac..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/ecs.yml +++ /dev/null @@ -1,177 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_keyword -- description: "The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. \nOn iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application.\nFor GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user." - name: device.id - type: keyword -- description: The vendor name of the device manufacturer. - name: device.manufacturer - 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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml deleted file mode 100644 index ff33e64dbab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/fields/fields.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: device.class - type: keyword -- name: device.description - type: keyword -- name: device.friendly_name - type: keyword -- name: device.name - type: keyword -- name: device.present - type: boolean -- name: device.status - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml deleted file mode 100644 index b566fbe7a19..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/hardware/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_hardware-* -dest: - index: tychon_hardware -frequency: 1m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint hardware information from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml deleted file mode 100644 index 96435a90eb2..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/ecs.yml +++ /dev/null @@ -1,81 +0,0 @@ -- 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 field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: Operating system version as a raw string. - name: host.os.version - type: keyword -- 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml deleted file mode 100644 index 8a8e8a28231..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/fields/fields.yml +++ /dev/null @@ -1,72 +0,0 @@ -- name: event.deviceguard.basevirtualizationsupport.available - type: boolean -- name: event.deviceguard.credentialguard.enabled - type: boolean -- name: event.deviceguard.credentialguard.running - type: boolean -- name: event.deviceguard.dmaprotection.available - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.enabled - type: boolean -- name: event.deviceguard.hypervisorenforcedcodeint.running - type: boolean -- name: event.deviceguard.secureboot.available - type: boolean -- name: event.deviceguard.securememoverwrite.available - type: boolean -- name: event.deviceguard.smmsecuritymigrations.available - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.enabled - type: boolean -- name: event.deviceguard.systemguardsecurelaunch.running - type: boolean -- name: event.deviceguard.ueficodereadonly.available - type: boolean -- name: event.deviceguard.usermodecodeintegrity.policyenforcement - type: keyword -- name: event.deviceguard.version - type: keyword -- name: event.deviceguard.virtualizationbasedsecurity.status - type: keyword -- name: event.ufi.enabled - type: boolean -- name: host.cpu.caption - type: keyword -- name: host.cpu.count - type: integer -- name: host.memory.size - type: long -- name: host.motherboard.chipset - type: keyword -- name: host.motherboard.serial_number - type: keyword -- name: host.os.edition - type: keyword -- name: host.os.vendor - type: keyword -- name: host.security.antivirus.exists - type: boolean -- name: host.security.antivirus.name - type: keyword -- name: host.security.antivirus.state - type: keyword -- name: host.security.antivirus.status - type: keyword -- name: host.tpm.compliant - type: boolean -- name: host.tpm.digest.id - type: keyword -- name: host.tpm.present - type: boolean -- name: host.tpm.version - type: keyword -- name: host.virtualization_status - type: keyword -- name: tychon.definition.oval - type: date -- name: tychon.definition.stig - type: date -- name: tychon.version.agent - type: version -- name: tychon.version.content - type: version diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml deleted file mode 100644 index 91d194ec972..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/host_info/transform.yml +++ /dev/null @@ -1,19 +0,0 @@ -source: - index: - - logs-tychon.tychon_host-* -dest: - index: tychon_host -frequency: 1h -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint Host/OS information from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml deleted file mode 100644 index 88f4d962f61..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/ecs.yml +++ /dev/null @@ -1,93 +0,0 @@ -- 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 field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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 -- name: error.message - type: match_only_text -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - type: keyword -- name: event.ingested - type: date -- 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - 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: Operating system version as a raw string. - name: host.os.version - type: keyword -- 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml deleted file mode 100644 index 5a69e18c631..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/fields/fields.yml +++ /dev/null @@ -1,58 +0,0 @@ -- name: host.adapter.alias - type: keyword -- name: host.adapter.description - type: text -- name: host.adapter.dhcp.enabled - type: boolean -- name: host.adapter.dhcp.lease_expires - type: date -- name: host.adapter.dhcp.lease_obtained - type: date -- name: host.adapter.dhcp.server - type: ip -- name: host.adapter.domain - type: keyword -- name: host.adapter.driver.date - type: date -- name: host.adapter.driver.description - type: text -- name: host.adapter.driver.file_name - type: keyword -- name: host.adapter.driver.name - type: keyword -- name: host.adapter.driver.provider - type: keyword -- name: host.adapter.driver.version - type: keyword -- name: host.adapter.gateway - type: ip -- name: host.adapter.id - type: keyword -- name: host.adapter.ip - type: ip -- name: host.adapter.ip_filter.enabled - type: boolean -- name: host.adapter.wins_server - type: keyword -- name: host.adapter.link_speed - type: long -- name: host.adapter.mac - type: keyword -- name: host.adapter.media.connection_state - type: keyword -- name: host.adapter.media.type - type: keyword -- name: host.adapter.mtu - type: integer -- name: host.adapter.ndis.version - type: keyword -- name: host.adapter.subnet_bit - type: integer -- name: host.adapter.virtual - type: boolean -- name: host.adapter.vlan.id - type: keyword -- name: host.adapter.wifi.enabled - type: boolean -- name: host.adapter.wifi.signal_percent - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml deleted file mode 100644 index 71e2648cddd..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/network_adapter/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_networkadapter-* - query: - bool: - must: - - exists: - field: "host.adapter.ip" - - match_phrase: - event.kind: "state" -dest: - index: tychon_networkadapter -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.5 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of endpoint Network Adapter Card information from TYCHON endpoints. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml deleted file mode 100644 index e508675861b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/ecs.yml +++ /dev/null @@ -1,198 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: Package architecture. - name: package.architecture - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Time when package was installed. - ignore_malformed: true - name: package.installed - type: date -- description: Package name - name: package.name - type: keyword -- description: Path where the package is installed. - name: package.path - type: keyword -- description: Package size in bytes. - name: package.size - type: long -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: Package version - name: package.version - type: keyword -- description: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml deleted file mode 100644 index fec6c53f2e3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/fields/fields.yml +++ /dev/null @@ -1,16 +0,0 @@ -- name: package.uninstall - type: text -- name: package.cpe - type: keyword -- name: package.id - type: keyword -- name: package.publisher - type: keyword -- name: package.version_build - type: integer -- name: package.version_major - type: integer -- name: package.version_minor - type: integer -- name: package.version_release - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml deleted file mode 100644 index 9bdd04203fa..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_installer/transform.yml +++ /dev/null @@ -1,24 +0,0 @@ -source: - index: - - logs-tychon.tychon_softwareinventory-* - query: - bool: - must: - - match_phrase: - package.type: "installer" -dest: - index: tychon_softwareinventory-installer -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml deleted file mode 100644 index e508675861b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/ecs.yml +++ /dev/null @@ -1,198 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: Package architecture. - name: package.architecture - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Time when package was installed. - ignore_malformed: true - name: package.installed - type: date -- description: Package name - name: package.name - type: keyword -- description: Path where the package is installed. - name: package.path - type: keyword -- description: Package size in bytes. - name: package.size - type: long -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: Package version - name: package.version - type: keyword -- description: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml deleted file mode 100644 index fec6c53f2e3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/fields/fields.yml +++ /dev/null @@ -1,16 +0,0 @@ -- name: package.uninstall - type: text -- name: package.cpe - type: keyword -- name: package.id - type: keyword -- name: package.publisher - type: keyword -- name: package.version_build - type: integer -- name: package.version_major - type: integer -- name: package.version_minor - type: integer -- name: package.version_release - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml deleted file mode 100644 index ceef8eeaae3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_rpm/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_softwareinventory-* - query: - bool: - must: - - match_phrase: - package.type: "rpm" - - match_phrase: - event.kind: "state" -dest: - index: tychon_softwareinventory-rpm -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.5 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml deleted file mode 100644 index e508675861b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/ecs.yml +++ /dev/null @@ -1,198 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: Package architecture. - name: package.architecture - type: keyword -- description: Description of the package. - name: package.description - type: keyword -- description: Time when package was installed. - ignore_malformed: true - name: package.installed - type: date -- description: Package name - name: package.name - type: keyword -- description: Path where the package is installed. - name: package.path - type: keyword -- description: Package size in bytes. - name: package.size - type: long -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: Package version - name: package.version - type: keyword -- description: List of keywords used to tag each event. - name: tags - type: keyword -- name: error.message - type: match_only_text -- name: event.ingested - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml deleted file mode 100644 index fec6c53f2e3..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/fields/fields.yml +++ /dev/null @@ -1,16 +0,0 @@ -- name: package.uninstall - type: text -- name: package.cpe - type: keyword -- name: package.id - type: keyword -- name: package.publisher - type: keyword -- name: package.version_build - type: integer -- name: package.version_major - type: integer -- name: package.version_minor - type: integer -- name: package.version_release - type: integer diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml deleted file mode 100644 index d985ad3617b..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/software_inventory_store/transform.yml +++ /dev/null @@ -1,24 +0,0 @@ -source: - index: - - logs-tychon.tychon_softwareinventory-* - query: - bool: - must: - - match_phrase: - package.type: "store" -dest: - index: tychon_softwareinventory-store -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what ports are currently open an endpoint from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml deleted file mode 100644 index 1554030423f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/ecs.yml +++ /dev/null @@ -1,127 +0,0 @@ -- description: Description of the package. - name: package.description - type: keyword -- description: Package name - name: package.name - type: keyword -- description: Home page or reference URL of the software in this package, if available. - name: package.reference - type: keyword -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: |- - Additional information about the build version of the installed package. - For example use the commit SHA of a non-released package. - name: package.build_version - type: keyword -- description: The name of the rule or signature generating the event. - name: rule.name - 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: |- - 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.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: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml deleted file mode 100644 index 864e77b3f8f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/fields/fields.yml +++ /dev/null @@ -1,126 +0,0 @@ -- name: id - description: Tychon Unique Stig Id. - type: keyword -- name: benchmark - type: group - fields: - - name: guid - description: Benchmark GUID. - type: keyword - - name: generated_utc - description: Benchmark UTC. - type: keyword - - name: hash - description: Benchmark SHA256 Hash - type: keyword - - name: name - description: Benchmark Name. - type: keyword - - name: title - description: Benchmark Title. - type: keyword - - name: version - description: Benchmark Version. - type: keyword - - name: list - description: Benchmark Summary Name List. - type: keyword - - name: count - description: Benchmark Summary Name List Item Count. - type: long -- name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. - type: keyword -- name: rule - type: group - fields: - - name: id - description: Benchmark Rule Identifier. - type: keyword - - name: finding_id - description: Benchmark Rule Finding Identifier. - type: keyword - - name: result - description: Benchmark Rule Results. - type: keyword - - name: severity - description: Benchmark Severity Status. - type: keyword - - name: stig_id - description: Stig rule id - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: vulnerability_id - description: Rule vulnerability id. - type: keyword - - name: weight - description: Benchmark Rule Weight. - type: float - - name: benchmark - type: group - fields: - - name: guid - description: Benchmark Rule GUID. - type: keyword - - name: profile.id - description: Benchmark Rule Profile Identifier. - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Reference Identifier. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml deleted file mode 100644 index ece5e59e8b9..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig/transform.yml +++ /dev/null @@ -1,24 +0,0 @@ -source: - index: - - logs-tychon.tychon_stig-* - query: - bool: - must: - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_stig-windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows STIG SCAP results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml deleted file mode 100644 index 1554030423f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/ecs.yml +++ /dev/null @@ -1,127 +0,0 @@ -- description: Description of the package. - name: package.description - type: keyword -- description: Package name - name: package.name - type: keyword -- description: Home page or reference URL of the software in this package, if available. - name: package.reference - type: keyword -- description: |- - Type of package. - This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. - name: package.type - type: keyword -- description: |- - Additional information about the build version of the installed package. - For example use the commit SHA of a non-released package. - name: package.build_version - type: keyword -- description: The name of the rule or signature generating the event. - name: rule.name - 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: |- - 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.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: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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: |- - 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: Error message. - name: error.message - type: match_only_text -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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 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: List of keywords used to tag each event. - name: tags - type: keyword -- description: Operating system architecture. - name: host.architecture - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml deleted file mode 100644 index 864e77b3f8f..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/fields/fields.yml +++ /dev/null @@ -1,126 +0,0 @@ -- name: id - description: Tychon Unique Stig Id. - type: keyword -- name: benchmark - type: group - fields: - - name: guid - description: Benchmark GUID. - type: keyword - - name: generated_utc - description: Benchmark UTC. - type: keyword - - name: hash - description: Benchmark SHA256 Hash - type: keyword - - name: name - description: Benchmark Name. - type: keyword - - name: title - description: Benchmark Title. - type: keyword - - name: version - description: Benchmark Version. - type: keyword - - name: list - description: Benchmark Summary Name List. - type: keyword - - name: count - description: Benchmark Summary Name List Item Count. - type: long -- name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Rule Reference Identifier. - type: keyword -- name: rule - type: group - fields: - - name: id - description: Benchmark Rule Identifier. - type: keyword - - name: finding_id - description: Benchmark Rule Finding Identifier. - type: keyword - - name: result - description: Benchmark Rule Results. - type: keyword - - name: severity - description: Benchmark Severity Status. - type: keyword - - name: stig_id - description: Stig rule id - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: vulnerability_id - description: Rule vulnerability id. - type: keyword - - name: weight - description: Benchmark Rule Weight. - type: float - - name: benchmark - type: group - fields: - - name: guid - description: Benchmark Rule GUID. - type: keyword - - name: profile.id - description: Benchmark Rule Profile Identifier. - type: keyword - - name: title - description: Benchmark Rule Title. - type: keyword - - name: oval - type: group - fields: - - name: id - description: Open Vulnerabilities and Assessment Language Identifier. - type: keyword - - name: class - description: Open Vulnerabilities and Assessment Language Class. - type: keyword - - name: refid - description: Open Vulnerabilities and Assessment Language Reference Identifier. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: long - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml deleted file mode 100644 index fa423d73d67..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/stig_linux/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_stig-* - query: - bool: - must: - - match_phrase: - host.os.type: "linux" - - match_phrase: - event.kind: "state" -dest: - index: tychon_stig-linux -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.5 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows STIG SCAP results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml deleted file mode 100644 index 2f024c089ab..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/agent.yml +++ /dev/null @@ -1,110 +0,0 @@ -- name: id - description: TYCHON unique document identifier. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: tychon - type: group - fields: - - name: id - description: TYCHON unique host identifier. - type: keyword -- 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: biossn - description: Host BIOS Serial Number. - type: keyword - - name: ipv4 - description: Host IPv4 addresses. - type: ip - - name: ipv6 - description: Host IPv6 addresses. - type: keyword - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml deleted file mode 100644 index b1abf837fb0..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/base-fields.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml deleted file mode 100644 index 86eac72ef18..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/ecs.yml +++ /dev/null @@ -1,171 +0,0 @@ -- 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: |- - Ephemeral identifier of this agent (if one exists). - This id normally changes across restarts, but `agent.id` does not. - name: agent.ephemeral_id - type: keyword -- description: |- - Unique identifier of this agent (if one exists). - Example: For Beats this would be beat.id. - name: agent.id - type: keyword -- description: |- - Custom name of the agent. - This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. - name: agent.name - type: keyword -- description: |- - Type of the agent. - The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - name: agent.type - type: keyword -- description: Version of the agent. - name: agent.version - type: keyword -- description: |- - The field can contain anything that makes sense to signify the source of the data. - Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. - Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.dataset - type: constant_keyword -- description: |- - A user defined namespace. Namespaces are useful to allow grouping of data. - Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. - Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: - * Must not contain `-` - * No longer than 100 characters - name: data_stream.namespace - type: constant_keyword -- description: |- - An overarching type for the data stream. - Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. - name: data_stream.type - type: constant_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 -- name: error.message - type: match_only_text -- description: |- - Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. - For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. - If no validation is performed then the field should be omitted. - The allowed values are: - `verified` - The `agent.id` field value matches expected value obtained from auth metadata. - `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. - `missing` - There was no `agent.id` field in the event to validate. - `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. - name: event.agent_id_status - 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 -- 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: |- - 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: Operating system architecture. - name: host.architecture - 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: |- - 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: |- - 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 - pattern: ^[A-F0-9]{2}(-[A-F0-9]{2}){5,}$ - type: keyword -- description: |- - Name of the host. - It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. - name: host.name - type: keyword -- description: OS family (such as redhat, debian, freebsd, windows). - name: host.os.family - type: keyword -- description: Operating system kernel version as a raw string. - name: host.os.kernel - type: keyword -- description: Operating system name, without the version. - multi_fields: - - name: text - type: match_only_text - name: host.os.name - type: keyword -- description: Operating system platform (such centos, ubuntu, windows). - name: host.os.platform - type: keyword -- description: |- - Use the `os.type` field to categorize the operating system into one of the broad commercial families. - If the OS you're dealing with is not listed as an expected value, 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: |- - 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: host.type - type: keyword -- description: Seconds the host has been up. - name: host.uptime - type: long -- 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: List of keywords used to tag each event. - name: tags - type: keyword diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml deleted file mode 100644 index 510274e1fba..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/fields/fields.yml +++ /dev/null @@ -1,34 +0,0 @@ -- name: volume.automount - type: boolean -- name: volume.block_size - type: long -- name: volume.dirty_bit_set - type: boolean -- name: volume.dos_device_path - type: text -- name: volume.drive.letter - type: keyword -- name: volume.drive.type - type: keyword -- name: volume.file_system - type: keyword -- name: volume.freespace - type: long -- name: volume.id - type: keyword -- name: volume.name - type: keyword -- name: volume.page_file_present - type: boolean -- name: volume.percent_full - type: float -- name: volume.power_management_supported - type: boolean -- name: volume.purpose - type: keyword -- name: volume.serial_number - type: keyword -- name: volume.size - type: long -- name: volume.system_volume - type: boolean diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml b/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml deleted file mode 100644 index bb49ae41b36..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/volume/transform.yml +++ /dev/null @@ -1,24 +0,0 @@ -source: - index: - - logs-tychon.tychon_volume-* - query: - bool: - must: - - match_phrase: - event.kind: "state" -dest: - index: tychon_volume -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.4 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what volumes are currently on a device from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png b/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_1.png deleted file mode 100644 index cdd181eb9c2dc74ba25de4d8242adcb0f0829f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201501 zcmb@tWmH_t)-FtfB{;#|f?KfQ5TJ2)hhTx=?$8MYZ6sK5cXxLWO@I(w8*kiQZ?pIN z?tSk0dB3m5VD#!@b*);ns-`^8oM9?T( }C~$Ca=&~{ZH8?orFgQ4bcdw9OJ=Y0V z8?cWTE^5-^a22DZJFqVZmST!xaB$VpsP`s_u@|6+WtAf+JOMa(IuhFwKm&1$4u`?ljywb_(fY9gW z+&?;sVPury=;rn{AwNMN5!QFA=PbubO-+rBiyQIn8-g1f_H)}r3hV%!olT^J_ryU$Ju4c#8X%4}Y%eI7S7lw3Ju`t2o~ zK9U2*HmF48vTAx@MXU_j{osKBSpG<&$I8rt0~=uctk5Lzme2kEn}8(jfj5zv?avR^ zz?y6I?8;SxZ;G#o5U-&9Xkim=t|(+mb4Yc1iTCZALfY3nw8j0BoLS~xycC~7_YW!w zue}%uU-9IVHYP5R8=2OC$Jt9f2XQp09#IY$+87)KFfd3(u+qk1Ei!U$A>JIt3DWvYb=wazZ=9Fk;XF_og3QAn#nswbaNS}?uI>Prx_ z?6YqiU1hXp;L6J3*azXhEzgIv9MG8#j<)Z{wsG9Idwh>i`?j*;vr7sSE_DulXrsYu}|U2iv$IM%Dw z{(UxexP7eV!)>L4i78G_7_qZiFNepx(&_-sQa&;QU#ThI`&=`i5U@q`^#Pg<@}SG@ zcf}LY@(7`lE4=jkq=qZ|x)@jNWLi+dPsNWT*c22F8sSx{g>Zwrw5tc?`AS4u4E7}R z^)|Um!Vd#c}LJN~gJk8%6NnnI&kP1il>PmLs3^RMCBZ~OS0M!Z2Z}>Z-)D!0u=C};S8JkaEA*t-P2^sZ`mUMSS+v-gHHwcrx-sS` z2`}J3HX+lihI7v7T*A(epGs)@ftIlxl&j-db z7!+V$9teK@{>bBhjj=r`sY>w z2$wN{$^jj)E``4FyU4`vMk3j2`F1>4$E}oGF_rs=W`{nv4bzN=2YdL>5X_j^*ofPU zU8X@h+9xsRhgmaq|rc zH^yiA2uCaMcrh+JlL>yp#eb+nXuY}*%$1H_@9GA|q@_jhE^pIx4sZ2+d%Zqh3oZ5B z$xmF_TX=D>P_O3RX{?qb>OA~$S~s@-b~tCD$nc^~&0(zmB-L&}O$`bjJSDO zU$#lMF%_vdC#GSAgm_ezs1t26$lQ-_$0Yeqkj2>JeYb^%I)<$ArK+Jx#@ecInBb9; z#ZK{X2{;up`FrspX70~?91YcW+}s~xc`$e0Pq}$!9%`(UG0^Q z0=sb{hY2Uxbv%4>xBlMbv>xnv(%<0R>H=k7`Lx2?Y>1fuTdPu!?M~Bv+<<@*Kd`CG zez7SmBnI>3YFAV>2jHYjlPi5y;q2KgFYWu(8|_R%GV_2)vPr>pOIJunhHAD`3F0^& zc`UxOnP|bYo+$}S0G7w>VZr1#el|3TIdz0a#FF{}e7~f99z*jerd}(>v-qm1cyz?5 zREyQ=v`_X|G8e%@gI#YFnV{p|G;5lOAJWtPS@hfs(`=n;(;~fkCZ$Y)2Logpzqa8V zm&DN~rw0LYp`V5jfLAr93tqf4RZf7s?|Xd4wFp6vz?F4%{L+~+^~4XC%-W@&(C^#b z;YTwBD@RAd#Z3Rw%A4ig4r_b-ke}e>ON`5F+g$=qzO?xGw@={&r}CcoiC@=&mt@}| z{EbJm`S$6&;e3L_N2O~X8_y2kjS zlHj@FeJ#AC5*kGeT1xwvKRWvB4|v`R()Vnp-?uKGwL$y`7hdQtbX4GY5uc?jN>Ap0 zE;8K3XJK(YldOC6)WM7poOs9_J;hUg)~V7A-|py38&2#v`DiQ390je%^uQ0 z19kIjj!S!*{(WU(XD%oxm?r3lP}}(^_5R5=v^EaM-?#x`e4Jx@$ssH4>Y>p^rPW>W z+-IE?A?aG|urLVHqkAJQUpWI&f#&f$ox@Gvw_{9L`qCB-MvybwZ~z-W#`sQL++MT+ z1;0LP#0;gJBcgFg1l1aCPbN^eM9E^R(Sx1k$t+(WL0C2J8obGTZF6Dm7ByO0*%koS zWHP%wA3GVBrl69&8I&pJ%r`N!3j`6ce;lV?8jcD?LI*?=^O#RaHy$mDQ6VF<=(Zt< zb$=GE6XX|Ue7g2VU0$}xRvf23HF^7kg=i9Y5 zSS`0T*Ob@WN-~~z!wZE+O78s0x6t!AT8^x@nHl0H6cF_zCfz?!sVho7#he#z^1dkP zzQ=X2#KGP~9&bCJsr~db@h~vpXy|dH<9^r1cDAULhsD1an|-)V_}p)?jfeqCWV-ve zGnOHm6T5v!BV{%#2(uEQs_xkrCN6^*to!V==xg$>eA8aVVOGY{sYR*kQ5b0u*v)cc>H-u2w8|~A`EpdMQ(e%N>-k*=Qy1l{Z2|$3ZSx;XW zOkHq)6Y_-f@ZfEZq{{gWB{25I_PKfpRHg9!VlkYU?YzmvpkBb;;<^)1s{OF(>qKr5 z-}ajVGBiX)GVRb+q)M?;a(Wc}X(W|uX4U=F<8P5M{t%C;OAcAw*6#(NkZ~ zmgZ%LW~o-(Ug#N)1LxitJBtvh|I+;iXAIJKU8&5%KqSd{vkSdJi>vGw^#0~70jQ8D z6-O7j*#dLS#kgsfF8fE5?sr^oT9rWrMhfUyyr2KbbmX}l%)7qq!>>H0{)55w%oeCa(Zg0> zbg=zDA=>JnOY3IJ9TzRVwpe$k=2J6F3M+otV34uJA^Ikc{n>bOfiCT<#Q0v4MP>w_ zwq=={2cQ;toG@t?J(2l9{At9f$wX7nP%u*KW{mKt#$v-*qI-J5Bfz}ycR&YY`!9k( zE4mih_2BKrA%ch7jwq%CrW}>*ItpETNHg;S%G2)f4j3}MySRw+z}?!6*M9=riQCV% z3j1{i*ki(Z(|58s!n@-S*-QmQrSMei=L4252{+R&m0E0^s=`f3cw-|b`L`f2aehy} zd?Gdl0sY{FpvR+76ghu*6qzrF^`y+rgWh>DP3Tr^1v0`*JM8tj+CKh!f5N&qHC8NnX+T$ZEYo%KQGj{^}zRdqGutKvb9x06Kt zqGu=TYo<;|%fkHRuz4m@OKy06T0{Kfxe0lbF6bs+X(Vj&`7@$2yK*xNBme6w3Goe2 zPftEuTf2k@LSQ!!m%10dkW%xjHOL3kh3z7%WJtBO-F{IK!(87F%F!{%Q;C5z>E3Aq zGt4tZiC*j9boL_#GdvwSYn}dFUKZ_YlA`dhYz$5O9s5wH z$H$w`U6dAyEtVCpCZvjWbvsW5+c2l>&)X(uxvUbpx*jd^ zy*~F3&IrfV;gb6M#$@$Ihb5S)toYtLN+vkf>?Mt$4Dt4H0co|5X}6snAcv z@Wuy&$7Ztc+G$;-*_qaD2guIH_ewg7T(gi|*$BE6=YF|QWYFQP3kx~CYf7|BnNqg} z-S6`RLY}R%jAefb4=2__mA^32-JSVPp^#z%cb+oqk_3CPG$hGI$k|FzMa&6mh zhmxKWq@a578f_d6hpQCMx`0AUT0Y{}Z&K%#qXPPJdN+y8q*i8#SFgENUsibTyle>u zw6^Am;|aDIv%PU+fmh|DLOXojt+UWc`e`h=u)<>TEv>{IrYH08yW8B8U1B11l3RQu z?`krUThEu))1M>gMi#QphATe~PajmtTwOl)7BMKKKho~?y23@Vb zY8&s2ZoxM{K;*J6qhVCN8t4dYKiQps4k|U?_4f(&v>pM!sL{4>T#Zb#*TtVna>=TT z+>yF`0>+fm6}r&8eTx8#oXv4Y#HUI$KRRUTuCIYb&0pFt_px_AhRY|iTUrt8wN>pH zYH7P@?+;E)aPeSS+a_qN|0g4^thVtffq`$>4K( zS;kt9b;f|iV?F)-jEe$77)hr(bY!l>xPY4TTHQxb(00B}7inHHQh)qc9b@v9NknlQ z*TAAPM1yqbFoIaL=;eXBqA#&9wmKL|RO8X48W z4u-3EnzFg}oyWZ~eXL%mpJY7?4i$x|M-oAg12NvtL=MLfqUYPon$z}1XEPLpS3`sm z59YB3+OAYnt&k7=k9^b)#;Sug&PAeVQxq&+1veC?3lYkWbhuSKZ%%mXGf5G{5V6S! zMtX&-c$Yd;R7$=h9FLZoDV!cVFJ9p3=X>~h8`_CvE^@{Xl> zeqFEv0>P7BJ3h<qZ5jTCG~ZJ{KN> zQM^K<7r+HlPP21`hGL&sfE>v;P8S3 zWN^l%Q_@O@a5S?sG@*3*;~_7kRDUDg^ze}I2o0{&1S7^75^H&VC-5>Db;yx`vvLk)w|$m(%jJ@ zxwa+$!*gseY?gbc*IWJ%w8T8tUp}$U7u#%yZapAj5`Wn$pI`5WH-r=5!k&UO`@v6F zLcXzgrqDnYGjB!f{Ie4l*|=glcz~7i!iiJNiMitar!eTqA<&QUZ)ma<22FZB23z|( zGwW&iCt{#rXhF?st+TunS()#^cszE9?8?e$L;^5y=xA^gl(+#(Hd$@y@Kj)(z}d^o zWbd%ywVOwS{K|}$wuZFqgmH)Zy95RX)V3ioSuaTer1A<_c>%1t+5|I`9ba5}H0IGa z)A@ffCZ_!ydgM$*#~zC( zx-h+7(zqSxIdj(@9t_x6PBABOSjS5bzLPv7@Y9s zuLz!+iNU)4^hH|uUdt6YZ2OMa$-Tb9w2VW`{*bnyX#G#J$&I5Z>Lnl3T ze8KSp&CFVp+m*l@iQ#PPRgNUCD`dCg&pC73FdQVyHu+CYCWrFao0{T=tgMeP07B}$ zHfzd3Afn^OtP=tzBus zzSz}VJut+lmG`D%Vj|XWJnU+E9k=PV69#utzR+j^G};`#p=4npMaFz&P94XI97yN$ zBL3QFKkOzsF>6YZ+Gr~sNj#-mZHhR%FbC#EQDWTr3rL1)%d)fI2w!+zF}%nB$_t-x zG&GYX`@6`+O@Wnbt0xGx#%s%Ryf)39ItMBycJtScq7H9z!ye7p{0QC786C=ag=M_l zLO2vw&V9*ADx27hi~rWsAHKne8BfybgU4(<>OWk1%5t$ZCYoFV zu6#F8de$H3LMC=F+mb^M`X2=UchbVStGl8?Vd5TT^+yMXkmbq?z+Hu*BQ?`Y_aFGj z;o&+bZShVlQf2y2#qxlVY1OE&W3qDeTmeCFKmHm`N&=4o_sqGv;W zLfiZhsU8QhDUzqHo!wy^fWq?(G`{QV>SjCTBGvfdJZ~D#6dt=@V@A&#C}+^T`0-g( z)H$SbN=j14?RUo~Ct6ULXRqr2=08XaOq(~)M;}`l2^AI9(=GHgvoK|u}rOn(^F zR#*Rcv6jjUpFMR7W%+yHZc2{lANXI0K;fF!pX>G9!v7uo z`6|N(UoSZHzaD}1o>%c%EdMl(FYo>q)c@xm9V@(DzJK2M`C=S+2owyc+LmEB9DG~i z!oZH}QP=%_;1KO^asKbU;}a4Hp@oMiT7?XvRn4EDCHPPCwhkrki|@=BO6h|vw};Vo zH#%La;>M21bR+~JTI0D7P>%ia?96KvxH<`wU~Z+O_NL3rvoiTS6oUW1!^75XiA97z zJ4)5xYb&4+o-K30;p(tRo&QQIOzpZ}jtr&}W7Xt%pmqe8Khf<%hQj@3$VIXMl+?;F_&iDi?Bjf98C#NQg zQ#dM2@tD}0*69COwW5z+1u*p*w$t`~;Q=O$?C99Z;s8Yi@P&{(u4N=3$5H`?j|+L@ zmMZ=G#@MQ2v3pwu%4tI7QOTA5?Tfr;EILoMLuDeNwKTU3O5WME0u~+2m}?g3rhkU) zY9~%kPOhPufu6V|paMnW?upu_mW>@;>>Dg(jCcY?L=zlv~6AJ;bE{T_`^TD z1uzGidfVGQfP#;|8(}#+;m@Wl;W9xUHC?5_xozaC*FOZ6tqANxPp#7&{N=HKZ12Y6 z!E$M@F~~Uq$FYO*v!RN!XkE%m-$NDl?@OaJT}1^^ITxOBH*5{+NV3V(8{3?C;K@f58=$bq>vK$kxTQ@!Ltwyt=8VBi-lNMYc&mvePR z^Vh$mH#%6xtB?dybEwAU&*_tpki4a*?}f2q)6*?3c!}1wwrMrLh#MLjIA?vK_TTp{ z>lJp?s_N?E?__0ucP%d~4e=V@@(?dQ9vmEO*7*w}`ydl#;Ve2#Bfxt&@ivfoWoDr9b`4Jbh_^s2uzBsyDeGrUNnI6#0G zNJ~e%x}SVjWROoyipo6JAhfZj253O|cR3JybHBYk*K@>59YZR1f%A|S+`lhkwN7+b zg_^r=xxZaD^hUE;b_knjq&^-|0+x|ZlLj5QCj89spbl?%JSS^ATi{sqA&eGp(7MiZ z;qm=bOw29I$SEpaSNRQt=Z`6}aw+bnxxa`bJVm8IU{%sLG^nYWMVJYgU+aR2dJNim zX^b4E?bNI1FKv=3A5+pa!W@XWDcYDx1|fKS+y2h&wwkC#uVd?8p6M8Z!LPZYM+B zWgYm1t_woO;W%E*i05#49q^ZtjLU7!+2y4)bU_jwpXz9663U2iM;w@~|sdC8b z*2L9;KmWr+ZARv7g4sen(QmefufT)hb*D9(XKe?`R)+y`!lGLO`I$aUN#yKor(xWb zXh^JF9Cj5sbw!(fiG(nCRJ81i9$O15N1T;^!E>0BPE6@P>Fv-zjf|cBX1?Ec4<{eJ zD5;XiM##9l*yPKO)OqiNOz$8XKM_!L<0YF86g2#<%OdPTkJ3pYzYsz>(BGoZCiHy} zyN?4C5*mN@AVEIFYt%#j*^!YCY49b5>0LjTR~yZX7-!(>j*WS$7~b`n@>_`XPs;Nf)Wj;EF@Jv6&~t-M>@VqpR|N&enf6W{Fm7B99W09R;M6ya zv{otd1Q^-Dp;xlxi|*2IbmThzp%9o2*PQK(H#2xa@>MQH!a~vg!8>_aYNOH0{b6@% z@01ofrts=0=w~8M6e&NOO%&)M>>>R8mFe;h7gX(x)rFWf{;tG!P7TH!b9iP1|0xxH zx~DVJ@-$m{2gAQK{|;gQvQ%SCsvwQYH~4_a^--6n?uN5&X92-hwq@xc<@a58xfcvi zCrG+?Iiv&#K%CecQoA4^9%vKMA8%geti7=yzGD&k#<({+WYOSI*>%-g34Vamj^CD8 zdDSPyrKepwdGv)1by#T*NhqO~MlC5R_ST^jn3tAQFJ)Ftb$5_moQ z*%x+B{^{Z;5_aaIJ#AR?B$bgF^0U$y1L@e#_1f36o@+l{deQbUtg2gKA*z?Cw>$ve)%{axui7?KM=0>*jDEy>_Tgw= z@?>qTROdE@cM&zUf`L(wD5Hg0XF331qIhh~^vZ1l4^@!i?lQ?6X^%|`JU?7H?J8MJ z{eJh)eFDsv-;U!e?8RAEK|E$gN#itPK9y}2sc;x(@q+9*@RFAshzP5%~l zKIhv%uv2aK)?1Y` zX|O9?6cJ$~XV!X%blYp}%9p|3pRFfpbw5fNv2&QMLZnyD_!<&>2#c`S*ZP@XVYJX+ zJ<0G7LY@pFS@k`7hQ_gh<+>pC!qK08#54gRPSsAF<o*?6el_Iq?fh6B`(v21i}~ddb<)#d_!Nxcr!z1FG3?yRPn(N4 z9vkm3c)U97Uo??ryjMze=jdY^#1%8bPQx3-zEOd({a!*G ztl+i5{!VaLd1O7$kEaefq{!O1ln&P$@7r@-x8f+iit3u1$GglG;6)3|Fevf9T1Hkv z$Fm8I0eCYdgaGLb`HgI%lfTjEsk$R=K%akS3ZHWquXd-yBLyvhP#vk8Qi;N%tzGA_(jk0=z@nw=1jq7+tXj?rj3-=<5Bv5ge$C5!=>Z zjozqfQyUp3vMa%tE|=B+{WJ)yUOhMLWB#mMS>{8P9PF1_*GnP&68o4Esj0jV4YH38xFFZObS8O9{R%VaD66k8Ew4d)eM(@f1{uMl)Zz8b)O_lYMd|g<O*1)+xF#x+plBRutX+--2MP&tDS>Tb+PJKe(|-} z$woYwK53+?c#K@T!}9|>Hne*-cu&*ABoBMd*?G0-4QM3{HgwQN1LQD>*HtemrgFR$ z5g%JQ z$_-0i-EuR9CE5^3zqa&gu25N;c->ConQiIE?pmaUCJj$r{jdh_s@bqtQg$a5rv|RB zt7$kselG%EiA%fNgHgJXrUzY zO5D-uMX~^ehzhO3SB@Ts_iv^vmfi+_-@t#ueP`+-#2eAc1P3yQ1sSB_|9$eQUEF-VxV-YwAxAA#l3> z$?=x)Zo0OyHm<%@Qt{yjYs%`@$OocV9`4S7n^O@mBw~ax^f3kaXwj^&XIwgyZ7!>< z!)!tOXQAT&)mcd9Haii7;td0J2epbCDjv)nC?n{ zvOe^eH2r2%0+UwP-BAa+w6wHA%SN>OfnKgJKSeXUYOfYTreup`9T=g;oIJ*H@ht^&RCa17YQZ=SXiDt3 zanDBUEA+U#Bt!Gw^MfV-VZvCfg3-UAo#y~OC*bEa_zmpDo80f#)@+s42BI(9uF}9q zLXV_!Jl1P!Iv2wG(;Z#aLM98!L4pgp_PW|SI&gz8d(68$mN9_7$52^P%>s4^DE4mF z<)$MdS3&jiVH`YBld~As6*}4FPD8;<6jHplgGTRT0~pw{8_|rpoU5Gb-yCcG`JtkS zanbb_gJ^boqOiL#DHjb1G(Wg0Ov;hv#lL?A%-R?sBJHRUly1kz12OK@i}lfU0^IXKp#MJIMG*H`Y?x;J-h7XtvJH>@Aw&e(l zo4xt|J;}DNECW&9_*DF24P(2L8m{y5RBF@o(&{Nrbf81UVD#wB^3t$dPhT%fIX#Du zt0skX`kb8|s%#5=?Vv5#)_RF=q~nP=twk-KG|o=nQ*~}mcql~+{#5bQNK+0uzK?~O z`)rYrT9S;SCc-T9$4e6Hif?)5xHa|P+UpTT9`D|W82MoP-1mNT$Q|~_UbNHfMxS_Z z+&>JV=*=c6a3Iv)e31*x&83SxEdSc!Q5%<(?X?i`B7czTr8$qahD5&H=IZJy8x+sQL&6h~ zXB(iWJc*CTVNiT#|;=O0ma2)d{{psT~-D5KbmG3Di$?MkYjdSdj0Ro*_beyL*24(?|x0IQv<;QaD32K=%o zEEBIQ zV`M6?!;pVlKM!SS*U4`aij`arnhg;8KTyy4zE`~%(XRtTWsIZ7QiN886ZjK(%h=>j zuJFu8(LF8s=?zwx0jqp+R6%+rIr1m%m}TutgC;09owIGZh(+Y0G+D2>+?Ru%-xw`W z|3_~T0W&N~Tsh#Ccd+Q6uHk;M=?vj_9qna?EY`TGr(+3N-02-;VlhtJ6MZDC%y{aF z=Cq^v+0pvD{G*=v?^85?_XAGDi^>?R*^N=agueKG%%J&>%Icnj$$Bc@#ywl7L2u8Y1r^&mmCehT-pnViBGttgiQ;R=y)npqzI)hFOQQ?( zhs_pzdS*zfW~?xm7N-jSx|aKQmuC721ltduo!^y26C_9_qRPyk!``YX5#2(Im6_L? z!v={~wNDYh&Q@lP@T(SjJeipq<=zr^2wU8$>c2&v9(Q8p+2AZ0%Yv-zDGTKY#u0}RR2R58I6O2D zM^tO_645Tx1wB;XXR@R?Em!;T+AqF}7vnbLbf8bkUT(L{EGuVBX_&^jvzp5(M*Fec zdG#Uv?i#?VKW=*#h-|`{#PG5%2dR=WrFEK@i^aNpettH`N_7Tp4|J2mZ)L+%WgGFT zjHHw*HDeo9camkatVx=~pktr?Ob%i4;h}QKiyZ8D;0<>eBJ|yBXKgnemd!ZyrG){0 zoS?FZL(u77`k28;p)`Hg5wYXQ(o>#GbT zNGqmj=O`y7TS0FRO}qs^@HKVqFN@FibLRL&M2t2MnB=pVBPl#TctD5}pSj&L+}%H4 z85!Y-ZR>Isc27?u<%*Dom<=kM^!<$HSU(#&CI1JK&4Gr5;u&B>iKo#KA>UK1Sbgyt zA(I}YHytQIt>HJr#=2jdns*kZ?$XcA1KIlPo@@GWon!AR&V{e@)*fmj$e8iKIP#KL zMiuI6bJN5Gf#l$n61x)I!S*6PBJ%^a*1R%CU*`Rovih61p`S7rMi*%(XhP?!*Y4$T zhxANXgsVFo6qV=VYa8`VV0>W{euHGWT7`_#c#ex5yKe9G`N6AXORwUpbe?6~!@yz^ zwx3&Fl5KK%PTQ4(FlZ?}I3I*Bj*YCp-{z^zhEty+>DcVV&+CTX8v)zeat7j^ori&E zSL^T2GVf+D+-VI|29V3z!YnFpR{EA^NvF2)I9edeA-R`rAm{Ds^A;GM8^322`Iq88 zom$ofPhHh;w!OG_CAs#+`p#>(z6CxO9n0;Gc-TH)!qz?Wa6J3Nuw%*&k@569k&Q6+ zc&&xsQdMph=Xc-2y#3hg^lRA-o~$I z(Zgr=0`zir^i}nF1#@-`RGBp=;YN#Ld{wqFBxAPLLv)#x8%+X2L<CVaP;uam=adK6MbN_zt%3&#VgM?Y74$8j8aw=-Ja(x{$k zAWU!h*TQA`U*_-g&W$R~jQhc|N=XIXQE;Ak(Si3T1oL&DUo_@Oj_11|-&Z+u&?#oH zC3ensL=JsuT3PuReTwJ1;RHC?JqO%GkUSMD?9Em`#qD|dB&sIvYLw}ai!57kd%CslXVv4Kt~Wd*%#n#8w3T zHn}8^fAWM6W*7a6X%L&ZJ!@Zj z@7*<&riRfPy9xIJhnEo=g_3Ct*x|6@@EEk1ykaY{PksVqwpVg9L`tbQcANgDDB`xK zF)BL@!{8B`;z7gdK6LRQ@3GwXc76DiIi4~`J6bvf`swj@_xmkEie86SuQ#JF<!vlp zHKcr$V)>ey`kF7L63ebTDP*X2N(<7OJhp$d$haWYy{%K#i`BEOs$@RC^V5ct9A{y? zNT&f-AR}%b*5xnbIQf(Up9#eDUDgy#AKu!b*m6#R6%=G+#0t+HeurXAmY1_Ac4)@s z?5ngTm?riX6dWWV*EMBHrd-sU@q`sD+!63-Jl#OE%7ho{WNAFTMaV`1NO1md)@IP> z?!%-No>zV)D=`^aprq(yz>G0aa(cGDt`3YPgSQu6;4kU&OIdBpHATXfCivH9ya#m9 z!v=R~ih6KVE@n;mR@RxGQ9@+Vl)V|v?eKec;3<=+WR?E8{J%`%c@rRwN!kizquRcB!0OkQBI^#!9?$GQ)h}5}ynh2eFgw?2Sp9?4N zQ#u8pjHxv#KGqk|zc)IUcD}bMsjKVjEKW8oS}#oIXbs>oz*PRQAo&=o^{36^qol$z z_O}D=+{yZ1XLBH<>n69?L>p5eC7A)AJ^OWQDYPd(0~Nl9ii1YF^V7LoaK9XFKe$^yoaEG_9flK!QB0Ltm~ z*l+Pm2s}Pi_q0rlJ4n6#sn>xh`8cCJCJ`tkUuqUj-+0GpYv!+c3r)BB)DmCI_JQSP zZw`eKQfOEPt9t|g9x&}6q9AnJ%X!tG^l~}$hlCgk7V4PB_v?q)WzSpyqZ^Y)-=(Q& z^J>}qQiTu2)Sn+-dw#TY+>k!D6@e`Q$xO^)USY$T(+LG9Ek4!ps$`AL^6 z3F+Cw+6%krcQ?ITbgpicD|a^f?!~89cqzdW&su~;B|E{k3dsao1 zUIn*r{fR>t!(kL*9j8^S z4>ELC(Q*9S3%e55d~Bq71&aDsBjrTSd}u`zc>JFm;rU)XN?UtaCFFm!A~=)(diwus zPc@$t+lSJqzw#6Qnb)|>=-Q_hvT}SqSRK+&B0Y=$P7P4Tr^?3WWcu}AX$s?KW7KOV z3c-}sT^~698SVK3R+U4|M5iS6jSD%Lh~ckv!G9#`-JzqS(?w19zWd{Uy;Nw1D1P)B z_x~-AaiH9{5*C)p*WLxyESdiJ)hA)F%2JQO-0v`$K|H9;~N? zGQ!wjkbH1L0-l_=K&gwOywW%|6&1E@7$YZy@FV>{^MJ+qO7Bfd(Wc-3sH&~~nqYCM z+7pkAj30VuOg<0;flSxw1SXTI5ugO438Cvv!J z&#HfK>02I}*jkrh3|P?y zon((*+lR0HiCU&CF)2PkIyzRRAs!?^UpmVd>D$B4KmT_%=l||FhW70w1YNi4?}6p8 zdwzygd*T*;H8WY?6GA6^JKFB4NZr$8X5wH8Pe60SV2ytC1 zIGMJ-M4J>K&&W{Ug4dvkuk};FiOITSgJt6kB3i$ZNp8)>O|?7VcLV+vbRS$-TyfeSjJKx$Ny74 zj830TZ2fK%EwO=((x6bvjHh(@+w2|t|y|9LsYsHbto6ws)5os|=k+w#LpT%4l2 zx4jCMgn@1uSiP!%rL-6hFfe_yo8Tnb3MMD~UB<$~$}(ABlNg`&l9yopb5uk`kiP1f z07G;nsMi=+-g~l69}^#sR{kE5R^IEm3Rb1TmdK6uKctWYRo3xjF))Z2)UaPh2`nuQ z6u3BN((7w$!Xo-FNt_ysn{wKgvA{|K{P&N&E@s8nD6SyiU(AQ4m*g11&@krYl=z(f zu&!4M5Z~8^Ha)KG>Kswxz zjs1C$bEP^!D0tvfm#?sNnrrK618!Rt3d5G`5|=ZnHJVL2CR%*QET-v_f?`$nbw-KQqv0ti4 zcpc&Ue^&*x3Y_hj^Emz4V1z9sK_!QvcZbyz`XWYjZ;$_l3b@qi}V@M!KV0GG}D5mD$k(QMX_7Lfi@j&C71&BtUhTIu@)71+4C4H#GR z39(bXP7k++*Z=go&OhC=9l zLv@*F%zDA1)q))Y^D|6H&DPHE8WazsRfii*7r=^58}qMN{c4n>W$xClqpS=J(qp2j zsn=Ib-_DYsGRTq*lK{y(zD7Utg&!v&;MUakym-2EHi|g)jMF;5y-5zZxaHE_L_}OVIwA-p?~H7J#GGVI7sxj}R=bFp z!zIKAu{Rj07M?;NK!*=A6^1LiJ&sPg3^zPZYdXGMz-$5fkVSoy>pqU80t#;pjZZ(M z#*_!M^nYlTIhb9YO1x4j%+OwiHkchWzj9;hBphBJByh7v+{!EsUzH%qZgSQhV4N_f zxabqiREoE_-z*GN6?EkH=fldiKgp9^`E`51cczm5_Ft6&mYxweRmpCmp>wMUjy5WZ zuyEjs1zrUD>#6bs*I}*(r-lV8fESDf^ z^QUg$HTV+Q$uRsQDtN}>ta|3Be}>0h7NeAV(N_m#?%tek))l>3 zd`8AE2|>xLRl!(+sHiu{etC&gxYBSq-kf;!!b?~uD#emNnH->yfWl5O)MXG=QzNov| zmFQj70tA0*FFd8x^sb)I(-Kpwy!~aWwVR68lejck^IpV)`Ay1HKw_CB@fQfa!$2-w zy$aLL`)Rgo>|uA(oH=9 z;7qw{p}*|P>8D?5ox}^6Tw8g#SG?3UcTfP)@7*fTQI`;mg3 z7!w4xeWUPqRR?)Uc)Pb58rd;_}ApLl@d?vjaJJe>4^aGGj|D9FRoN9r2Xu}E+HkqfZ z6tI+URzhRHJj*m6ov3ArMT=w%*2rZ&DeSB=JYJh8Q9|!`B65PILy6TS(4?CvQMR2&oM9fy7^ zdeok zKdgp;<=iwYNDrC}dRXp##HL4>X0Q9i@1{YLy)G7^(}`X4kcHOdmP^|*y=r9F;X1Lc zAN^_QzF3^0D#~>Pgi>3G1KQW-4B#lgbWIf(@Gd zo!%$&7;zH@bX{q_-F8SGA)? z)!w)KnsW7&Mg(8ortk&J@i*hOuMR9Gj834zZ0;ajMi_|ZNZKQ(CGAIIJd6iEI}(+h z{(>-OLzN0FPg0b2+skTXr*6}se~L)=$q-|?w(IF_9T`peUvzxEMSCF&8sjrZ=@B8gx> zpcF&es({HPpBLL`fj5Jzj%(g`O4Fj+mJ3{JWBjUn6RC*9*5nO*u_AOMmQ(>;uC|;| zTM-&Pe*)tk_yxtbPgh{=0^%xR)C&DPfzf8K5SU~PVY3ZhyyhxFZm;rT&(S9dWa+CO z0DL^^i>O~=Z)(N3@C_FYZd}SyJ)m~PXbf0Z5^$8+X3kfVqJw!Je1Sxy2g^{^o%4im zH9A>}XYd9G*IRZ=3ZXr->ohk=u{H1kphCIG{P&JqJ))oPt?Q$b21Rzkm~f@<6Ua9mR<2H#y1lxslim6}&L#Y*-ny!13iet2CUYX~L`wZs4>EM5M&?+F-fUH%_&=&(He#)yavg-s)m)Y?45gaRU`>L|6($vn-r@sUAd{ zErBvH4L@d#m{?XjC2K^FS-t9sVVzD-)tD(xuvYK#7t3lO;s#U&UVvYV`q>ed+T zPzIzgCPv7vSk-(eCP!35>uxb={0uYVZ$54?JmKj$B8Un-YPUyQTVn}J!EX87^__;` z3vm?tM$2(F$xL-u_&irV${e?J*J!)O`P)iI(zj7j3d575m&4eNXR{E7;(+A2+Uf?e zHX3*?z9-yQs~pg+Cc~2*VW}O{qcFd+n0+rs(lFW7nt6en+#}I#44AR94y;YoVeY zYWF<;AY^&&<}qxVz%J89 zNtE^jJ>EIMNYKIa5o?eYF;T;Wcjb$tLb^n*C7 z=C%|vprU*tZn{XX$4zgIJ=i8!`Tp&l=e!sNFEAn_nDYR5)w@5Fvutd4=Z2-t360nJ z(uAn1yHSuH*Y&fmxaQpj)@{>KPdu18d-1RwHIe=AMH|~pQ_<@8W<-AdlL$`>3lE$q z($^L51X=euXO_i*(PO)f}M0&E6nk1-OwhXZ=b_twbOeRmMjz#8gjF}kH>?6^5{6H|j*uNfD1SrgF zbvg1L)pK~QqtKtD8ysYwd|Tm%T@sI5zfiuuQ@-s`CXqO>HSBy{Pz5K!NY$!LZ>362 za#bK5W|;BFakRHAZNr$Fdq+n+(znkaTRf&yDToc%Xg;bGy6WOwQ6yN-F6cLKKD>>m z)5A)tye?G<`kK(j?|n-moj{*IKJ-*aLA6o`8*N(=v+o#i)2!5hx$2f($7krTp~rzD z9NH7BVZYnLZBf|%6@9}&gpG6LtYUj){Y+=yVyTo}$uf>0|Lmxt z+3H-;swXN9v;+yX7k7OXuBB`n%KD($Y*1^bENdNA;twj>-K)Q3O7icv?i76#v+4K)^ zF9m#sn9o{g!mD~|7k~dcywgZ~lpFZk8 zOOfGehNYdupwu82VzB8|H!XkseS*z5A=|4D?9Ry2^&-IaF&-Ru%-{#>@20niMuK;& zu*!Y6dI7tg3FN)=o0G>jn(Ed#(u&|c?KfPzKOeoD@VMBk3LsKmMXglJSd4}mVhznq z?g`9c!??~L(;x}!8skoJJ729f^z=Ke?XTN)$;QOR-9SVH{Mnom^>!b+`xpp#ypdc$ zlK0(C4y11@bi0w0{Aa>iMYVu{#a5%DO4&ob7W}}H%oaZzeGj?jl(8$1j~761U2hL) zZ#wT9d^MD7)smqR&jsch`#@(cFp!Y)=FTsRRWUKBVu`*~oV<>-tECsh{}@Ljb?v(I z<~g7!_~3k)E;0-kyfI41*_3krWI&!eTUkvBf(}=HBNglEy_Sn>S!u^DRB8z9c1cc3 z_apf|F>j%MIVY<@&T;a4b9t0r%is99r%%w4kYIJGWm8=*t4f12GY)e+2&tJ|ZANI~ zYOB=FX&9fK+rOEqIANh9fN^JhbVDZRa6iLEH8(^vpRi3 zI79f=){zX_z>($QV%p(39)I77BG@PN-q7O%uBI1{#!PHZpCvhpl=0-d@a=Ttz~ zOS>8Z8SGD}4OEr4@}}_B4VTa)-GB!n8vUqZ!E*R9;pplYs)Dwz%db4Y4{G*YSy9Cw z?rvrbGL9*k4K(PhwOQha^}#+Q6e|~L(GhZEhy64xFEQ8bAxtgZcqzw4b*c+MK-1g8 z44ZDTP8dbydwfY`xl_~RL9zyJiTCPHbS%^IAYOj5 zhevDdQD3$H=X|4Q#Rxawd8z>^3mgNeezjd6Ly+DaS1sKb97ihAFam&D3zeu8;-zwY z4Ph}I7qzk~xdv|EOXIdFiDzELPuYMUm;Q<*};&BEH# zk8W(qYB%$T)TpJtxa_o{mvl?w9ytvygUvqd@%#-0DjhlzDKm*ZYj2LlpM!`Z6}7dv z?1$*YcxOK>)zF?@fx_9$Dr%yicoJB(cPg_x(K)@$3TwMIBDZ2Ft~V?X&vrW(@)C4^ zv+Ko;aiQRrD}!QOpIBQ0Fn*G{s-JtLF|>wjUo_VnVNH6l8R;`O-z0*s>RbdP60*XH zAg5ut;r7I47DD}%663MAz^JDcc+%q)3qCkK{w6!-W#&jWd+4zR;gkeaCU`$CX|B!^k;X^XBMFvB7GkzOM6Ue4tn>6x5;{;8@U`nRsbn1)-!o)k)DO1y5kl>(_woj)-lF*I zr$>BfETqIi%(nC+w-XYR#644dGAKC>=BMLs^FA{QjnPnGPlGk5vlge58v{WtESv+a z=hW9oQA>}KhjagV>s8}aS?JMoEeHDDAZ&xHo~7ZNNMZqU!#I6$H0K51uMW@_g2qjP zZsYe{t|e0PU5^iZ-wcnZvr?MdCaaB=mRB4R2R4rTGG0lAVMM#6PZ(13UK&DQ2eDgxeF z>UJGhF0NrLTUEn*78geU&TMHKg#%q&^+c_-IJ_|>1$|%4{BXWxJ!|2&mzV;}W0iWI zkdu#>_xmqDvuywv5+Lu#i#)9MAqBDbonoYQB(j%ykcaE>aeQsau zcn#+$=fB!p13Nn-+a2Gc-PxXll6j3^Nhgep$IV1DP$Sz*C-U+nV^gU1Wpp=Qx~M6#kWj6Hh9J$%ql_^^y|;kk0l2Y z>FlkHe=n(`U&tuYf#Kn2$-`qhhHyqz#lrV3I3$6#Q2hbd_QMj#2u~ z0f)&*Uw81eTpnTrGh)j}xj71LV-(t+Lfdo+gvbOYs~K$}`CP^TYlvQ@MNR?-?+%5W zee2mxuQ_VQF%q}4dPx(3xfLl|A#KJXch9;W&B)yJ&1-C?n%xh-0toJ^4zXS>Y2|(o zKlxHY51c8D^qOq)ze#vjo3Av!qRa~=35v~g<6L_`ph0Gq#e1nKYP2zc@O0je=H=s| zGMckY>)>a5`o zy=OPC>nu6laM>QwM@A^BV}AVbkBLzfcR;5uH(c5GMy)WkX+3x`bN{i^=t0P{&O#4uPE@iQmc#GiyB&NGJ>%+>DeeDQ zF*|>0`?jQ$6Ne>bZHVpfQz~|WjP?_wksMkf_(QaZepMqI*|!J<+5Q%GQJ!-t{s3H} zi|(!Gp;^v`!M^xR?-n>hxGqZ9+rk}I&|AaT^+;*Ep5|6~hx zq+)nj1Z`rj?FILLbLUQ7?AZtODuh2HeLGHtiY4rwS#ultk7nSv@mU0KfA{6mi~R2= zHP1uqhv*J8yS^OU#j(4r{h3$)-w!qaoPCy93YHmC7VCazILLG?=kU z_BCaZ_SKEba2MY&)>~$s;TIdRXP>0;IKyUBCV1^LH@*7Y!!Nk|x>h9+f8-itUAv(C zy_7JO_$XZ{jowivQX0`0@bL5g8kSZapJClSPsfy#4aa{1ca}ayVbGfEZ^ErH`gx6v zePfMT$);<4ZDWV?BQ9=Z{qu_vTFo(-=pGf0BTJe5PG|f!PH#U=*Ww}(wP40J9%<_wRcbmT@Yj2P+z8sD{(GkO zZhC*)HsF*NPrLuu6C=z@sqx9HlmDJ;MSsLBXbMUF*X!yom3y>Ap9T3lBG(U8PBR3^_ytWyJRcMgE)K_xK+BzB(Fg`B9O4C&{()Zh-KT=~-bhKV(l|9}3v9k_Q=ER{ZPQw}L^Dw%n-KqBP&2AMEEuG+^ zQq54`{R}i4JKL|Q!Gk6z4XDv0@sRFFJa;O=y#(C75> zObyCOdbB0E+Q4yXed!Xpe|0A&@jbt(aXcXl{b#W{KAR5-ok@o>tw8 zH>`D^GA26-YCJ;TX*5zz93t`T150NAPEV5E&7IP7u_vi8Gdo5KoT)~r@iDpYmX*ae z2a)T9P2xq=iz5DrrfRT9y29)+HT1C3yL zQFd{}#i%co_2^4rB?z|oY#9x{w)kl1NQisc zt^iKldjdo~_woBHz|X907Uym)Y7WeZApEFa5EAJW=y2k!rjT!mg4nII^$Bq&X_)pw z`ej?m{`9orx=34zY!-$(GsQo5o1DkwY?=bWr38ti3I4N5k;9pS)Vw)3b>y>?wTWd$ z+f+~J2fGI^2&W^t@Tc^6KXZ5-4hb2>8>tL(PsH#wZ#3aduP0+W;sgg!GM5#k91K|r zFdR5jY$5PZY!8AaWqzETm8s!!*qfzlDoytU42ct*cS29E!e*Kr_cc)WcnOhmu--`11MKRfoRTXMNwy*CA^J=lj9QXBR%Y!r5go8}5i38`=+Go9;rr)xO20Un@-D zjWI1rzxOUpb-ysS8kcAD*(wvt!*?_N9&Zl6);mnxMPML72c9@z>mgc{W{>G)R;>ua zLqZ_kr^P7M8x|btx>h?he3ZddyictUXw<`>Lg9y zimHfTI=cjU4oU2BZV~t#uRW>1^T>^=k;_O5&K3W<07c4E7`KN{#lF8x?gM5J6uo&-EDK+7`>13er z3SF*XoO;0P36yGJI9J$5lfU)ZS2^Nw#4FscBF^f}8^;$Ndw=qdhBjTX49AX`>K$=cI)wZaLH+Imm-KoKGFr z&XUhyrlY>NP0e1^==qsRRJWtLp|e}WU6AgH58x!V+xv@1& z93z99RtTUgPkVN33p7kC`XGJYN*@Vb%T)1KC16~?DdipzG_P8gTgXXZHaO~o$S*nG zkh5arhN|ECztC z3N*>=N>oy_k_M|gLK4k`@6cV}V2rh+h(%K*gq4lCP3EJLONmGB;H`R^{3jZ&Jf$+^ zI;Ss4gk5l!9v(<~*6s;Gq(p|FVNPAMgO(2N2X<5>RpFw)vJP2I&Ka#Q|jzZlm8nfaO3ppuSL|*rHTwEjqVIO@Jx?l#Gh$Yaz zk=fbV=iXVpw;e$jemdDyh)z}VueHC#JSIYt`F=&fC2YWj(7tx~nfgf882X$)gejS;H$>c13XYmUpo!Uug*b^{C zTUVh5TfjF6!XC-Ufp~BfWrvi(sKFVpb|FTK{;EISutRkeNyDo0`@$CzUQ766o9OF~ zY_>-qtWh7)e(yC!RhtYBVv4S~h%m=SA* zUxq8K7IGxAFr~@#ddt?xDox-2c7)gdl#H%O=CmX-oycS!aO|ekk1JCf$WLqRUOz}p zvWC!z#C<{1v2<2ehc`|jw-ZE_$!>-}JZ(B8Zv@0M)In zZ2j0naqR1E_50bVSJ3Jk1=pl zjR7H7d*#cw0k7YWbWo^z=@`M=hN>#R{CeEn+`n4*^Je0WoRPyW1>3srJUUx75nFzm z*5~T#e{rJuz!Qbw=7$#St&2lVaD6>4Jia(@?j7^Hjp+!`&;j7LPhK8jcWpeE!}`!; z9Gjf}>`&v!yl5|t=P&DM)b7vX8h=gy6uY!)BJK)$xO%>LzF~l<(LaYBZp{e6)AN20 zXNR-&{T}1}N6h>G|DV7i%rE79Hu36d&bS{hemk~8_BxFX4YQ;2hXf`*$7qs2F{SuD zTVU_zCkCF`ORVspcDqm55Pr7?#3mX5PpZ$kIX{(Qye=gF9v_c$qoE+2^?MVU@+oP_ z4RETlYW*`HCG#68LIpTmzkjz;Rds`Zc_e398RO0$WtjePd2mtF7K+3rfA7uvqS@O| zTQK()uWMs_`wN`<5pG~gRQ!g`h>1-EKbNCaE=4{>=$%tfM1B362x1Bbi!o{bT?HhX{M>AwJ|(PT%=f0rrY2!Mgu5PC*&;ENSyg?rHfr& zR^iBrg~N#@zHN=^xKi=*YOVZF1+2fi zl8INNU?loHq+VOEYCitw`s+X3$cc$9a<*$|aFq+yueLT9{`#gewIHS!im`yywgr!r#{b0K@qxbY_7*R4;)3piF}wQ?3s zf`1|YTC40|fQUkptmx)ZZf_3DCd69j^Ui_XC+TTUw)=-kZpD0M_l51tuvy{_n6f1y z&ugpdiQ?&}ugRiEeQOczL)%5>0V$T0}1fS_BQ)cQ$6Qs`mnM909W?HD@X)@JR z{rF7N>jmb>D(miuFZ0ne^wlVJ+9DCd1$+^&-T%N@N?kqw3ugLZCTb*iN=MR4RslCR z-EjxTkv`_i@8ahUaKGgx@H9mi@BHS?23`}ekylIyr-&ech@<>+3tz{t5yq;deop82 zz~wDr!FIqz;%4sh7niA$w@ND;pP-roMz8DIk(tH6OUjj;M#IO%DP(4UV+D4Sz1=eE zFzCGL?ro<9Ctcpy@6va_FE>AF2FbV+QlI2fHJzucUJY@9<2|hpQ*8mBOsr;5Z66^} z=1uJ9#y*M`Oq%-o*kz{LrRmU@InC+~#;~!8hw~NNds5ZTV(fgJeMN>q|$g2qkMsH&; zDHG9j{T&ZfJHiC~`=}b$3;0qpelq1wLF)JCJy!69RvVg{?O%DpWVtWeMjahTco>CZ z2b4sVnAsDJCiba#n1kBG*-BbjR`nne52qIB*wD;21HAItoxt}b+A!W*m*di9W8Ozm zHiO}jWPW}&=UyJv+pT!Mtp!tha5qF=qLO=eBh1>FqevY`lz5;AyjB15{e|Ry*+et# zweHZzoBM?vs2F_6O)P``oVTiuoaPFF3C_7}$D>p{#WVfe+wANLp$_a9P5m?19J(W$ z?B0BdU=3jvdGNrnl=tM}lFH3P%6XPvDep~3%ndtqEg>0juQoaY^zmW$o_Mts@s*tm z^zovLNLPys$0u%%axs^U$PK{^AJvP}dm_;*Kv%0q4 zBA}J31*C;jS(O9aKhz*j4d12?loPJ+hiqlZ50J4xD@2^YMSj_OnJk=V>dI{2f3a5d z%Osg+2G96WJF1up)&& zPW(bh$ct1v!P4r*l@N3^O{>@2;trg=Y7Hb<$R{Og*b6eu8XM4TwXHg+YYEG&zNh;- za-BXB017KU)QR2c7&pBaNYZQm;&YOshG#lBYd_YefJPs-%c45aaxeM*g$ncLx;E{l zrG{L_IB!5!3Vj^3dNd${*wj^cXeR|?c9fE4@3U*UfS2Go@oRoA^Pp}Ra0Q(=p@ z5LOh0Q>*O6=(W`3T9FeOQEWu(K&D{TM@v}AEp~{v?EnI_1n>uAkQdsTp73Xx0zbos z9W#l3qBh#mLGFOoaj8txi@R}1%h&?|C*>qNFe_&x(YER&szuYp!I$uSY7nF=KfV<2 zw3ZeWsTX3>gT;CUy(i4-K^&g7yN&dvNo%u-Nbvr`+N}&Cbf+1%jx@>Z?ma)s1pR0C zy|nV!6g3*lr*;DZ@$ZEQ!n*VlIxirF_eGd(C^M^j^hs!*DmVPbNo7wdSEI!=BY}Pdk3}OSo1@>SWUdwAUW=H z1Lj=Qt@uJ7!bB>C<(&Ef;+dr^Em4Z&SDe)3@s0_c&&9`*zRgslr?ENzELtee`&diP zo)*zVc8@VJ)yi5dr89b`@n|eZp^kPGMxE5#RP4wb=q_h!xR9EC>g`z6WxD6@A}7(A zExexo?Z6$x#fT8piD1C(95h_I)tanIFKWH1B z0ByDNYbJwHekygxfqLe}z>8OO+Gm zR_!T001}mY!8l+zzV5jj-$$hC?Q$lh&_Gvx~m& zT0TRRPt*~8NMYG>N%!-Pl-|#J>+jL#j@8Z;wjFoh$C$LDdW!MB13pwWw&Wa#P&ef~ zV$LmJuseH~LV+zzTa#cW6X9WZZjF*l~t7Zt~LY zxzXWwjj4&j2jwjO{k(DROTyyU69WLpkz9~{lvZ=s3N;b(?TSf~ZS$z3sG~P-KST6R9ToigDL9^oCWtOw7ZcUH2G3ykRo{yxTu>+}261jV|vEkuboT98@RJ#gUZ z%)qv6e3mSjd<4$ks8zsW`{;$(me0wmaG7;j#u6~OH8gU#*(hi*fdwln^87od1_}2 z9$gAtc?Hzz^fu>{f%05zwxD&EJ3_V=8t6Xa{Lm(kibeC|g_}xqq>7GW`Eci%>C%Zb z77XgW0(7|Zm-Wwq12lOwP@Uuqek#+6X9F05fQpl zB^FD310~wXW?xO%ef*2B?&Pg1{Poq!QIz}Vn#1l{b6Jh*#Pt{0)@f6|h51m(E0YW^ z3nDoK?35G@<`l7GfII+H|Lrorvm&R#yU4m=!ZGlZXRQ`2Ue%)BRim@`nD?=YOIk4c z`Hq_)62lG!jScfG#M`kN67)dA!aVEKe4fW8ogtgBUa7}#lIjxP;r8RMUS{nmSFczf z&kWQ!#U+!ZvAK#hbDmBaf1x<+Zhg=&%*j;}x#6guCtQhI!8qxn)+p6E9+}`>=j{tk z+Unk!ovCA(*gu!blS$Ml>vY-K6Iv|hzX~0cx(PjGxaYL})mK+Hbm;Ztylsj}Da5ih zQW=rf#Qo)a-%Ak72-jAOW znDef~PO_QS?;tIgo3t&&0_p;rQ!04RmQ~nA;tl$}K@ZJX9$zwDHaF|q#$u5c3?YwEQS1;JRJ}0lC<}nu@4W4TN1+Ta=!W| z3+ht9o%$^E&iJfDK5id{q^wP?^al^6Ocb4hyd9N9CqjY=52iv-bh`6xcgA;1`7E6g zVnjja8v0Xu(XK2ffQt0n0+;z|lmqV{JzgU}KrEIZGN~oV-g1&kp0K%7>e3^jEL5vkM-vUehvNRzycXi0r;z%dz6xSiE7{6M5I$d{d9e1LHxh$Ox7N6LaPUcOL(Q!lg| z@xV2faes*BUTZpa%-Oi+2=^=WTU4_Aqb$dR_nVpa%>CcCkK%g!krUL99_~7EZUfJ5 z3Vh&hARp&9KY6P$O8GhvJCzSm85FM3PJ;aOBwr)yG~v7UE>KCnew)f(OCQGdk>+Q! z&q}(*0v0DJ;OyL4iGQ4&dm1?XDZi__y>%T}O5AoSr{L+*Q>EWnbtQ&wDe`3?u{Mr)-~ALBB9dr^5kUi()*Taw)x zL)=qV#+S`hJaZLn^g1by%(#;UN(H;1c!4Gu*eT+!4=rxDBVZW5Cv;=mEI2#uPZ9Lc zbmoqDPN^Dda^$>@m;@9w>SSA6dkaqzr3>0W_i3NWZ&c;JJj#v&U2z(Qs38i2z+@6S`mT5C(j&VcH;W#2D!1)Bs=$aVu;# z`Bqi9|0=m>Z7^FY^A1{6|Gu`3e2Uvgm3oJQB3bvtRdhd<$#%ZQ-a?;Ott2W4$>z-` zLZB{RL^&y}aMq}XzEl_K7!XQgNB5N6nL`koWAgfE{48$${`jyU%}=vPryCq^%u*V; zu7s#s*6Iu)Ot|VWT;J}_MDJ?#LMe8o!H4#8v6B#qonv1g)7zl9ltgWySlku0qZxZZ z*|r3-x5Re52;HB?s8N68GS{16#!E~og zPOriTprUEx2yBj9Y9z;d>9!2QD9Nw6p`*OrI{+Wb*6O!w(BQRFXxXiFRJ z*ykX6Ag{l3eWBCz8u!97Msw_#nM~AhUqsDm@e0;du+zj=m1FQmu5P0sRrGop&&Hu- zRja%Vhm%sjqnqxT7vy-FOx~hHjGrUOc1Dlqt&Z9toen@<2;>4@Eo2DZR+(?9qx90r z)7#=TI%1zmpD4XtqTeq$;zls;Yo|$bQ#=1CwVnXm7g9)rd=$RF$`Qc#GT6`Cj)Y4V z{`sD}RiX%EWD;*t!H0w|3%JAA4B@Skgz0D z0N!{YKuNsA0J}@WzHf$Wi}P!QjOVrUaS=3LNE=?{fJ$D~g zlveANbw-~UM~mR?{PI3Ujpjx%af@WP?iyVAlNw3K-0(!F?d{&W!_9 zwakR9-IoxnI`Pqc6V0kUVn)q2^6Y#C!^5ZcPxsX%n^DhDHJaRor4NCXUth$_JQ~-y ziBd2VDM{O#y80A5IC&Q)-Pha1$cS@**`Bid>O=>0ULho+4=m?yGUEc%8LZf!n}_A( z6(T+r-R)d9T6Gl1Y$LzucM@N!$O)Yq(lo6>p0YX#ULM@7rLN54f4BC^hg)2c2hlA0 z8JfkMc=;T@-BH_*PBTbPxryFQ%?F#PRyB9@yqysO#@2o0M%~?T>-!S|FZ-kucr9jF zb&Uxv2Y%OKTYUHg!&tsa@?|2+B7`u+@DYZ%bT^|<8#A0VyOWi9PB_atk$LETCBP;5 z0yQn+p(QP~@*qCZ`Of z0oq^%(asXerudb1MYMojjDVH?vzlhBwd}2`1265D0>JaSqXa8x8A|6H_S5^Y@_9a) z1#t3|CN(4}t)_Aj^ZrNU-t<-{#$k!`2OW%+9F7*Rkvmca1s{z0_9s*`q^?KgjfxB6 zx}>~=GbDoG8BCD1W!jmxlilbgrM~IZOCHzf0}2cuL#R?QV1x_<4e_GDqldB2nF1Y& zCkB)GSC=o$+dK^qN&@#%coX6D^0#t-3Rv9$tm88TO7$Oifd`G?lu&5KvcR|bK4E7l$fnL@Mm45Q^8OP%A-Bp;q3ry;$!T>*^oJ6TK zmH|C;HDXIgJI9^$tVhXaA|Jcs4(56{=|H}k(z!N>(Yfh1Tjh}SZO2vJND)eIM@<;A z3PY0+cNr*=JKW(NBUwVJpPj9FAHPaK-F{FMGXWI)^^J*#%0i}OreGn*@Gx<{-ipD{+U5g zH8K6>mYhzt^1=gb2>dg$v4xR1=%n175P2k&fMmHIdo00W97|ulqA^v_NjQjHN0^+{ z7-R?_*O(0y=}|(dz5==WEo{XuI+w;s?%=okva8STfA1(K&J`tHnY>DH`N~}1sn9SO{pJZi5!K8Y znf2h_XXK7R<7V$~6yX9MWT2n~TB3%_KV<4A9f-Xo(N7_rG0M{H`9IR6{1lCtGx6hu z&&q2K&(I1CU&oU`UQ48E$5v@>Py!sbqhhrRdH)VxK&E7vx2WcxJD_>ABXLx*Fp0T*c=95@<&^F0 z*Vx~JbJy{C_iw@B5}cx_w!T;2Yc_c?w{L0l7Rh*Jv%ZKrEv7w8jcRqE$tZ9fJR-z2d9>)0iVN_qRe@=RXEn#utos9@0PH9 zkQu5E#I&mz%~yCXbsXqdqNN@P5%f>R!d)sfPp{rz1Av?ed+N2wAAGg^SEL{IQ`1I{ zo9Dar?_P3P3H1lb4$Mae1%%tMph(L%O< z+5ny)?6-Gd$uyR3nd)LU7a$KLM8=(+ZN5*Qn;0b*!OclA?u?XSwKw6ptyl4NOAtP> zsPejst@CQG#fn3G@N<;@Ch^FRa=&{#%~V?xnA95Q;I&m>^+oBGt5~^-vjDLcxV%&o zD%paMU4xAuVjM1EJbj~2kXRvQnn6I44#dAeF9Md9(=O}%jQ^Npqix7Ayi`kUI$j>G zX587udt>}XKOxI}5%$spLiByt;+H78UP}*)6)AcFVtysPNsJ4|3+o%Q@b;x#!-L9m z{%WuAhsCI_W)m5^orJ_9tNt4k)77gCeHWkyjZ0${Xv<#nM+c(DAaj{^sc89mj#n?I zS-6SiOa<>)iixH}Iq{J-8YoQK;DU=6aR35Vp+#l$7Tzvwb3fSwSS=vyz-zh= z=m2LpyY%asyN@7$zp*N5JeU6_7DO$LYhb>9gdS*qXdE9BuCfF}J zSiUF~lS{ZPN4qny&|@zwqkLmHJ4vp?(@Yl#>*kUl<7})swVw}OvFMP1F}SyhM-jR3 z9q;^XqxaMqb7v$FBGq{|(+~kM2v=)8$f9w-~gmoeltsQ zu#UE1*K-NThLKfqtU#aav}kd>j%#2@v7lE#V}rS8MSVMjtZP%3w-l4G-`gUpObZe_ zc&xe)wp|v=lnx#CJ1rc(SmtmN-i5&YV=n&I_pID=M2+SfdW*8OH;!66PQ7zkJe`F&AkJA`);REzlovln?U1{S9c9I}7Dn?yt8(bb9g!{D88!6j* z`<6IQIo6QwI@_Xj8uVe5@KL&L;c7iavnUZJODqp=2oYuCY@!mFYYussE*STlnBGV( ze0(Y_sIw#BllpBJRM6Atu9MFgzY$6P`u^N&R23myzFhLN#j=L^j2dqxw|?Iswg^*m zFKg^7^_6S3fhTplty3WQN6zVCIrHdl>R`2R=eNpFwFE8bU2WmcY|gWVybNZgEvLui zL5_RL*|vHtoeKn^;fn>-3AI9D)psg-g*lvqMffguUDDF_)p%e?C{5nk6&qnHil5gu9KLNKsRX6|Hp!;7!8W8tC*1ZbeUS zp16W+So|3DnINTui=?C!$zXQej}0E;L_FC#|3Qq!P325WyMpw=rF%qI1KU)~9e(fj zu75ysD`-T3UU;(hF3UOjl|HIMXtfqc!s*mH#q7kayYSlEyBUl2gQh7Wb{c2tJ0nZ? z+NzWQT~LNn`RImj62JNi|6Zn^T*djdjNWnbfT^*tnD?>-*E#Lf%tam5#OsVmk)z1w ztrQ}Qc<0fFF^ukylM-eLpy}aLhu*hVf#IKKI5@q*ulwx^N52sn9C;030wF63!M|)N zCt4%i-qVhE1aijjXA7B?4vgC2aZBHMoPp81+`=brL^HJF`LZ*WKE7&p9KxRoqT$0h zL>Tq;0g>47vk+Q=mA@tKiaBShC98;b(1lm20C5K)?c?0Y^yzfPYc}{xBm@z?k_cggdeRD_j!9F!jfWDbN$a|nae1_AAPH1$yAZyA#I%V!ma zx+h;{uGpu_t(XPJt{9hL$F#KLi`?rz^S?S(Y?mr8T5}v#^c4=X|Fp7`gUs z9asGLMh14t_Civ*R0hOwVeRPPAw=MlD#mcp2*4B*KyJ+4vp{Zgp(80{hH?YGbMg}O8c*^`(DZq~P zXT80D?4jshTJnC3h2eA6&{H_2cASB4oxLsr_!GOxiM)}8qo)JxaE2*yg)N?CaYuvR zPL`4m7(E>N8N0~G$}8TTxnllgm<9h>NIk&bLHt)fAC0M;fo^Q?h3+%c5}ENET47u6}x6Y{9$FIC{q1s0eHNjzvXr2Z8b> z23qD`9!G{0g(VG9W&PYqa2HFSp%qX5u1sAOqQKr@u%Io$o>=w~Kvct0^9=NE-?v;J zypMQYtUKq;yb@e@7`yWrdq^9HcnHzttaFq=W>;g*gE_Mbb+{r%H8ks6pr=YZ zw{|oo_SbF6B$*C2EjuYEJI|#jEK83v^+4D1hWck?<8^`BH#uWBeZF{S)FBmvn|4Y~ zspBS-I`7BN66#u`@;qYTn(miV%gvX^`i36(D!e*m>cb!N4>KHUnq_Al7X{X|1}-2D z2j%;Tc{gJ%M%ML->q}m-v+ExPL5pb#cxRne|MVxQkHu^G+QsDA!ES1OS25~7zTM9j z>{u=^$+G^idJfCX0!zD1j6?Q%lJw#g)6z2WP$OK_TIK7pBN9k-6%a?wZzEo#nINP9i zC>j{%4S9kK+FGcpwaO-uX@T<&3J*7iC)+*+U9KS9Z}y{u-|PkgNW&%668EpkbP#>I zphy^o1C@8zWb_C3%fcRnoTZo*d7;;2qJ8}O9WlFRMa@6Du@Ob^h3x;SR2>vH9?B`Dsjv`GgVbA~t znE!u~WU!BJZ>W%h2|oNEpy^`uQfA8^KK3c%A3gZ%PQo!Lvh_ItwNu=^SGOfU^52>X zfBtATk}TPwiRP;w(B0e9^E!*mpTXg?vHyLO0}-;S4GF`otyt^z_HeBR>!QTLxF4zc zsk9o^@KTG5S!R>j8`~lO{Ss<^E+z29)))0nf3J=_3Kk7Db#Wqmh|L-Y*`+GEwfVVm z8kf(l$Y~ywopLa3M(-x*zps6UowHeS{lUsr>`74Z>kX}yk&z#H09to`WjIXvUg}YN zv#g~}xMMrJwR%X6BSufKOXxI|7T@?Ux%m^6VEkzz20myvx_j>>kcEYaQ_i=S{wpJ3 z??)x?H^xp~if@eP*mZY^v)SssVFYiehZqix55m}hs(Fc~$$!@7rKM5V{ky!-P{$4o zcc0EfsOrqOHQ>~J)f2GmxpD(PyIR}oKk3VpM^yzM5Ubc$`#e)C=6FsJZH;b_=uHq zHo!Vrl){(J=mRR1OsN^nH!k=#pds$Egtkw+KQy==NaTi6^ymeuT(>A%zs~##+ zriiWHkmBHA+UF)`DBn{XVd@Ig52_-^SlyQ-ELK4h(s2|0e*$Ey{EQWUlVrPkm)uzT zXJ|4MFAbZ%v6yT5zckGDkfWcLN}w%Ylg>+3Zr4!#ElJ3*@`s!bybS&k80~Y6x-D7L z*Tff9QT)xY;X{uv6-QeRvUFpS{L}Z+ocX`{SvhI}Rx_4K$SU;J@Ny-RX7R{X3B% zSt1S)ngLzj+8RnnmZS|(9QFC_BwgjU{5H*V>fKd4gaD2(l}45c(I>-`)$J#L;P^DN zuduVkvX}H*Tn9q3{oRlUtS*eqzFCG2!>;FM{l;^;#~KG*ZT^<+f~()&?s%O}Cm&ib zZ#}H;6+suv-39s&`=r0zJ9H1Y!EmMb=D6TGm;NJmlm+1mxFxyOuo@Jk%2qv#>#GN} z{fM9~($nQ9{ti+y1(dyq>r0U&F1a&8@Ah>Mc=60GdC`n7HkeHgP#mti$prU8{yvX3 zEa||zuB&OU_;=*Z@*_I8@934kwpE`5esP(=UERp*Sl8>yXMI0mlXt7Tn~9Nh0YOOP zx0kAmgYGZLrLk`n4AwqUUI}>!ZL0-6TUv!-b@PeN`IXgj&*oyEgXs!xfA~D5PkrcNVbvOXRtKF)I4VO^SHG)`B`ThDi%WCz=jNeVP znAva|)k>I9XdN1+CkTFt^VMyfg!MyRD~-JUzWc*-OdDPzqvSW7BW=O`h)9oOdVh-qq>Wvn8T*pp|>c*LV4?UDO z-gmpf7fWQV98T^*FBH*EWjXO)J6c5$DQ0-sbL7hqL}XzL^$p}NUry_KmIH=k4;xGV zo#{xvdQn#moVY;;X^38UN!T*yZIV5OPBMpOmIe>WQ-8>}g=^)rcwbL?kJj%Yk&{18 z%lH6|pbn%9NjiVc0xo>8(Zm}+oqA#kF{FQB#c`J*av8k`DY~90K+C9z9^@fE9#zhJ zsVvi%Uf#G}_tx6fZ)%(9xajaj#x9u)-WJ{l5MF_LH##iL-_Tl~iPbOUB#<#@yUT+r z9N*atC^lRgj_^6Cje(XRtj&XsB?PB;=pXebU$w#uyS_g3H5tw9uC)^9)DqWb{X#!9 zcj6;oafLr^^Y-%%PNz{Y;m%(p!F7?PBB3kx)JL{oo+7W%b#R5s(X8>NI$oDr?Cq(F zI)f3wdxV=jzwjov$vZXsi0pTP9c$<+UkPaE2D$)RomYpZlVWMMg(py19~2S9(J-y5 z{JZeqy<=lu*!?V6v!Q5Qz7Cv_rRp;Ks+8VSgJFA|z1II#tG9sx|?*tiZ{ zB^%mug0tNa0SZ?t))6!2XCd}HKccWvzVdXSYu&vV1Dw&0$G}p+#>&4I_W%>^g*$v1 zW&^u+*M)wq^dLEi9o;y9KS2}xk>rnmg1Jy0Zt-L2){Rd=NPlOsmgQ8~GsKcUz0*r? z54qkNMYKsxV6$e|bi|z*vE+Fse^MCtSugAhLWan>HF)an$+EW;x|UqGQE-MFY}LPh zAze{Q|L1R9&xjSw^JTAWX(a7Ayf9@+_kGUJvOQ%dC8N?>by_r^X7NG}ZSw!*4V;l+ zpP9<^vR6&r*C;z_9+Xcl$kWnnx=qo|5Xg=<(!&q$v}w#vP~~8{i{n*KC$ca5cZUB` z+yZdQvcBXNyftAY>LO$bSc#d^J_{n&D@lXW<_?aJ@p>D_iN?nwEk zn6b9LybXs4zrGVJh{TS+nA#~isI|g5nzal$JC-s4O<`^(U8#@_VIS@;!j{HBwuN)) zS+QLSO#QRxlx)L1<|Oxe{&tdE0jWjqper=Z_M>$iG~a6tO08h8sd%TW=kAq>`lKd% zj@*X!?|%;Hw}LqKin>g9zBHN_00VJ6vCTkg$dZWuHoiMty6@5u*Awyot_pmgyUj<8cv5FW;wcpjAe!eySm} z0Kqq({R;gW-x6){?}W?fMoG;qbU0V0)d;+zwq9xU8Is@sjLm(B%iw2SYft?Wr6DBS z%)s+wL2iJa^M3TNGHC^IM_TVDPe?tOh{TShH{_jPczBcWPEU`RRbrdZk;*Qh(}m0r zDzurx#aB~)ZIAue_7GtTN?&1e@&Z@&C?M*K`-M|v3rr7~<7wFA=CA(FSi&ZKBeSI) zTO#s4S{iSVHyO!~FK+z%3?YTul|3Q^Dv16DjpWY&Z`3r1hVH04@cnP&AAj3dXXr4S zXJ8i1nY`JQ@rwD1^^aZIF84!D>k=`=7}P1T?C0P1APMmxEQp34pOImX1h^Bu(=m8n z=l!SAafdcs^5+LJv4>1lEF!$iyYq5u@*$Mr*3?H`$e*}D9O=I%N}O;N)t`U!$6x(< zO^W_M@i{?X?V}bBz@a};F@~)nVoL^p?ANm)!T)x_W6>LyiD1--Fc1U7@*gGwt?<7# zRiVDV%l`>8!+iVy!{QfHLsR8B=jP2KgKZL=?& zs8F*hI|J6{aOFY`)#7vv;ZVcgkj}n7adc^2xvz~rDYGTTo3)?2v#(wL6whIa(kUHO zXAXxh&HkMAe||SqdtXbpg$U+mp#OAMKNbE*YX%5Wrq;&)jkVb=Pi?R+Afjw{c>Ryi z{<;fRf+V8u&GA3qB2oybl8)JIZR<6A7X%7g4peGSe7t$1nNUAg`zL|>bQzM=$R2~`N8O|r207BPl!Nf@O}nq8 z|A~twAEL3Jh-t*ey|?<&u}<%Ln@p*(;TP{PO0WGU+Xc#dIh-n@I8b@{1=xEH_er4zxA9Juik110Tii= zfkRe$wRk*ze`K96p{D_Od<&_sVt7M_q#<8m7BtjRdOL*3B?wxrZ^%&K< zpJ5(JmPU-3DRIU=jN$T{?e0qFY7cSu8-kw%ZpX(9>*7W;;+_P?YgTx{#{<6(&HV=fVXnsi_=2)uZJuRFda&X9RDMa9GQNJ>eC593-OMIlekJj3 z1FNy$%?R9w{A&>TUbYmocJ}Fv#7BI|b|NNY3CXR?qCr@kiwks`G*4cWrVMSVukRDCSH&Tmv#B7Syfq`Y5EUv zd>Q`r`4Ck2jSD7|snLy}f;@~qiwijmLExXOq@}OAC&^kA%D%8$olY%y;Trds``&?^ z)Q@prj<1i1tYMc3i(DTwY}9B=LrNKBwCWIM)71q@HgyusGAF0nQv<|_M$0NrQ|gg! zNmR;;jYMzFmZ@+>=%d~Tbn`QGXJvV~<8W2{?E96scdossifgAvK=oe{r45Qixnk#+ z;8ro);vc}ZUI=Lu9Z3cj@Ec5Mv1E5C*tjxZ1wIpO^aumAhzjna!yV zJO&cSZ+6+6L#yInyH|aQlA1(3b!<~7ljYMndvo)_e0dM5kd$?07w<)zogiv0cIiFw_$p;Rz;muPuimmD-;IB^tuKIO-P zB(il23t+->W!6A?UWab5S78qw(IHMh0d0X+)Lhz(ehFp#-A(NoQJ5-blPLXnuxw0E zw6&JXq~ThbV&BX@`Wh~GXVnTRWJK$O=uXg3`r1RwCL5jEc{0}gq9#^32tfR*m!YHz)$KcnllIKM{|5Kw_h`dYEV zYoU&xmbc>T+9Loe?szt(lsCLSyPkSgx;d3Me6ak?B$N4oBExNSWRwNEtr=t4upM~o zIkFo4__Wz`*k~)_?f7ca(=bgmOs!zwO@A|+>gdsEM+7+NJ}BMU8FXpB&b_hFiEx^6 z8q#!yyVdb*c-{0eI$8mr)top3u>Pej5Sw~O~d+qq2gwCau_VD_u9fg~q#NrhY>G-)9gmm_ zRKf;f!)V-q_gWR5RnbkMXXdh++fn<5{tXG|)A?3}A>#?@0Y*w~RMm8^mc3qoD)sc_ zY5xeHqstuZNuxm^-&8WPoyQ93f~Ys@V=OgTphb=+exT&Y8+P=2t`}xCKI%7HD@74X z6-I-ug7u5$r5M5XMa8-NPJF~Q!cRCDOsU<+$6xR-$Mh{1DhageE$8>6me@{fyrE9w zq~vaub(WLLyQ#c2!k@D~2h0QjWWsjgPDbPBuol3;9MU!0^Md>eg&e{)BKDU){C9 zFp5=+O8ZvJ_FH(mAE~4h%gvgkaXP& zX1m|n2H+Q^m+U-p8O;gw^y(_3r%D`H2Mh=|7-Hewf;(oeX{o6pDwn~Ab8)DR2$Cg zkmOavT5rU+Dr735{33w~)VCLVh>(BWUFFG)D>SmlgV8yX?LO}%$sGF{6hM_Df+ zO|d#h@(!z&wRYT0CWY^f5jSV|FFBX%R9Q#05L~7Z@$jP@D6 zT*3REYJ|Pv4(DJ4u*l&abGTl{N&1DZ8jL z>D-nz(?$cl*Q;gg!V-WxwN7|~twL!Z31SOmrh^n8AFo(!59f49hni_JXiMH*q;wV; zxpP>|sgtH^y21jV*GYaftP%crS<#UXN?!RrSqh+d1TU+;b8U8{Bdo8lxAn;9Jen=> z>(mr_H1@+hnlC9CN2si-5`j7FZOvd2)Z#Jcxi~mjp~|2OdYZ zrDqA10-3IIcIXDR*iKney}C<0kv3&|G&mWrqJV>rQ<|Fe#b1^@7_JtMo`a-vf)Y>I zG0NWCoh;aShG~5LO1mT!`vjz5cRHT?%n*cYdpLz+Je*=PP(!&Nr02bg>J9-V-EZPM zo-ANgTmxYTBZPtPeOm0;PH<#UsAmZ~RLcnIJH84%+D{6!3cL9axd)Eqw}8%7!ZJUq z>>>?Hinfk6eeuw*Cxidi(%gOA}?g{A#2CG$n&>dZ!N z$KrQt)|ta+cozFYhwnw*2BQQRcUq|+dCI6-d!ht1K*wp^`k+H$*$ggYY zsC>UP>t2&yw!00wOU7on>{QfMn~3i-4tr2@eR)Bj-^C~ zcidAYBJ4DNAFxj5ZF7pZ69aCFG?BRC6Wsh1Yx9fE+=LNx>G-_k?5TO{+aoLf!R!v1V+u)00T4Qo zlXly#%{_8+C9!eth5YCYFD`d2F>ztCcX;AnT>EPkdxQ4I60on)Dzt(NCNo<`ghvE- z4!04E%-Y=^TqgH=a2V^Uf4^Kb!Eah7MbrI=^i3&G@D#OT)eC=_9-1)jq`UrNeg5WG zc{o?5RmsFMx%i4%BWwddxfXXEjF5RF12AA5wq}&SG{Fa-BD%6@W1Le_Ol;47*&8q9 z&?s=ac(6xlh534~%M(P_z_!l-xD|_Iza;^<#Fk{Zxe%tK)@FF2_0hhCDzX-pl8Xugo-S&U@UWR?HbVy*AuF+pOdilM1RuYmuJkS zMm$|tl2q>U-kSFroyF&K)Gqwg;~MV8+Pq<;+^C5xU$#?i)QmP>a65X;DX6^p`dgF! zX>asdyFyGmCtW@BH(rMHbXgCD)Oc?2w%v#O4?-z?qNEfqWHt%`$Gv)9<&lHUu?7WI zmJd=gPiDBzXG@`*HXTL2bqQmck;(|wnw%vik5nfoQrU9pn)IhIqup#NH@X?yeSzO- z<7v;f6xxZ`V6!e>W%y(!dA;b?hZ^|nhJ(0KGT;<3u$6q?aB2|zhfx07Nx3~?v}p2WWfdgdj28OXxq7RDkIjT z@!HlKjfCWC*47!?da0&TMS;gX?sQa0pT^W{vHt?4N3}$iAX4x)Nl0~=g|oQiSM?72 zpu_2Mg9^9!jYm@jYC;+hP?P^IUM%bLo(Em2tP8_sLi4W})jr{Sj}p*Sh>dDd2y^%4 zHq9jTxjDN;+SD^_aZM1Sg4a0Q4kpgf8j{<#6m-dT z+8yd}J)K=UYNcZmw5C~;6DpAUy<~gvtuWy(bz^vZpG*@n(y+E(LV{UuwVsvk-k~H& z@zvrBP<66lsY#t#`HMJg=F4v8a)^hf zypRHJo9>yu(ErmwEE-=aZ7 zq_x1xBLmD;SI|;Xm}>=K&+>`VM~314SR`9j9fy49%Po;_(z*`H^a|8^?kqa1tW_?M zlYM>gObF}mP$)!6j#=?i2)w#U|Dnw}odv@j!5W2wKnGhAMgfd8I9P@b#b>I%3z|aJ zd^LlZLlu`M;0=NzNJ=)S1o$fdz&8GJxz$@`QpfFlz8JblIzEf4@2$Urgk3ea&+jBE z<}CSSHq}U`S!-6TiB~pt3rSl6(m)RkBfUQWtFbYitK%ntdRG|FZC3gM1 z*r|^q5~s`mGDl^%ifYh7alz5o76Z|zWh zNjZo&MZR%tyq>#cS|*D}gk3^kkyj8g+F`B04Tzf=vr_c=elT;W;dl&AJ5pRz48n+T zbw40N7IMTV@_ta^ze~26l8Pjj&zQ|WpLim0vK%E-SZ- zMzBxGR>1d+9AjtC$osgyZm{bGMSz1 zcKw;t>iw?3_2tTVrOUb3ELGddoqc)Fxp0P($EsU+oMy#SjGJ?1J3(+8?b@nxB70*qstWEYbEkJGhq)l31-?k+_#C7X!c7O)b%K57@Dl z7>D&sC(iYM6R~HBWXP-Y6ay_^VjIwRB+d;@%L9z1fZm$!k|{D2Z1ff;&SNnS>5ik! z^PTqEAKcV;P1eqiK*V0!5T-Sc9N{g)ZRG|~jmfwg_o*q3{E$(~>*REHcJi`BNK0Gx zD{70mr=LB`4L5Nkd4lU&2?&h4|1$z#9F|jS=Y9+2gPXW)GLmbLJ@d$ z)z*+e>b$Y)vK}-}Xfyknn})F^n1F9VN0329b4tq%e27Y)MC^RT65rup`-8`hTqf@w zgQ|?@S>k9%mMjsH48%+T*WD}7AAb5hQ1y&HR*J3Z)9O}-4nn~WkUD`0VgWcNe}GLJ z1@fss@?{k>ZocQN*D=L++iORemJjg_qz6yM9JhKE5KgWhfwWCudpW$}b2-;-cpMydy4^LoWSEdNqvl0p`^HAgKJcJ;r)n z%@w#+r{->OJSVKoK;>6=7>34vXd(|vs@+Izao$Zct)%-NyJGYsPi6gKW0e(K*<~)h z_9_#;{VJ#0m_%Z`4}BKgbaPsErq5h_XBIWtJPD0X-LHmF)i`ACur{@Lu0QEJako0! z(8ZT2UT#81v7E4bB7W=Gy01RAPKT-Uv+Vf`nAQQO`_xO*`MDv`a(Wxama^yV$WPZq zAK|?%`V*W_mrU+?LegT`S{&IMMlABoH6A*w$B*fn#%a0ns}=ix`7$&_{ISmD5z`B5 zOD^6wtT%KXE;=9GnEsZV<VONSIx)HREh3o?+?oIG3J3o;I4F z2?b4R70#Hk;b{5~GIF*zqxL@5`ePnMh^|qZ;gvL&x;?PH#!YBu1&B7gUeT`WW30R8 zs@n3cLi-Rf8@>Z!?X>HZD~zQoLBMeTn3EXO57c0$w5n+QoK<6}+)6#4shtY2y6Ai(u$~t?#4#bzVq-~G1??K=yeR{PK3pHuP%Ki5#AK6ythIp!y#A!6_zlD$`Iz}d32a0UZ|#I zx))C2LXwCe=}z?nm$XzqKS8$Mm;D+Ao;5eSCOQs2Ppvw^4*9O>ezMI~=;@_}@&u@X zujl%AMlQDv==JWc7s56+x{HrZhg(3q(5rD5MQ(~g2QjLPYiJ7T#i1{YimisVJ=W7Q z+zbWUPV(LIGx9fXjW~uo_>)=>3%Z=c48}W3^ZD{3O>AikkHaU>a{PLUl(hvVixhX| z)YL^D-m`po?3J1G0N)Tg)s$#|LfNviOX}1s2AbQG#h~<-+l^n&uVYYwMfwbvW+*eW z3G$k#Qh5o)qPbJ@&7HE%R_#pzpv)D%#8sB$bVzPuSRne5!9&RT%xHw-ZA;l{-_4R z;J2qJq8k7VAC7iIEQZhC$+{MPtQ6rdY>o5qt)v_mOXb^zBSseTcaiY^Y11~pfqv&z z+?$a0OOvHUkUp;gEbaw_yVt}q;fHG zjRPDrS-)4dxN+@X>F6oCgh|aO<}qcsd~swson{uIS|5-`HQert5KHHy(~(16CjX*L z5|ePQm<2;BLumoM3`}-n4c0o!B=L@erl8idhBa3mmHa#^NDFJbWUP4cvKg6l`r(e7I|Ow)qfqo&<)zK$0#|9Oe2rD^E=cK+`8W3a;Qo};Hi#kkJ#)FMiMM5h1nvs)2vB&g{m>L$Kio9Y{v!)*aQGWGsqT9mGMz2#~|LtupB zF(r5KfL*a?3)j(ub@iD2YhL@EBdu;K#woah0{Q%YR!@|k<2ncM>kN^l%Rj!$A-}hi29Vqn9$1xqFWduVWWTx> z71J=7q3~imcTi#ZFpi#}tL#s#2X0@|;`bU=bHV@>;_==NvGOqN;JY?BVP0>z?wF6% zQ3B;c2ft4-6WaVT-wkoYf?)wu(9%hSGM@Kds;dvQFEz=4ykwh*=0^c*tvICKqE1Ro z?`#hT83h@38kHMuqgzsfYRQ}ID0H1zhpascKSX<~X`bV-WIV}Y*)v8B={EgtP4(2u zKvS8S<9gtUdHWy)bdK@JtOF$P!ydj0I~gZ9o$kxQnnFyOuI5VLQA+kUxvHdmIG8I- zEo#mijZ|(DT@KV}dz0r&#=(f{R4kZ>X)GJvMR!NCZw%zjamYN}lf8#L`z$)(Za75p znynQ2WEh&jOVlXRrOsX%T1PuI7cqJ3?%n;t!k@;k@$K#cA-Xow^b2hKH0w;TMe|H> z&;=xQPMjDk0Av|U2Kw}qk`FPsxO>piI$_4~Tdy^zA1$r^PUsPfqrhsc#%&$_qxJAk z4Oda)(#KecC56ADJ-KsWsIsT#)VcF|g70@#`t2R}T*%-^zHvs5uhzi&;l5PD0RDD2e{^s<5TkEazfqFUB>c^g47cYlK*ah!{oSpA6I?lLYse9dMo zraT?2*zE<|*FEl=s9kqwBKInu7fIYJNaMceK+pT~UNVnuoJL;W?#V#}3^`9$Ba66< z1UR+sH?`catHAneO|Lpox;NbwNN3XS^ZAMQ5Od)tWM3xnPY`V`@mZ&?qdB-3U%9k2 zlH}kb9K+pxGQ@c$2=1za(E$fJQTRdF!V!TEsWZnZG6|DK{40pJvOpl|EVfeU8V@l^ z(6!GBWyixI1NalhU+wuz0z!##2{b`2DFCSCT)ShD-p z1DRhDiHG$EB70VDB3nWnP~3#eFxShB*6=yEk%{+8eLL0>@8yajf1!{XTFLoMyiH}b zghhr=B3;Q5@YEvQ2HuO10r~p75@^ zAF2S)^6I#guVeSZesoV$8K{*DxrJp0X64=KFP>xJg!-PhjM*kty~%*;Y)teKj8U}O zlCM1idq_DOKF{^>^EmbAl6H@jX=5_YrJmL+A4Q{-`0jCgaj*14?t zrL&snaLGYRjgX-1=0aB+EgG6BN14mz4X@UucQ^ccEzk>%mZ8&b4Lhe3SKq?p1Fnt)k8 z*S1>|!IfC8_P$O3JKM%WfX)WnBGRTg1io7oQW|vb7UslS5Wd=q{-WV0 z?#~b*jlH*_Ro&S@7trmu@50iH+}SRp(i*Cv&_%})v~KV0@i;p@^r|`ujRJ!B+8s*5+>GE;q62Q1d^)sei5^xJ6W~ ze%&zNB3_y~X-p6C_y zZS53#Rc2)19qX0EkB{2r99Tq;LgMq)cF2n@L@4hIy7W@#yrpFC1 zGH;-IQorzRd&nuW?Btq$a}S1*B^gy0Hy6DqR+g5(4P~x9iF4-e$;`Tud#u;LX9%FT zm}+n8x?}b^pJUt=T~#_u;A5RgbEzF!XWERHsVzqJbaob!C_Z_d@J&QJDY zmbzSY!rI#vv%>cx>SNN-O^+{?U>(4{%i@mwnzq0yppC><&!m7Us2=@QqW*ysOPJzv z{|L=*|EzV3;iqDzdRd*YVe8|K4s&E;x$^$%)4dO6I)@-ym01#J^MS5u^o>e(^|Fe? z>$ksD*m>&B0=sFb+z0};ky5ja1v!n)m&dbD)B#Q{7#6GK8xN@@JA!-Rypv}ax)cEE z4II)RpBzx-N=YIw%B4q`oI3u3UdsN4ULc<>2S|QdG5UU{dPV#<^y2T5QwjXSfyl(^ zz0cNA{j(*7ORCiBY74ylz5Xyvx_?#)d8viw!PrsO%kYNgry|9J z-6QG|4ONm@<&qtz3+I+sHcs0j#9iZY{R8iocqEDR5Ojr+;EY=gwt`lF;8B}xuTBmK z;H|#9_dE(fB^_#2?KBPG&lU!KifTXdahJ7ykdcNs!wHzX8k~w;x&EU_f84WIt_Nn5 zEF@vs#y=*@G}>(=7OR#Q(yU5mY#xC`iS8L)L^(avkU_S6l?NynnX05u=eNCKgja7l zT9c(>=W@#V-Mi0g=r63<2}N|=x)hwyt-69oQ-6q*RQ{UMmaRR^y{Wuhqz%1W@|XdQ6{1(HQvCQbW-BcCSt|l| zCh5uOeC*02U#SKtf&-?AVUx=vexTJy^YC8ri|U6lQUP2#m&m1_Mju|en-8y;V~RW7 z1#CC(9zY#&9{XPRY!GF7hTPo`) zzb3SaT?g#Y&oo~oDpKvE0}!y2*`9q8yVVG27RKzke4b7y8&Q=3!{bAQKDwAQijT5a zbT9^ayIT=0RrD7w{-*S7DcnUjtMC$jIOS5-3y5Z-6v5s^Z^$J2?e0oY`o0lYB{9Os zuQW$I!KHbWgYkf{#EQa3`Cbvyg`lK=v`E>mF zlADsUvdnr?DjUqjf|=V1cG|A9q|#YOKjsAb936JVvpluP)`7QCO!iY# z8V-q_ZcE0vdRGR4qhGs_yae2e0f^;<$w* zlLR!*k@xV^l<%CJ12okYR$xBjNvJViW z21pw_drD6^oFG;~PFPfnC4Bctas+4czWYe=+f|U{vav5thdcY=+q&&S}WIu#@RZx`)WJR|6mAWsjOU@12dsjs{d&aCb zjhI8Pp|n7ES~l-17izO%K}S!wW$5=QDXXS}=Sr%>i{ydaBzB7!al*gVLGGR%FjmPa zi8qoH-<>I(d2RgjmU81#E4>z!jxk^GC*U`f z5fvLPnV%ZG=%!)#Zv=q1r2DD$fU3)MJ(F(FFZ#|TA!{<dY-a&W$Ane_FOa5VYs&Yg+7f zuIr4i#`)(i8adt10vDQJ1;PgY-CkFLq_;`6+bR_>Gb5+mDtEzI+>w|o1%1qSnl zoQ7?9MiSF=g*kl-IhX7T>h)X5X{qXu;u_zoq&(rz7GfU-H{BbG%S(Oe%~qa}ok?aA z`B_o<>vjE%D6Y7Q=W;nQfXw2q$0kd+lm82RQYrm^!KY&Blh*GQR*+TPVPYT8j(m@T zG95|ndkOD7d*v7Pr)(W{W%IA88jvW3Nf&BeNW`J|`OrO6yRLGi6}=;Wag`H=>y_x8 z@>h4^Eauzw8c$-+uS7dL+3=s+AaC0{?AY{B2_hM!|Nc0^SRrhaRu%mVFi4 zn!B4IwytS_z+h>b--96DUZxXUk1#Z1?fl;jF+_XqntDVUSaLbSy%Prkwswwz-403{ zHp__N7P<4|ws1Th#*w2i_%|yY4fj#$9flj~H?*-c%_aYK{G$>Qj5MnHGVv}8OQy63 z57_dGDw@7;oP4HSe+)lz>V}>H2kBbO<9Cx;@AiPgZS9Jl&%$l;RPmfU}quXLl$;zuzXq|Hs%{hDFuxeZ!(4ASECnDUt$1 zN|$tZx0G~uON(@alynYA4BZVwNaIk_T|@V?ysmxid++;sj`w)ihnX+LigW$XfBa%> z|KLin<+*<6!Xd0SdXd$t8AL)fEfU%aTJ8)MO~>yxIVX#FQybz0z-Z~FlAhF7=p=-G z5nM#a!^!3s7!xq!8d?6%wp4*9V^serjT5pzGkZ5kG_pN?uM z{2NDPB0#5KWNDirWfPMu(F7Ktr}8iXaJ8xLUElQCS%nH`mb>O<$|JY3sDM%);K}A# z*7Kfoh;v>opA0sQ+I}1)R%1==@ZuD-jO?vF)PQvArg3H5yNd~;KdxG{RT{urhCW)% z>cFsm5mm@@noRvZNj(!bloPT_sg9Z1My#LA?r;s}>N;2cWcHiwPCQs{Vv`ce;=#Hv zNP-$x{&@ATO7QP5caZKFl>+rRBCgHI*rGhmn3KFGO%iBWq^kl8+Aq+Nrpz$VXezMMuiW%>Fs;!Rxnxdf#j*VOFvx#e^4Xt{#n&m zpUtL=*UgM#_og}tp#86V-PdW5WeNk?nvoTIm+ZQLcN+7~HE?3>Aq#DYEp9~oz~R1A zE&8|oW}iOdKkG1#BgaVj@;t5QUuT@y{HLxzWDl>Ijh~B`hdnvToWOV)QT`mynaD?O zYwdDU=yR}*$tP7m zs>DOQz$-uLkr9k3z|ykpAO72{1WB_3`G1+N&^`VUP=F)tBp=_L?=|@H6?k`r;nnvB z$@-~!wupW*CI7*hnXm1(AuXm&c}*kuAQ1o+nh-bw>(&DscHH^!pr=@yWLpedO2YDn z-TE2VAHIF=f_o)2@LJelN?hvtqGymLL%>^b*{~?hZb?jPTlwyEtk)&1CSukg5x2h9 zSAuNEnLV4t|Dny}bxPjjbXf75p>uN_T;-*>u6VP6clB8(_4+kYOAJvZ(ufTk$t1PZ(mfPcA2Z_lgCsbXGuzc}>(%k^*9{CV>0 zf=+E4+ZQuYKi<9`Xh_<(-5X$NmZ+fSEfYtx#iVF-Cu5Sm=q$?i&B@Fm7jC4@?m#w? zTnVQgDy;?Jy;r7fb<6#IISxj|ayQ4mYGrPhw~XUKs|$^%sRCQ zy7!MAnuh*C#=Q|M5_cE}b2G^L`dO-5N<11&x`$EyvO=MA4ct@Z%A}%U4S7~cLpLPf zN4dy-uCNWfAzUz?y7B%(w>MWWH+@zEV$9{0w-U-UAG=el5~e&Q7Ft|!TfNWK`b~kZ z@)WmrMMy-O$})&?%*4sSFfUWlZ)rPBgfry#&)nBbUe-@!UX5KfzH>rP37YDJZYsvZISHe{Cb z&%h8M_UFWmq}p6=ESGoT9R!{%DtE_28AAVnnE@PiD$9ewR7s{&Tf}s*8A1HbIMHO^eHq+)=gD5JPcsB<`jWI{?Qk+-=HfYu8bvfS+y70Qf!5q@ zBzE3zsioimS5`@-`MD!7!Yh@nAxZWk3)18B<983x@pIH=Af~0FqI!JLZoI&m8I5SH zdT<&^7^8bB{?6h^Pl4yvw5n~zCS>wjq~Hh>H610Z(S znR`4xnw>SCZ0g?rWugeiQSF_7?G@hVKjU&+g zrJ>w}r-3^*S#LHZsa87ri?R<-Cs<{PJp9h^U$%qB)ppATGeK*O&b(t+pm#?^ee8+>O+iP0Nn%tQMUUCtMsZRxTA$ z@6}FO7w|qGID;kwqEyu!Yim^`1g4D}{7mb&8kN@+JKovk(_7%o>~-#TpI&;fkE1TB z=BMF|6c@Jr+AJ$U&C$%QoH}73==zqsYCha^?R1AvCJ0_RSWSeW#of%ksva@BWqjP^ z^Nmcik^MCa=PRJzJ2{`QpR!NHv-E!^t1Vy%y-4Np_Jcn-aIb%X;lp{ZZQIWD3J*-Y z)pWcjm_%)CGQMS3$(!n%W=8sUseEcLq1ML#b!pa)Z8@vBNpby#hDHO!oNC?FG=Ark zah*Z3X(K$hh2HZRn3a^wcpo&K(~qHPU-~@@Eryo~7bf|f`U@CHkEUFvL#khocPqgA z7WHPa$M0#k40sH6H_f2ciHTv)8?a<=Y&ug)_l;w%jowMhroF4F{?!_rZgzH7fjbd@ z@YXDCct)UXQd>q!O6taRsViST-Cwm`)D0@;sZBrurPrjE;JNiyuXpQ1q7W5TYJ8i)iSIInX=T=82rL=6jb{>|Q z9DHjRB1B7yDNqrUb4PywX{PXAlsD9iQC3*1Iw%z^7wf!STsa=mu6!Yuh$V2no=~h- z@^*D~b?VrE7qemP_l!SFtq9nvx2*4xASkV7Gw-n@hyDOqv+=so1B*^aG3n(KH&}$Z zI-Mwu-cEzF3~JCE&D*vdL1y=#(tF={oC%6GnEMrjg&7)39VbdP3a|Gn*>_L1S|FZwqLx7f!<@wGjj@!Xf*`Z2a z29M9xmnM^@pOhg}qy?FLJVw7iw*fqrnyt~bDwP7Is@zs0yNQMXm?0IGL7R*A0Wri% zL(>ufmP-7pHam8o60%C&HqtC|lb0hD;%(e$750Mu!fudV%(SiL2N|>w-kkXX=NL(( zQ08@B>QSL8x&Je|T_k$L`(mGKYhLoRKU1OL(omHbU_anu@rYikrqCF~53&?ksOf*4 zI=P2$Sa2L3wLc1D&%fQBd*it<@oex!jzRDM;d$pj&Zlk2A{5An$aGee%*6yQ}&|Ho%b9@dBkZU-@jocD!(@?!3aIwCTae8M`O zgLKYP_CjuM)asrx?~4sJGnqlBcR-(92^c7@FInXy6X#uGyyI)p?JElT8p14NO}|X4gHa`@vD| zcVFkF-3`*U(wXwk6=jFg?6JI684}z-%jZnxd@fHkV=Ie@wSAYJvXQV>GNoRSG=5n= z;|DeLKkW|#7>9rgN417Ro!iLAL73anP&Ha(;honG*VWqC2XG`eK7ctWB2w@Mn@G1k z&KlO|$`Y8X1JHg*N*Q)}(*X0~mKh&SpuICp zb<5~ZGP~n3CUcid2-lHJwnd|?7K>)Acb1{8AC}E&v|4*j$Y+Tu5}l!xjV0*vYT4(K zQc(LCa&xzTomING?M#q+yf)Tex1=+J@j67_I`d+|nmzww_>cdjTcD4(V8in;CZ8rc+x9aPHuJ z7P4O`PZmzz=*C*=E>ZR0$(EsjwphErY`ZgV`&LmVyS0u+z0-Ep>K;~dM1Frb4}%w~ z{n(-@`I5}!Yf7vs5ooYQxyYKTCF2V0=gaC-9%(iC2^i?V7c$^=y*!){NL8CL6?>}Eht%M* za&9>6U##3pzdH?%dWNhLsI(gFwnFB9@Xd|P5*#y_surtWt|ctb?D>!#ky5o@wo$74 zspKyH1v3R6>x6!`TA>gBtf*_Afb~VuAk;;NZ+RaBR%y^5ovE~lZaB?!L9RF%)rv^T z=kA3s{`Hkc_c*L+;96afw$tD`LrqVLI(32S6P)Z!!O5{V+3p7L0m zqs&e^;z|}zh7vL-oy(`c7rVc4Ri6z=#`5nEWfCFVzCNA}el=6ILSOZr_q5(MHUJGkdO8tJuw#oQTisf3 zyBx5U}+fCV$PozM%9viqPuD96SHv_X%@RYyLQ^^p)-#hNgTLNQyG=+ z*ET{l5J7bmZ{U!@KcSegAaZzUv{%4UH6`^b5y$h9y|7mN(Dczg_4UL1@&u+ zPc0R|jMKx2m;vj&rCPUe5{&y?<g{HR%EhqaBP+rt46Fw^7E4rDb|vB>rTmi9o7Z8go0o9eMeHK| zF*7$?tF)qUI(I4erj**#JVf@MipATX)#8)u)lK}Nx$=O{daHRhQL+yaVFU7FlbeDc zq7+z%L#;#MsnvwVcdc>b8w^L(1_uh6BnoN(yK^Fw_1L#3n>aaoiKB!YKhvhK>vPDe zxoBg4z#TiYm^eN;w9P9#dftgFs-_=5B`Ph@Q6TF+gRPZ53cJybKVaH8Jj(~yl90UxVAqq33kijH?w{Na%yvZ9mydrYj~A=Hw=*5xy{XZ= z{&=m)P!G6;>G4I&cv_ww`G1Fqst$i+dyc#0Pb?XoDU!JKWxKR4re*1pdN`Ghh)cd+ z>7j&{)dX&F=3PL0L5{9I31}spdRYHvNWCAwEk(0lHuRH30*$qw`H$r(2l0CNPo;av zHRC&5ENMZZw9|ql#O@db5ECQtw@pcu!L_s1TI=+5uZR3V>RaK}!o$=l3s9l``{h<~ zF|5#M$XI28l?&ROPE*|HjIp#s$;y^0RWxIFcq&zNcseIK2wE@tR8APyN9zHa9wp=c z`-kS6?9$kjW|4w;wJaoBq)O=cW?=b(0R5z_S()05_L2a->D{S5?+O9<4IN(j=neaA zwMeq;(*?L@+wFGMnw959W3TyWhIr6(SLN#UJS&|Nx_iTVrd{8v+&a3-%qJm;MC-xk zYFUN#Ei*IA6UyK>cXH_(r7uC*DfsG61m%eL57%2byW3+V$!760%$9>}Q0D+q(U{Wn zxDUNZ;NNrvG&sMnR-tC4FB#nDhs4#gq}l503Nu)#Q`OLlezDV*z4&3keEE~f#cxtI zoUT272&?g!m&8d-on~N!4SvS}eUo^1zmZ}%eJYMdpnwX~E*N3oaf>gtNoBKS%mP8>DnO1zOM*q!!E7dGZKjcnEG;oB zYFP=PvfX}psm2wOPt7$tXSs#q8Csm7y6yv-mDO(Lq|RNSJeN=ra@?J=OnPL}`_hsZ z`4${LX0c@~okGSRY_|5~ox6;K3cM6C!uxVJXY`1T5uuJY%SQx>I)B0A%@s@AtzYKQ znuMZovMc{g^s|YlYP+559L7`J>INe~dIZ@+bfg;D zp>lx0;MO0N@oT(EJ!1WUX3QqJ?;YE6d4&)(2@Ag@fu$n7vVXZlD22&-qmUSd*MYEK zAwvZOeQdN~S{pb8&O`<_9(M)(SCS5(^6!5T)udviwSe3*ZFSon%qvm?DF`K z%qF#dy>zUGRDlWQYAnkI2&ND3^4V{lr(n}G67pqs&!x(4bZ zNRfuE*TC=lst24Q$sKN6+|44ji!mTrKmFzmkQz~HfcdmP1A>1nLsA3 z)Spwb;EGAAN#bxecdmu^p4yQ!YZFc)^f`a$1wn|-=EQs#M>xZ_A-G`*IUw)meu@_EyZIEHWD^&S|_%sr=P+s zjEup$EqA3V1x47z1Vv9<;KT!UGUB&sRCF!QTVxsBWQBGr#aa{v)Ah0GH~Hty>jlrf z7}mNeBpqd;drs`%Z8R-iTd!w9rM;JBm1iPp{p^@>+NIhx-*(SK06ZX%UlZ1Lgpnw6 zNynJ?k)qTkcgm!->f0f}E?{89Z2}sZ_-@jmUZ%0$3PO*9Dp0B;!OL5xG28td_3KcS zK7~%2av;vcd|2YhIySj_nVNf^#o`Il zW073^7_Z?rw4Ge-of)goqyM;HtwBK19zG>W%KxhL=_7OdmA|LkT9g?N56F5J{k1Kv zHI%7UmhiT>nKG;Z##JL~C)Hrtl(tKQs*PnmYrqrtivw4HKg)JmhfiY3lLU(4B(DpB zPjWl$=U==K4f29awVBhY6)Tk*(Q`Y!q?(yi6Fv$j{b5^y^%hM7h*^oU`RQpzSzb7_ zXG~-pn9`Qo)b0_28afOgQmR$m&14HqMZw1;#JFLSFU$_aC=l36_7i0|8-L6-oyV+y z*ZySMm@giB$3bsV@P>gr#m+N7LMHD##bxcTJ4UGN@|T(IJ!o+8XhKH!#ds;lH#cEQ zeda;&P&FH5#C#g=Z5a{la_hDVF*UR~*%o`FQiTsO`fB~ruB?znCF>RKu zXL2g4X{%&NgUA>Vl=_s1#fq<=VHZrOoCT@dO2I z=J%oU7L$F#5T95+`xHM2OJnYbrkj-HA8fVLLMhO68ggvf6c30&lvmtrC zVo7}&tRBF$0~Q@6oiz80Ul2cSe|(4_hOrvbXPN$5pR;e96p+r8TyGozCKPIug_86F z>x~8yXv#coSC(6oWtx?R%@xnrnyD<9mZ_oCoyw@+2YF>8%CY*QWDFk7WQ8>M-gX|I z4R~q>b~$g!$v;H$a|+W-ueZEK@Zd3&akr1BS$uGH_EZphpCfY3r-Kb;^#%BoQ(i-CLl}q?s!|%vU(7Od z^B&cO&8iNO4X>UqbxJ0hW_!nls!rCux@JV_3^T-xImISs6bU~cAwGZ?d5R8A>3Egc+6hYv5h?^Us z&q|6DB+CadURIB+Cy@c!_)k~^Pv_{ULee~-z|K~-f9q6(Iv(@^Uh618opgSC-p`ZY zIurlibNDj}+C~f0wL)}QyyV6HVm5!&*$*nNJt;H}p2~rfGrLOpa5{6UIeJfksmNJ; zYU;H?wd3T~dc<66W*T(k?l#L1(99tyRB{U8&l2;(jqQ&BMg#-$+4{VEIcqfsYOnQ% z#C8S`9X}-VaSd(HRN&?p)GjDlX6zN{T6xMz>C6;DcW-nP>PBViD*5T5@sOr3si}mn zHKu?bhUodO`m_mmq&1VQ_I1{o76Ywr^QRw)<8DK{)mw>-nqFK^I?Wd{F&SHt2Q*yj zi3!W1&4MGlH(Q_d=@$I~nu-P&WQao&K!vMW8=x-9X#O1e_FicXqED^MB=!(Qcz?4h zrq$r)tFHnPNhY>hp99@yLO7zwt1?*m!8wl_7WWXio+;C*;p(W!r@x5ky(k zZzJceE6|s4%>vXuNZ0E)3C5f3?7?IYYm;T(2051RPj9*UG&^C?$a@$<-Y&F1e&=n| zy(m9Ja2zGo-Rf$!uBmE=g-bW!wTxgm;b=8beqHuk~@?7*fnLG}Lq@i@jsm zlJ!hZTi+W$QdDa-Bn+s$IDq{gYS$dM|9tI3qc5h-=@7GT9Duf4N%O zZ@tAp;QKXFy1sRSSEQ{h+bzSYG}9ZL{72D_XnptExA;zSm0CH0uxx|9%fiy_s*7e66QNjNxtX1b4XDL@T@rxt zLswa$+(HIIfwl8Hp)bRJswJ=Dnc}kj+f&d zBCB;x$9m4YShc8-S8(WBs)Aud?|ghJX4+F-syBbZhG#!>TxTh>l)f{2Ji5l++g3)5 zhtkX(HF7A*5`OplOe!ncsWRg<5?)zApTtmd(ii0bELs&VWTMvKfx8Vo22a0*tC-lt zL_e;gUjmrx8m|{&u7Qa)1udX{Htj-y77pkKKzFm{jBK0AE800qhS*^48K^>KZDa8^ z?UB20slI>^?#6W*cUoC--^AR+_GjcLB^^n}K%A=oU3GgaNVDjWu_i7>WxUq+E|Bzk z>SeyJ)l!(W0hE2zv(#p;_u%P}Ar34&Mt~Ckd_up8-&%J_R-YFl`Qf)gX~KtFBz)G@ULd6_XgsNO50u z8#Gt=)QZXYp~i5BHSH|qe?aQ~OCeEuBT&y_NPkitLM|lwM^n(|MQC2KXf^uM$dN3f#WHS--nw25c*#NdJr zjz+?`BMu!H;gs7%v}Yrp9(0IzNZ$b7nk@X>a`2Pt9LZh6vgq?HtHjzn|9IaI25GM9RJTF=P|CcW^$dNndHbt$T(g*U5D(Wt6?gjvx%D+{ zTZ8-HdYFi(f1u{`#&zj03jM<&wuP8eHyx*z#AU`-a{+U=j241&kfDNU-GTE>`X@~b ztyjBhPy=Q>@fSr4-i-5N2BCK<1|v*^?p*d(8@)Jb^(vZsrpk4R=PAUB>oj~jJXA#! zqbb|MRM+BJ!g}ReCoVDezgn|ulkE?;An&j@FnB_xu->S&jma#H9y-3Mhi+RIXlf>A zMHWI2Z_KI6pmF0DvDS=nljj4Gz+xCytP6s$H9`&&r_F%rS?fi->+tqMa?&}$%%(6B zbaVNkV=YD~loM0_oK=F!d48{COPN>%^9piR7m-5FgN1?7oKJpw}iGNYtK z5@{MK?GchSGzB-!_BP|8Fp)ies~YDGKD=2w8ASb?IzMD+QHl>xbc-Vyqpmb_@qr$m z=Rm#w$%XD+hA7jREY{}htooifA|$s0R3R6`!Av7K+pDSM*NI&ooOv!> zRQd&G1rAaG{wPs%F8*&-%;TYB_wbkhGzq7^0RAH>wZ{t#B2WJRBztc;vo@Stf|6fu_)#7SIW=Ycg7OTy#i zQ?aTB`N@+BPA(hU^MKlNn!>nD%aRUR85tGk?w#WrI*oEd8ylOcAL|>z!NkSdt))Z? zd)eE7rWH;R7PhjTceR}KCTlK#55I(q{Zz?C;scZQ*H;RSm#Kg#tW3m~eJ(QYDd%`l z*!8#VPAbplVUw7`CO58iMkx{iN-b!>J??pU!UXOpzw|p$AF#MF8}n+fYxxzsO!?7iJUR z+>X6KjsgqkW^Bww4+glcjt!hPS?$;N7Q>nI44xSqya0s^D`0%rg!^wUPoQAx+b-h6 zqYADV#mEj=J>*DbFY|No7%L7m=1md+5!hXmQq->%o1nKS8k&=(NO;8suKLE zaog;TNYokpoq0K^Xz`^D3ZNY&!`0&_NVL>%x{6Ys`5rd_vK*G3yeU-nI*^93r*2iC z>Z7zGsFk+GjaekdiOu#?*Jq8>l_M_1s8J|yhDfs~ajokdfN6I(nJP-3;+;!kicwKN zINI-O`btbAQ1cq<)=P0yAA+*Wiy)wuGBLuk&93Xw#)q3_IMSVeZR9`<8@#(NW+AB) z2!tF(hZV&j)0`8djEOpaZq%%sVoT=~e3B)^*>TIPF3jrt>OYqXcHDqlEVt>Nml&sI zP*a`bkFs&1>0C~V)4Dr3MqQLKdGmk?M{XY-9du+$mMMIuMc$lpjE}Q! z=sxaap{l6&dB5I5^^n{OY_WZnbi=Ca8d@gNvY;(Ln00h-z(s1a(|ApzeJO_{6TTWw zkQ9m4aJ*+MF4oqOyQM-d+^jFsQ;@!k^xJKZgNaFqA26~c8?;j{&}!t#!;ei2UPmS@FBFQ6nQSA_KK-qvc)Qd~J1 zX{t>plz)xsHoFHq*?=}RhyucyIYdK>_PRH~SmPWYaRaGj^eXsCN@v8*S2v}VTi8l9 zxWn5Ix1l;Fwy;UTD^qW5y`{F7S%#qCG2w$Po%Wa31qH1C^|%Dis`02eN$+smPR>~! zgMM;;O0f1ZextS$ zT{5GqPT%NDtH-N{dBrqZX~|z+BgzM7*kZ{RPr@|7$|tM%HYlyRI*;F?!C{v(UlPsV z>Y_Z3KU=BvM?SjnH$MDyFFafT%^OWa5hI$Xe_-s&+gFl#`s)I`VhRg-LrF&hL7sn0 zoNMQ`Xrh~5XXD)>)JC3h_T4SB=rgTV{mjIK_0fOhU9r+_kixN$5Id$yh%-P>Q}AHt zpH1#)Y?iVWiq9-Hhf{x{3zJ_22AKc|-eq*>F!$!u*KHb!w&SlAl$RXbuMq`4k->YY8fG^KO`33aVN} z?!Ii{)T>~B-k2i(bHCH!upQm)fDfu!P#MaHKU|Lf=>7+?&hEv?8^LQ!{GCybyVjDG zU*kx6QAbP6!{laEfe==OP7jD1lW>g%SN4QwABIXF1hMWy+8l`I2r8bnD6g=)zgGcg zLN>DJhyuF3O5Ue*rjNrZxu)Xs`LxpNTtIlkoCfmy0bkE`^Wp^l*T#*={~s=9f7I+t zlNffT8|lV_=k`8l>N7p3mv?0Ol^ATxyC|J*y!IJqr)UvFwH&psu@)1y8EPw0Q!Ryl zau~s*J3Vj8l&9GV&Jq0RDslE*`oH(~VZP>n?d<~hnB(?KP2l#w9h)Y@kNuU3V5&Dt z|Ccy=%m$=+WeE{5m(u+4w=_B&=ijG~m30=_^J~}c+aJmF|2bZ8{(p(RBNznPJbChX zCM_nc_V=42AohP*y#4=5lHfm)!sTi1qd3B8QgO~NXSCANAV-4{wWc%4i!k)n8aC&@ zQ?7q~(r;H2Pzlz)#I(hKD@HChx;G{-frRBis7EDvra7n^GFzB zLCm-Xl(){?y#ebGZI-L>W4gG?SMFe+X#%E7jNn`AR+iygi<><>a&%@}LAxO2F38vi z57MubxKDsI#o=gK^ES%>cF8Cq)spp{)pC9e?9J>9Lt)Ms2zf6Xm)_rP`@L@e8Dxj1 zQZgT#Q6VyL+4L0NbiNZJoet6vYupRAX{tYAQ;?U@$S4-Cu$MD!f!u{Dj9afu~WcK`X2u-}}%3BKu@mhAHU}{C)^O((41>woJe*h; zTC6*rb!g{G6w}f!MuX=oMvuvU5!E#W+9oUuH_X#F%+Am%$)S9EBob)?2YCzFviQZ+ zkzRCoM%Bs7A*9Y9p?LXlA-dKc7{P?F>~8rww?MX@>M$~HFd<-a_+fwMgwU&vyv49G z`}Do+mhbOFZ5%T8<`UPhXQa`Mb(257TfY{2;C_iFGupqvWTw_J=RPd=DzgEF$!zV1 zZQm1;!=|T{x`|U0UB3mo(D2MhLscyg%G^hK<}BQOiB&hboH;^`ItAaWFUn< z^IofTe8x&(cbs(?YSlY37^iD)yh^K!?S%KkdJbc9D>A@DTcANV7uPEr_7!rlMOp0o znUfrsMj|3uj2e~jZs%UuUkE9DNmO25OX*F2OlED`h^0Cka@kH){ zJm%3ey^tmKGwj=~97zkVt3uR)Z+}7uwNcqF&)Xkv-S%W z8zH36FntUMz4b6exeS6;WTe@|FQX1ooW{|T`h0~+@F)?B=z1>PL5645|CUC*enj~T z|7pX8r>~M)apc!3)SC}4bonTM(}Pk7y6bJdojYdwIH^Bmcp&*fIlHS&o^cS8x;|HY zrKtUMPEBI^1q~s`%vJB-jl3J$J>$raVp7_=dP_S8S+MBsReo?PF)V0FPDP6;q z0O&CpidPXcjpuN8z7ZO>HU$5ps#*aj(IM6&$0_Rt7**?da?9b$h{lJxl&UGFT)nia z>o4Dp!}?k?6{yj_YchBk31ax3$!ehb@waJIf|gHRr%D-u2C7Z?L|nE}$?#oXL_?lslfqxTJ9Tu*{LG9DY0K+%s7qwP3fptU2ixbp^qjyfP;t$+iFu*^7&2Jx>bS10 z_k$f-?&u|i%w$UxNpDgxhR10QIW>qi)%t{Sx%xugk!LCQ-hNd(BfM61)yjYCm;Twxtf!C{Xp8k zIg3`-+_e@@f-Cy#q#{1lj=I3wP}$nWK1= z-9(+>OvSQER*?(A0dXW5jC;eF@NLwSYQ!(JnZ4hsEuU6=8yLxBJsE!EfuT6r)Sztr z-k=^|_=Z2XzCu!I40F@2)cG4ealr99&5R?;^)6|7Iq%pViLvZS=dn*evHBLHNQ|1a z;~ZxrL5sqCR|R0`@a^Jbck+xw1+66w;>Z!wm=Z@$oj~+k3w!VP6%|;jZA!&TyNrz8 zAvQKI8OBEbVxBg|7+30x#&w0LCTVZ@uDlJ={>P26X$%;Kawdx93FH0_Jtu@;YxHQi z_6MdVtvo8YbJsdb#E6?K7uh~*)mIdH4{~~ zezIqCPqLjS%M+{(k<2!LT^SHIRpHY#?jmfH6o!lGtdHr}ezqXDs?iS5eYwHl6vyXA)iS>-qGk z4|;)Dkrzk7eL6oK{?%ok7S9f@X;3v=vDTitP8;}luvKNPs%mfpk;QDAsSy(spR=WC zqE-D9bzR5@U2p$tApb9moebwfEnJ&}iKCZ1P#pO$9KUqyWC*y3&(AZD`AHOrxcvrd92J*N6 z_YF!!V{5ic*>h>MtAAInU&$^dr{<8a7N7Pg6RV}8|7s@toF;7v1xGewb^hjdUb^1# zw(jEfy>ltfXfAvtp4I-Z|83-HWGT(W7WKPQF9e_7v~4@l5gyN0s^>$an3qspoT#nt zsg8wN^Up&`WdGG@$E-HslUZT6`zbcH`1gsYAmO3>YO!>=RL6x#Egj zxr*_LN-?AHZ2ojo64{+F=!K0$DZu>n`FivS#zu&dQBFn51{_1ho00`orI$`Yd7X6s z*ug4a44%8g_S}dMboBd(XAb~5H9Qsxq;xaD1PyvpWyAJ{LR{Jtx4aYbcF(_8IU5Bt7!bkGFrbk zr6+IU5U1(FYg+1Ua*VWhXd>IY;D05x%AfMfEm@YJhI#x}JT})j5@}O#YOQ}lzz}I4 zM+3_e@$9BVWv$cw=o?mL1QTuPPy7j5fj#u1*01@1wm@V}xdVG&QCO10pBrH+J(T=9 z?meacLm>uEkuS5EJk+V=1b9wp(3732WQjjN0~o^nV6AAJH0g;BzEfY6v-W>YRcKm; z-T4JHi;nkokCJY=y8Kl_au3cMPT<_-KzKHAKqfn#&Y*>k3}km0{a*zTnE{vmlE_^Y zF$@}bQ*#N?;1)LQZ!FF)6TfutK$>fZ2aGZKw>sEz5z-Y9!zKw zqbc!+1bGD^jaMQr=YXJx~&nAQIn=EGpQ;c*PF&!e|p^xgmsc;bV;}4dmGu(-< zT2Fg=zru3GPK`X7-t_m;Y$n<)%|Gr1^Yu($I8Knko!(< zquN~o{77HY^gJS&F3VhUnmUFOTCMRZQZlG!r}s7Q6?i9TAg0ApL{Y|&b2C%o%zlm4 z$yxi%yR1!6La&oEhNGC*H?t1C>~~Gqi1BM6ZJxmAX8QF}f!I36EK4_sNIi@xv`q57 z-U46QJB+wC@~+BhoGafl@TB`uUKbZyl{}JhOxGU7^UMA&rY46O5l&>bS=RtZHObzO za!JC%TM~|=E zKI$F_Zd=)By@GgucR$15PoQ(e;PM!A5zp)gnd66i2Xl)$UWw-K1ynUT|6px2b<4C7}sr(=d^UZWScNvRexr$N> zywi>LG*PJKYndImWDHRCdGhp}D#-T4MTcB6WaY;JcDb)RKff=KyDxw6Ap81^>W%k_ zJz^4Fcw%h10R2?7cqC#Y#8W#oY~-OY?cR;fEbdLf+?+=^z4hc?C+tj2GP4u67bIw* z`dXb~8{xECfVIw=g+@LLd93o2@zid0>Yf#5pYCnOwCC5Zx-XIPKauH#Wal?(v00L5 zdZc0Pa{7E>KQo(OdaRScrqn!Hkt}zCaHRQ-q2hpRrgrkark~%kWrfaPu9C~ zU-fG$g%9N$>>jp6-_0VPkVHRG0HzE55*I&g=bpQH$Gqjdpu4c#aXpI6c&cul+cf^| zyo4Tw_p;uzBOWY3R8JrNecJ!+#C97mahK?`pZWTG>m9ZbjZ7s;e|z;7)VN!Di}&V& zeQg{FXd37NmdOMnPCw8+X#@$aTOTFzm;`>VU5`4@*CRupGWw@x)W{!Q=K3(J$8skS zIu4J%+cvn==3g#i*3-`tKPRjCvCQ`K8(xZEZ!KV^&49Vr-S~#)Bfj1rGflD^CmxL6 z!qa%CC$dEE#aq`k1!_rK5zHM?)B7yDWwDCK7{a!!ck<2<{&S_sDAr|5XM6(@)fY#0 z7d?IH@`Hm&b6n!rv?O$Hk=uuka0Q&6Q|{SS&Y+Kr3Dzk~S(8;|EotNOiP^Ed6lsJz z{6I0zYpAUg2yf5Nww7)tOPPS<0~MrYn9A!q6sDL`kTG@w96>A#D@fmw&zH``?4WGb zsihYgcWhNIAN;~g(%vu>m)So!=fEmQBxz<_V1`t&eCewL=&wi+zU@rAq9pAnHgpuZ z^%82hMvY)>qSwb{v^SJAC-f7|Kl2uiAiA=vLDGFCCDVV!<|h+k)`ac~O{y+Ym<06` z)}kNF_SDH&HXRS_@nk_i1a7g391wHD+$iME*U5rv_4F#yea~D4-{5K;6VWh%@Sbjy;efLZ*?=eyRiRJR9P_V zU}eQjVSXk~{Z)Gb)6M*$&uluE3sZQ$ejpuPy7lLE(Y} z*(|19tX=RF8^;?F?bfw(YIzL7oXf=O)ENF0oG_C=HyL)hV3m)8^#wEDByE`;a15LyI z*53P^v(~NiB`i+@ah_)6n^mM7zk}Ab^vX)xD zH`g9-%-zsIZT81r$*MliIBt)0p2Bc zdb$m!%yV=NCnzM+v73N)MhU^y;4Nn>Wshg3Ip=*1;0_(qev7y@1 zT9?*jpkqU@9`W9j1q>uvRU8OG*NQ{yY``tjYdarN5nOwa{(-xp+4XMstN!@7T;(iN zgK(6(%>pkj6CAwba)Ke+CV(K9ciml^J!jySDZkGA+-&Iv_d1J_@4nyes&hO7%p&Ox zsk98s!ZoeIwF1V@0ZadJYYTb%5=;8bnv@@let#NPZCn@mBwoc`KdYj7wP!21bu^dR zotWG@UM0!@>4;s|k!vOU(&iJ&d>~xm%l@OT?fENJ2Rd)0C&FjMCCl$4D`dJRUmUUg zmZRi`IxBQ&2I=H%XicM)Bqeoi)7rCKm6`r}04yo5hB&p9*Ps+S={M{iDl%eRgkMCU zYwKG_As;0E6iL&Ly=$}8Ugi2?Gz70Op^c{lDU&=KwbJyb3^Udr-lv_vGIVw@i*XI} z`1`ih^uOXx<9))8Sj~*ohly4M8dEntMlccMWF_Yp_q!IdEaSq7C(S8oJr^Foyfr5o zDXZOw3vlanU`5{CzZskh*E`cS9?deD$Oafs3T2^rLkB=vLb)VXp;quYD=QL>MmA^4_s?cr}U zUFw->q~}WC;NTa(aL(9u%8JEFHy)lJ^J>10$O!3pYk9A$0|`nxOhgD(@ijnG{ls98 zB#3GmvB9CT(fO+mpzqwJbp_b#nEiuf3W<+s`O8_LR%G0jLc56x%_>B1;nhR?`LZXVGS-w0NvZPYUx=dKfQj>1??^E zx+`}*-7Brd01_zm@0DgjgDz}lls1Q#f)E~~j0CF3c3g^S*Vh$%uJ4d$v{+sGO&rQD zanH8nT%I{HEbDv$t>8pRID*yf&-*$``!ZGu?u|w$EQbrUSXY_mCB{LU3 zr1k>k*AuDPNxJV|Dwi00(%qY*b5bg3VUZ$1owHciPx3boC!tR0!JgGrbh=kP`*kx4 zRr$P}yb-;nbNJ70Mm8RVX&H_I>hrt$o^MfHHd~j*3RQ}ZwdpOWVn>`3?;t-UCw6hq z1E_Uc!07NajU3A;^*83{tR8{&;Ln+X@I-xuv6l>|mkcR9jRvm1^lguumi!6-(;Ny8 zo{WP-@=jsJLD_Od%oEu>!i zM^^Qm(6C2&e8$IGQ;b?u_K*j&nqh~OmKgBPzj|2z`RZg70%knfu)gZ+O43%_Kh-#?G5alpD~|GEClFuYIyK%|;qXh+XG2;fp@ zU;DTZ8&0mN#pV6|d<6dUMFG$m_1kU!vw=z?de|l9&$YbRpa)r9ev_f&^W-~W16}pw zL+YXG-RO?W*;xL;?ZJGw^(kKjd1JN}XBiRddjzzVg6A+8D8)Ohg`FE(Sl?TDzW&}j zOT+K;_k|BGT<=$jZjglCRHCkg|GB(>BYV3#!mZFk&{S7B)3+SKW|O=XWZ9)j&b6Dk z2;`HVh+aF(EVX3*sGqfB{59){48c?$aLmQbF-oUmHj-AS<8 z)PpTmuSK(A{$tdCUxn=BL6zwFI#a|e8e*Rjck(ON5A*f3Z?Wzj#mNaQSlNWPRHPxSNM zf?rpwTUSv*|=Ja_362KBIC6U|G@vXE8nlMz48>y3*GtlQHlb~KC?a=ceQc!d9W zSEYli>>-v*IY&cvZ;;+_A{vgJcI+BZPUKj6T7E<@ryl7(H~!HjI8O4&o=SSQl6)p@ zWl8Y5HU-VQoz%o%uQdJrPcw`;Qj>bYmLOFj7YVf#rhM5q_ZR#w6ipp4dGD9ywm~P^ zP!?x*DZSZ$8KzqQTr*DpaCG#1EpD+t+vr=CgR3%4Y8_)Wqs8@?%DnwTc9-mio?6ZX z1+XveNcBSmJM84!;P+}EV-mLTC>8j7$cl<8vlucq1Q$?GM^UZ=q6Rkpww!? zTgDj;3|rk#`bU%oD;n}jgf9|}cRkY7ouGbM&wr!5zwq2Kx5Tsu8$whK+7;>vtf5A7kgzeLADP)+< z>Eeaq@xo#vN1xH&P8>bw{r*Wr^tM$w`$QoJeuZY(N7I1Pkkuw)A@tispD_Jk<*k#A z@dM0RD-|@k*|sg32QQizd)SmCU7~kyGUfjvsF?j-*pN0Ak+isXl_C#cC#*XfUu{C@t2LW35qu64=aAHCTwvpP7)lgv9l& z#tp=gregBTE9b@Ew(<}BXNSt}Z^hoOEm(0I3vCW}_jMR*qSp*hZeGW z`kMA6=W`2o_4ra*(ReNh=RakcXi-4h7eKy`dO1(2EAWLq*CtpRe$h=g=7sX5;aIdYwe9RaIrn?R4zFxCcpCejNR8`n214KP&g~v~Gh3j|Pc|gEgkV z`P2SBeQ`M?)0^qgpg+3x<9SwqjmcKpg&kgSBS9A%+9UC0AZ%UzjK88)^%AH^I(UTv z@Op49u#E??W0Ig$ba-xXx_kr@8~?d1ZhoO9QZ&Xu_ouc+=(X<=LD&a$pe!h}=-ljh zY9vRn5rEMcoyfrY)+=sgXnVE*hsrW?5(5xBXTMmVXy?@ml3e`aa@>?nZ6b`*Igy96 z{MsxN#9T34kE+0FdF#ra;pp|e*$MH$V0fzu>VdUkOm@X8D*7sjuq!u>&2yKUWu>Jk z>eZ-ja5n(CxV*ZpGd}gYvhySoS@S~E*DtuPTEM`=3xFfO1Lgyd?s2nyMd+w}{m`~% z+N}Rn`2km2;(z&`c~=}Ny-&vLGuyfb$k%5}r;jaFKOyuyh*7v4@5X9Rvvs-xqr^qK zdH6Z3iQWk0Uid!99!>6;I5Jp5EmR#XJk9$h2zk8}^9E#1Um&(di0OKi1@`=#hn?>> z0IR(laT#!-YhZwe)txjI+Mjla>}up(-Gm(vO11uc3Gvcs|B&8%C5l*Jb$EJs>fJys z)LjeXSxJ{pV#=|8s)sZL-g}Lp6_4%%9PF3J^8skoa(w~F*w-o8+xKGS2HR>WN~Yd( z!)@&BrWIw|^E?1=dZ2H-S)ajt(ZF11r@3@{p!S#i1<96&^=Dq;)_i~S-T0tGN$DB(FhZ~CR%=p)A9S2sMi;MC zz(|f=e;ePjC9&?`rPJ2tPso3jT-#Un%#vH$VT6p{sYrtG{Pggt&B~Ff7r1vs9?FYB zG)Hixx`VrZOakPfjr+anA)<(3Nzukbz+h2r7p$mli2i|}20%Tf7JrBS@e$#6=d2MP zT3G;$e>lvPyDCz>{ryDjJuPnf(<77$Mml<=lYj_%^>shS0GHhfJ;Nm%Mc~c_U%ZW7 zO}pE(Z69E6O%M(8>EOpvwL}FV@BTK83;e|cQ?ev!y3`2U*J&UoiF$>Mvo)Ada_g`v zCh8(y91jTwyuLm3erjOZ+dEf#(K|^GHK@ z;MhSt?~KhP0R-OHbsCA?S7&lD`xdBDAciG4U!zEe1D{+&>Dn+p=xdvJkG$KObe3DyEp9 z_O&l)|KKp(GF~;IQ21^3T|Q9smaVvEQ(%e>Yp_=J^6n#QXM0#VbUcjw*w{SMkh6n!RTie;(*v?r zljB@ab-B$(XK+LqFzA(j2oW#3UHQfB?W5;ZUXz{0y2q=Y+IS(8)oHJ$5AFHX-&t|#Mqzz7st9=CQ z-Gob)K@17*lSbep`WG`ci@d!%%|>{J>J+lOq|V6gx77rHp=8(UEtLB7k}Hgm3u~u- z?7efSW~zs-`AXfK{4bQ|u0WJd%9HPq%^qny2#kyuR$Wr6<@s>Do+9I4gBZ_)5=Q_hG1NA#PiUu6 z#LqP~m$omf(t?agY9F-Av`^I_N{L3#hsLg4M~JB9GZd!^D9fO^WERIT@`2ls(}Y=e5wyi#rcj|n1mNfoh6MT|)ZXkN_NQJCD-{T^b5RYXLf0#HaF`#olg z`s&vAclC9GgsOd_NCNQc1Fn`u=jf&nq$iE{V?Wb>ae9_FMaCTA@u+AtJ5}?&&WEQn zs(Tf9$mN4Q2J8$!F-uCjTRNVN>vIdvX~V&FPXv26^1IUMbzzGn_4iL%lap?nA=M@e z+3FXzDpvTMv;3{*Qu^w0mCH}4k4p&C&Oej``#fSRJ@ZZD#48yUDemgy z)~2h6^|tF@5oZj*0*=|M z+Igs9J1aUcW0kRln_GHQQ-H>0m`pJyu?l>&t3J6sRklpgR{43uj9ssXZhPGgs0yKz z8VeeYI)O$lxzddi#JbT5my&LCp=@YtnOvmjHVM8qgi0`NFv_yC{|=7 zB(WvqjG3TnCPbl4y;~13pw|Xe__hKxypQBph1t|bO8;bG@Yzzy$WP2Ci1thZbFOkE zb$TUv3x_`I`)k;L>A$99o&&_yg@xkt3qr$oqtuQ0Dj)pt$j^S%p+}~j`G7{8MMy4= zM^-w|Wsq&-7Y-k@lX$b;y-lDg=v#pjOC*6~ZHU5~x4~ZwYa2O?{};^{4bFh}w%y#K zb-QIx-3jki)ek$LM)(-fEnx5EST8FhLkKv&78IDlOsCguT-z{oJa>#r*UpgT0@HiB zPlT^0zDnzL^^P3s(O*97E}c%VjIg1(a`x7*m8&2EDg;*3O_#FYPVY%%)3c&{oI0w- zu;y{R?-~WDjxwg1rrleYUjVqf?wx&lZh+c51Gk4h9Tm%;KOL{U@&N4+AfA!Xi=#wa zi33#LXLzK)Kl(aIK%zcU7JVdrgN{xXks~IoNSoK(%=^`%+wJMHh1YmF!u`}26}!D6 za|;sU4rxrnIE4vVKSM+#>`0)WV}aJ|ve@5?5>BCqHankA&6z>#o1rrTk8?F)b(t&0 z;<+3obGAZZyO~*fJ|4d~uc-}(qjgqr?Ds|kP>&LG4Ekm@e6P^}lU&W2213{t#dMMO zixL$EVeu1zhmypYp@ZXaFVCkSltuTwk&M7>G2bcHSqb4e-R8`9k2eG-kM}Pzs2;O% z#u>jZ0=jR{-L&ZSxkg>mJxc!%WAQ7L7+TYTk?p zTKk?nm5Ou)I)d(1-o9i=*NowDj-!$c1uQ4C9E#BAZ=f0t*ZbkJsrAL3vGYu%Yh$^w z!ZXEKRjxxSpG+5}u&A^fTwV>tQ3plHl7S;IrCz;!U1%@z=()$N77klvlipi2x3&g- zqc4lwd5FJs?da?&zRn8|;W58Ka3q#G3R5Z=D;j$vJ;@wfJ`hV8my(p|DH%rv^6Bt! zwJ$OH4)0|&S*r?4X>vG?Xmv+BG+&LrbQol=`BtR(>LjHoL^Q;=T~#aT{n%3FUO@Ek zr{M#^lEkF^+!cuDk*m@gESpw6FAsW%*NhP_QGXttR0$>=15zRwVH_cT0( z5w@Jvu{EGHd~1Xdib)$xJ~99OS|mhv&pLyz5hRuj-0Mqh7v$5p1CliEM>WtSduy6( zHhhag&D#bPf>Tu@^q$CWc+^>%9ZabYtyQDYq$p7wlVVwOKw{h-7WcYzu(ZiqjxR|(#yPxf6`8>1=^68?q zo2|%4H4lWf-4LRQpXcte(}wZeZq~Z}h-XlcStHZmyd!X&h=JDkF2lJL$OuZt@Fb(8 zt*NZ|+dHd!>}Oa99b>uVGi-(yD1OspWw%*Opt#=GSE|O@X*eIpU(Dpvf3tXyNL~W{#&B>qoTK6p43~W5(-u`Lc zb#ad`n@@GCZ^nf=qj{D>Zt%(*?(7oM)S8BbWTi$UuYtT*GgPzf~rq>K*fbv0Of!)`&-9@#%2ql znQ}$;?oP$UDqgs(W?iugx!om-yB~SBKfPoug<9J*5e$uR8eL@z+`ZC{ zdwcS&RIBRc=%_+T1QnEnv=!fC?U4kyOP3=w1e(pz0A`Mp9bU(SWgT#-S^?!D#WO~{#{&7xjYTj4odGqH zi6mdtgBOc<1YtI1xsnNz_}6(8q_%Cj0X=K$g3}c?$^E*A>>|3B7+*8ekn0(9u8$H! zqEg>4&vVw_n&dB~y#Btw(%pSWpo_QHR$|U*IFush*hjsBFZJ^quz!sf!OJf)Nc!YE zJN&*XJ6mE6CV`gvsL$ccY#KN5C2G=+AeB6+S0G%oXql$k-S|!hQ}v18k9~)0t9jxe z!{K-#tXhqxOsV%Hiulu`qdKpIv6*#34%m&!lWJ-{2N?<`j+XVOHOFow`T9hpJ}Gdl z=Y28g|J`Pm`mdd9`)(ymo1Vcovy9Gj04}a^De>4}xJ>sHnEA;Dw3m|hB8f>Cv{#j9 zFAGtf6js|cYAi)th18mHF#DJqc+29?sAhi1aJ|IIi99MWi=BIo6t7&WCMUZylpwz7 zkR=TmXx|)JBTpY$X)gx7-RyDnc&E8{zAYIK$r29C#pf|=N#q0zLCc9^0H1K#0e9@- zbf2o6Kyvd$hF|>dq@Nw{bPL%6%s}*6q9NIIg{swttXeG&>LAV}gIMEczO5bg)4ijT za$X*)4>xz-uw5dsu7P&~UE)_)##Z7vK%T&5nKFI&Nb2KB3*)i9_%xVE8=}R-ND_2j zDwo3#+t!Np2;Vjix9^WV8%!CF(fN@3Uia-v-q)80i^`Cp#2ZSemAPxlS;ooaZ{gX2 zMtUqV3PF?dD!*mx9cOk(hupw5F*(QXMZDeV=~5pmPqneq^T4e|cA>VZDdP^t8JSFu z3yWwzv-!{;RXd+I;9Q5m&WLF@YB)C;F-h;2ck#l{G}(OqLd`taL%2LWu3)UtQ%a2E zKu2e?6bWx^?HAT6|17>eRJUTv?cueV+k>w4`N!zIrIvQ?rp z3BjaQR2wb`1eIIhg%fii=+;`4<&`mIi4Ae$^8U!xAXZm+gTD9W+-^sqPK)u=qZ^Bx z@#oi2Z^19l0nk~!Kca;{&41)1ltUo*)~xT~ENvU9_z9+LJX`1HaX0PHxoqL(es7t+ zI<9EykaWfSXe!uiRn+?}CC(a|`JR{T8GLEB!sRqz&|-&?d2_a!n<>@teEZ$4u4QcS zJ(SeRsqVH#9V4Mqx5Xi^4f7Vd#&0s!MgS3X38n+l6{qSc_j`q5(fh_~kbxab#z1An zeH4-R8f0XJqGO>(kXvZ`%KlV=pbCStDtIABs#lB_l>O`Q(P(PdTNy!tO((ENTIIKV zJ87}|fCkeHXp`ZyBr?iDq;9WAQc4u+;oQueD6`}~)ubkOh~YqNQA&(mJ3KdwKJeW^ z&?i&hDQx}vynT$7J!`G_Pp0S~Y4{>I)#dR)7N>BsHP*ogCx&U1+)Y555)B$q^DWO# z?0B^Xt!&A$=Z5I%;51Zs^Rm$>T#}*8*K6*P-I@lt=d zQ2($dpcXfQ>06$Wrt%o$l)dU(VmIhvelIvdWn9ruTVr8m*4(wv3F+F4s-rR>EV0;% zXQ>{Bj=Ve4oy3@`zf|W9I(a(##XE<7LtMpzqP|T z6bkqXE!4v1hzR){l+&g2ogm8*sHu-CuX4%TN&Iz<MNNlZmcQh0$+-G z;qr(^$TJV~KW*8wkk_TPPqInA-QLk!Z1OB99w#evE_>yXb6*;1rXE-8pT-I2I?ij3kN z6m#Vdp;4fcF)pEz@Z`G<#z1!Re6@u8F1gII$xlgA=NA_XjemD&Gzrj=X<#Suxw3`b zDccK_D`_?dIS7|6UY}jhS(ypYWxuDm@hu3CDUo%Sx9H5U|1vtQD8fOWMvoBW1nC4D zLv1$J%D6EfUWcV2CnDZh_S_J({X9jr(DDAFo8#(Hjh~XhpO@-5Sy0 z)ao!SYmQexLvvuBS=Lc`&UNJvcs-DZ?hW6iH^hdR z3pHY`JKs-T3yQ!S$ko+C|IS7#f$&`$VkNLUHDJa&wsC)|!uye-LVy4Wu=e#pm|?3I z=GotJf0x@A)Jbey-hH}`mVM_U|&xjeujBS5ego=ztlbqhFEBonrn1!ya<>5g=@Js{^ZgW!eEB9Wj_u)Okr{uWCZ1ZX&iw#m#r^D2 zdnl}U!`#Qf(Q9OZk(@L(U%6r3|4WGXaV76`$Fc+FiNwszeC?T6w?(qZdVilR{Y}9k zZ1j?gDfTGGYDJ@XUAng?)_2QjNL9bL!ajynK$l2ol^RT zC$qKM=gd~{k#N&QD({*$=y89gBuFY}ne8Byu`Q%xFL8P>ku}7Kp$_5hQiGvTD(*9w z&L%;xY?)rgB=4IQe_7Vx_y@ue~oUiFtgetb|U@^K3n4&_nZcJ()d3 zO8WQd*T}Bqn!U4x#5${`rU17n)_3|^(ceyumz*JrE6$L`Ry1DlUfD~D$pU#~YJP8u zj?H#X3zadG17R%he0<{es%{b#uXX%YYo%6cf^=a%mz>$&ehAT^!Yg1Dkd)Z7 zoWB%?L`}Zv?D`r78Xr(rKFt!=xIiIUB)LBFEFC4yxz66G3PPlMr-l$hGPG}rd6j;=oJ%%{4Wx?*=_18;XI z(Vypxvc$UGiI+fy&NP|#a&Fxgn;gSN_IUj_#GR}5QaZzR_Cij9);xCoI!aJh1K`Me zbZ@mMFJ8tv#b$i;_b6}lC`J*|lT76-vpMQDs=eK`_mtcgBb8`DZPg~|5KF~}&a$y; z_hvhz9*C1;9D=QV)4qC%+0VWEmD+-zg4o_cR)F8i(sr&S^Vo@HL?An}yXH`_?QX`= zD{tSoQBQX)(6Jk$RJFJ9Jp5?lZ5eO>6_Jxf<*Wf}Zxpv*Ga_}Nz`#sX6+zZ!!#mJ~ zd*zFKj|mygRg{&vy`IY507KdMxpa+1tTI(1WG^`E<8ZU*3wlI?zUj9Rx1VztP1}VF zt-O%PB+q)`%NzP=*DvPVsz&7RXqFz$ZzHY!cdH>&6K98y9A+taImtAiB@w`~so3{g zHmX!?yJA~o8bwtz6dOe9fQjRu0$KcGd|Om}Pak%TO%Pl1c~KZUS!nvj_CQ|KW3fVO z^`XGX$5v_&t!Apx^!7J%uSb-#)aS$Nc_um3nmHLkKJ(7xy<`%wF-3DibtZ$C1M}bP z&^S&$%QgkZrUZMJYJ`oYfE5f{B^SlaP_da+UiO4yD{5B|fA)}Z6r5>L@ML)KEW!_? za4t`~*IA{4oy>xB@Qur@TF1`z4zCyCb?+3D!#{{%#^tW-Pos&11CsUuPg0aoiReoityT1D8%sfR+Sw_!`+j9d)OYqS=kysd}=vFW4 zm9wG;x%Rf>=^_%~oehExBMHhYU7~B%ISGQ}Uyr0OsXMlFJ1rY3JDUcNcw2X=rZ1T# z-^yT*{dMiO8*?mD$D&s$SAb<+3{?~-1Rq2rV#4~{^Bz*Ao{w?C0}C&EJ35H@-97R$ zo`f?_*na2@&8CA?TkTd2CojGxj)F1iR>l!RFnE8PUe*;8=tx>iNVj$dy#1}cgnh_o zdo&}c{B0yY?a2@E8nm(|$x<%A)=_+B+U@M8+yN4mIQ#N;h(ZGDm}xz6=?$N8;3f{= zOZgVS&%C{ikt6=j^Qa~Gkbn9k|9Pz`JRs4lP6^9Yr*&3S!Q^o6374_$R_2wg=keIBH!msPvnOGKL;NbXhnpJCDc8r!@S^jxepfg9OV zNT(=AJkc4vmJ%Zm)ww`ne}sqPFc$~P2h)&0)fgU-6hBC4q^J+_ish9KEVs%)3}$bz zIIWH7*v6d9w{f>uEtWO&&|^5zyAy2xP?jw>nlqm`zg-#1P#%pA#ptcc*Gzh6Ch=UU zMQ)SiKU+ZbpqOHnFsih^qJS_a)@dv>N`@z?sB#Q%iu4%;|7!8h9xlIAwv@9pbegSO zYd(vu6GNv-2htZSPxuH|E&9@ zMP^mFWlY-|H|OW##PD8p?QM4W!$a-V*~+MhqsQVM;X*3=2L%}<6qHG}^;0kJ8u6xs zIQ-yUjsAf>clUM`gN=U93CjE%X-vG>_UOw;?J-aDCHw&DQkO&<2^(Rv=pg=z(sXLz zl)4}`4Ip3PSoA-59GYyzO14*>9Iw!6Re`ZM6MZ}0+1smlTucpDr&`&Q)Sr$Y5G=;- z-c=hq?dPG~^EnV8m%d?ElF8SkfrJdZen@aP5$%V|joLP@;hiR73!rnyRqf`jPsjfH zOce^xE-9648EO-lZlp3b;^l?aPkxN)IHGv0Qt>)t@&F$hz;3)jX9r2NTgp+Gq7#%& z7mpJi8g6`Sr6+xgO#)4ACC7b=0@vENcZi*>% zq@~&^LruzW&^ZmRtM)&gv+G2^(m)bXb{MHPR(H)Qa2UNO~QDqC>y--WlKr#Fz*x9-jLOQ>I&Bs{*;4LWJ(j6IX%k;=9$ zu-bpL)#2VB`aX(b0hvP)G$aTk(oL#=bRA>b7#I8frLo0k@&`X>V~1l4`wxqQplVj{ z-=eI$+W&2t@vpUtw*f*d1r_~kR`Y?zuNGILI_r!mT3w31tg5H3pV!bUM^;)6tv<`% zcl9<1-J88sSNmY3x$A{b*ZKNrFaCSM|Gn-CNa(zzV#V9Q{riQOAc0S^-&=#R?gVbE z_boS&x{3Y$!|W!o;{o4ucRt@FSVn3P@%=@0IT6cgci1|Xiw`oy%BHNSyRBHxUM{F4QhkxRx&$kK3?TZFe~tq zZ?-wh4qU`d*$lpQ?SLJ(Iz$Wztk`y_&hmFeR+Ww0Zm<@r|9yqYvbpKr3T=+3T_lM< z&f(aCd^_q@_4cEO3fc6D-kqoi*;3x*K*s>_hx`0hDlc(;TA&E5-T=0*arW8$^#%5t zpVGK3{O~%u1PIDRW>r(EL8^(A1!~Q-)a~nZXQ%BM=gy+IOwnvr5mv26`<+WND z-LzfFvbd^XSQ-ITdO_5Pu9lJ87CB_jAP=3skfmA!lse-P+4$r$#5!h3;CIBm4$q{Q zHAK;zB6fz7ndkftC9?ks^MC)sv|r_suo&FB_2y3KeI5lJ?E;`?HuGIb^G9gA`N%?3B*- z^p92@>054|P^Yv2l0zfK)PKs_dO)Xy6gS*p5}ep=5vGvaP-RzzQc>6Vm?9mn;a?hP zqc&eATxpP8;G-Xw(Sw=?MCXw zp9uGcBjjynRpfWg_1|HrmQ?GnRc>sBwp^{7QtQl?#E)GH;huHKM~TZKyV-ZjN85VD zE)Qp~Jg%!^QAsnMHB%=9tYP^EHYRGgqa7uTP0jAaDu4=O>>n@nLys&_C9)Q=o)fn* zoyK~R)c$2bs9n!Pq?KTInTXZZ!O7xDmpr~~-M4qjip;yGQ^Jq1U!9CcF48PNu{pdU zyf=q8yZY)@3t~QOf7vz6tff$Ahd7L45^>JB=D=kMGNn#CEodFP<}Drhana@hnqXaf zjxru;TlUgV*55;i9p~CrDTAY? z*4EZ`c5@SGf5UKJ?7VffgN(@j0tqHCl~};W{>SDgbBhPjdc0_6{UPz}jcI^FBlTvq zrsT=|b3}UsY)y=!G4fC%Utiy8!v?z(DncS6eRG24ugzLR0s^c3ar7;9=ch@8bJs^) zG5qeF^Gizy(rZqa0Py8XfsUJpaxTe(d%|WA%(Eu6b-PjD*cgo~ z)PR?FsJ%o;plfxNI0Rk&G5pV;k6Mj(Sk2JmprAgCT!~}^zyn$M{JU5ue_imgAm4^3 ziJ+kO_1vPXDC?f*!()X`yZHB$MNUZ1UvFPu>}!+KWSW7squu&RsKwd+4WOXk>iE7 zcWUeVMtj~8xVZBVw$G935@#kiX#uy^b2=2ZG6>WKhWmM*LB6jpie#kPpLf-|SD;x~ zSgykt3AEeHf`E$N3^bY3lM^Tv1}Rd89l85`#-7-Zb33dMiriZ2Adlv@{XW0n9w0qp zX0nw3s-;CoufI~kyZ*y|o>7?mtKqVRXN^!UJ+; zR4%J!#mke$x-Tah9Kvvde&<+do+MnM-}U3uk0J2oam97&3^ZZOe622TVNLc1KGj`x zHXW%Q={mpu*q_XPdnr3`%6n9QCy~HLnexf>_v2vu#3MY&=AoO`;b`%LWL%3jLBGS( zqF8|S{gr6Qrr0&uI&2W?dNuzdu3)$uK*xig@wnHOF1CBB0>uxZvZ W-%R?c5jE6 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png b/packages/tychon/build/packages/tychon/0.0.58/img/TYCHONScreenShot_2.png deleted file mode 100644 index dcf2f73ae6d696eeb54bdce2c76108a07934f43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175239 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 vFtFV(tF9A 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 z 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 diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg b/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg deleted file mode 100644 index fbbc633e76c..00000000000 --- a/packages/tychon/build/packages/tychon/0.0.58/img/TychonLogo.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png b/packages/tychon/build/packages/tychon/0.0.58/img/TychonScreenshot.png deleted file mode 100644 index 9207bbeac5834424fca597f59310f490b6c33deb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337235 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

qS=DWB5*0!vNBQLx&0pnkm^)J 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
Bbtzmy!bOu@nqo>O7W{f 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 A4FCWD diff --git a/packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png b/packages/tychon/build/packages/tychon/0.0.58/img/tychon-color.png deleted file mode 100644 index 0e2c6d9f1d5022d1a93366f1cad641740a2ff0bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8355 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 - 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/tychon/docs/README.md b/packages/tychon/docs/README.md index ec787c21055..be48b4744b5 100644 --- a/packages/tychon/docs/README.md +++ b/packages/tychon/docs/README.md @@ -11,11 +11,11 @@ * This integration supports Elastic 8.8+. ## Returned Data Fields + ### ARP Table Information TYCHON scans Endpoint ARP Tables and returns the results. -**Exported fields** **Exported fields** | Field | Description | Type | @@ -94,1073 +94,57 @@ TYCHON scans Endpoint ARP Tables and returns the results. | tychon.id | TYCHON unique host identifier. | keyword | -### Vulnerablities - -TYCHON scans for Endpoint CPU's and returns the results. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | keyword | -| host.cpu.caption | Host Cpu Caption. | text | -| host.cpu.clockspeed | Host Cpu Clockspeed. | long | -| host.cpu.family | Host Cpu Family. | keyword | -| host.cpu.manufacturer | Host Cpu Manufacturer. | keyword | -| host.cpu.name | Host Cpu Name. | keyword | -| host.cpu.number_of_cores | Host Cpu Number Of Cores. | integer | -| host.cpu.number_of_logical_processors | Host Cpu Number Of Logical Processors. | integer | -| host.cpu.speed | Host Cpu Speed. | long | -| host.cpu.virtualization_firmware_enabled | Host Cpu Virtualization Firmware Enabled. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Vulnerablities - -TYCHON scans for Endpoint vulnerablities and returns the results. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | -| vulnerability.category | The type of system or architecture that the vulnerability affects. These may be platform-specific (for example, Debian or SUSE) or general (for example, Database or Firewall). For example (https://qualysguard.qualys.com/qwebhelp/fo_portal/knowledgebase/vulnerability_categories.htm[Qualys vulnerability categories]) This field must be an array. | keyword | -| vulnerability.classification | The classification of the vulnerability scoring system. For example (https://www.first.org/cvss/) | keyword | -| vulnerability.description | The description of the vulnerability that provides additional context of the vulnerability. For example (https://cve.mitre.org/about/faqs.html#cve_entry_descriptions_created[Common Vulnerabilities and Exposure CVE description]) | keyword | -| vulnerability.description.text | Multi-field of `vulnerability.description`. | match_only_text | -| vulnerability.due_date | Vulnerability Due Date. | date | -| vulnerability.due_date_reason | Vulnerability Due Date Reason. | keyword | -| vulnerability.enumeration | The type of identifier used for this vulnerability. For example (https://cve.mitre.org/about/) | keyword | -| vulnerability.iava | Vulnerability Iava. | keyword | -| vulnerability.iava_severity | Vulnerability Iava Severity. | keyword | -| vulnerability.id | The identification (ID) is the number portion of a vulnerability entry. It includes a unique identification number for the vulnerability. For example (https://cve.mitre.org/about/faqs.html#what_is_cve_id)[Common Vulnerabilities and Exposure CVE ID] | keyword | -| vulnerability.reference | A resource that provides additional information, context, and mitigations for the identified vulnerability. | keyword | -| vulnerability.result | Vulnerability Result. | keyword | -| vulnerability.scanner.vendor | The name of the vulnerability scanner vendor. | 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.score.version | The National Vulnerability Database (NVD) provides qualitative severity rankings of "Low", "Medium", and "High" for CVSS v2.0 base score ranges in addition to the severity ratings for CVSS v3.0 as they are defined in the CVSS v3.0 specification. CVSS is owned and managed by FIRST.Org, Inc. (FIRST), a US-based non-profit organization, whose mission is to help computer security incident response teams across the world. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | -| 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 | -| vulnerability.title | Vulnerability Title. | keyword | -| vulnerability.version | Vulnerability Version. | keyword | -| vulnerability.year | Vulnerability Year. | integer | - - -### Endpoint Protection Platform - -TYCHON scans the Endpoint's Windows Defender and returns protection status and version details. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| crowdstrike.service.falcon.signature_version | Crowdstrike Service Falcon Signature Version. | keyword | -| crowdstrike.service.falcon.status | Crowdstrike Service Falcon Status. | keyword | -| crowdstrike.service.falcon.version | Crowdstrike Service Falcon Version. | version | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic.service.agent.status | Elastic Service Agent Status. | keyword | -| elastic.service.agent.version | Elastic Service Agent Version. | version | -| elastic.service.endpoint.behavior_protection | Elastic Service Endpoint Behavior Protection. | keyword | -| elastic.service.endpoint.malware | Elastic Service Endpoint Malware. | keyword | -| elastic.service.endpoint.memory_protection | Elastic Service Endpoint Memory Protection. | keyword | -| elastic.service.endpoint.ransomware | Elastic Service Endpoint Ransomware. | keyword | -| elastic.service.endpoint.status | Elastic Service Endpoint Status. | keyword | -| elastic.service.endpoint.version | Elastic Service Endpoint Version. | version | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | -| package.description | Description of the package. | keyword | -| package.name | Package name | keyword | -| package.reference | Home page or reference URL of the software in this package, if available. | keyword | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| trellix.service.accm.status | Trellix Service Accm Status. | keyword | -| trellix.service.accm.version | Trellix Service Accm Version. | version | -| trellix.service.dlp.status | Trellix Service Dlp Status. | keyword | -| trellix.service.dlp.version | Trellix Service Dlp Version. | version | -| trellix.service.ens.signature_version | Trellix Service Ens Signature Version. | keyword | -| trellix.service.ens.status | Trellix Service Ens Status. | keyword | -| trellix.service.ens.version | Trellix Service Ens Version. | version | -| trellix.service.ma.status | Trellix Service Ma Status. | keyword | -| trellix.service.ma.version | Trellix Service Ma Version. | version | -| trellix.service.pa.status | Trellix Service Pa Status. | keyword | -| trellix.service.pa.version | Trellix Service Pa Version. | version | -| trellix.service.rsd.status | Trellix Service Rsd Status. | keyword | -| trellix.service.rsd.version | Trellix Service Rsd Version. | version | -| tychon.id | TYCHON unique host identifier. | keyword | -| windows_defender.service.antimalware.engine_version | Windows Defender Service Antimalware Engine Version. | keyword | -| windows_defender.service.antimalware.product_version | Windows Defender Service Antimalware Product Version. | keyword | -| windows_defender.service.antimalware.signature_version | Windows Defender Service Antimalware Signature Version. | keyword | -| windows_defender.service.antimalware.status | Windows Defender Service Antimalware Status. | keyword | -| windows_defender.service.antispyware.signature_version | Windows Defender Service Antispyware Signature Version. | keyword | -| windows_defender.service.antispyware.status | Windows Defender Service Antispyware Status. | keyword | -| windows_defender.service.antivirus.full_scan.signature_version | Windows Defender Service Antivirus Full Scan Signature Version. | keyword | -| windows_defender.service.antivirus.quick_scan.signature_version | Windows Defender Service Antivirus Quick Scan Signature Version. | keyword | -| windows_defender.service.antivirus.status | Windows Defender Service Antivirus Status. | keyword | -| windows_defender.service.behavior_monitor.status | Windows Defender Service Behavior Monitor Status. | keyword | -| windows_defender.service.ioav_protection.status | Windows Defender Service Ioav Protection Status. | keyword | -| windows_defender.service.nis.engine_version | Windows Defender Service Nis Engine Version. | keyword | -| windows_defender.service.nis.signature_version | Windows Defender Service Nis Signature Version. | keyword | -| windows_defender.service.nis.status | Windows Defender Service Nis Status. | keyword | -| windows_defender.service.on_access_protection.status | Windows Defender Service On Access Protection Status. | keyword | -| windows_defender.service.real_time_protection.status | Windows Defender Service Real Time Protection Status. | keyword | - - -### Endpoint Exposed Services Information - -The TYCHON script to scan Endpoint Exposed Services and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.name | Device Name. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| 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.executable | Absolute path to the process executable. | keyword | -| process.executable.text | Multi-field of `process.executable`. | match_only_text | -| process.hash.sha1 | SHA1 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 | -| 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| service.description | The description text on the service. | keyword | -| service.display_name | The human readable name of the service | keyword | -| service.name | Name of the service data is collected from. The name of the service is normally user given. This allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the `service.name` could contain the cluster name. For Beats the `service.name` is by default a copy of the `service.type` field if no name is specified. | keyword | -| service.state | Current state of the service. | keyword | -| service.status | Service Status. | 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 | -| tychon.id | TYCHON unique host identifier. | keyword | -| user.name | Short name or login of the user. | keyword | -| user.name.text | Multi-field of `user.name`. | match_only_text | - - -### Endpoint Hard Drive Information - -The TYCHON script scans an endpoint's Hard Drive Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| disk.adapter.serial_number | Disk Adapter Serial Number | keyword | -| disk.boot_from | OS booted from this disk | boolean | -| disk.bus_type | The Disk Bus Type | keyword | -| disk.clustered | Is the Disk Clustered | boolean | -| disk.firmware_version | Disk Firmware version | keyword | -| disk.health_status | Health status of the disk | keyword | -| disk.highly_available | Disk is marked as highly available | boolean | -| disk.id | Disk ID | keyword | -| disk.is_boot | Disk is a boot disk | boolean | -| disk.location.adapter | Zero index adapter location | integer | -| disk.location.bus | Disk Bus Location | integer | -| disk.location.device | Disk Device Location | integer | -| disk.location.function | Disk Function Location | integer | -| disk.location.pci_slot | PCI Slot location | integer | -| disk.manufacturer | The manufacturer of the Disk | keyword | -| disk.model | The model of the disk | keyword | -| disk.name | The friendly name of the disk | keyword | -| disk.number | The number assigned to the disk | integer | -| disk.number_of_partitions | Total number of partitions on the drive | integer | -| disk.offline | Is the disk offline | boolean | -| disk.operational_status | Operational Status of the disk | keyword | -| disk.partition_style | Partition style | keyword | -| disk.serial_number | The unique serial number of the drive | keyword | -| disk.size | Total Size of the disk | long | -| disk.system | Is this a system drive | boolean | -| 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Hardware Information - -The TYCHON script scans an endpoint's Hardware Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | constant_keyword | -| device.class | Device Class. | keyword | -| device.description | Device Description. | text | -| device.friendly_name | Device Friendly Name. | keyword | -| device.id | The unique identifier of a device. The identifier must not change across application sessions but stay fixed for an instance of a (mobile) device. On iOS, this value must be equal to the vendor identifier (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android, this value must be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. For GDPR and data protection law reasons this identifier should not carry information that would allow to identify a user. | keyword | -| device.manufacturer | The vendor name of the device manufacturer. | keyword | -| device.model.name | The human readable marketing name of the device model. | keyword | -| device.name | Device Name. | keyword | -| device.present | Device Present. | boolean | -| device.status | Device Status. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Host OS Information - -The TYCHON script scans an endpoint's OS Configurations and returns information. - -**Exported fields** -**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 | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.deviceguard.basevirtualizationsupport.available | Event Deviceguard Basevirtualizationsupport Available. | boolean | -| event.deviceguard.credentialguard.enabled | Event Deviceguard Credentialguard Enabled. | boolean | -| event.deviceguard.credentialguard.running | Event Deviceguard Credentialguard Running. | boolean | -| event.deviceguard.dmaprotection.available | Event Deviceguard Dmaprotection Available. | boolean | -| event.deviceguard.hypervisorenforcedcodeint.enabled | Event Deviceguard Hypervisorenforcedcodeint Enabled. | boolean | -| event.deviceguard.hypervisorenforcedcodeint.running | Event Deviceguard Hypervisorenforcedcodeint Running. | boolean | -| event.deviceguard.secureboot.available | Event Deviceguard Secureboot Available. | boolean | -| event.deviceguard.securememoverwrite.available | Event Deviceguard Securememoverwrite Available. | boolean | -| event.deviceguard.smmsecuritymigrations.available | Event Deviceguard Smmsecuritymigrations Available. | boolean | -| event.deviceguard.systemguardsecurelaunch.enabled | Event Deviceguard Systemguardsecurelaunch Enabled. | boolean | -| event.deviceguard.systemguardsecurelaunch.running | Event Deviceguard Systemguardsecurelaunch Running. | boolean | -| event.deviceguard.ueficodereadonly.available | Event Deviceguard Ueficodereadonly Available. | boolean | -| event.deviceguard.usermodecodeintegrity.policyenforcement | Event Deviceguard Usermodecodeintegrity Policyenforcement. | keyword | -| event.deviceguard.version | Event Deviceguard Version. | keyword | -| event.deviceguard.virtualizationbasedsecurity.status | Event Deviceguard Virtualizationbasedsecurity Status. | 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.ufi.enabled | Event Ufi Enabled. | boolean | -| host.architecture | Operating system architecture. | keyword | -| host.biossn | Host BIOS Serial Number. | keyword | -| host.cloud.compute.name | Host Cloud Compute Name. | keyword | -| host.cloud.compute.resource_group_name | Host Cloud Compute Resource Group Name. | keyword | -| host.cloud.compute.resource_id | Host Cloud Compute Resource Id. | keyword | -| host.cloud.compute.subscription_id | Host Cloud Compute Subscription Id. | keyword | -| host.cloud.compute.tags | Host Cloud Compute Tags. | keyword | -| host.cloud.compute.vm_id | Host Cloud Compute Vm Id. | keyword | -| host.cloud.hosted | Host Cloud Hosted. | boolean | -| host.cloud.network.mac_address | Host Cloud Network Mac Address. | keyword | -| host.cloud.network.public_ipv4 | Host Cloud Network Public Ipv4. | ip | -| host.cloud.network.public_ipv6 | Host Cloud Network Public Ipv6. | ip | -| host.compute.location | Host Compute Location. | keyword | -| host.cpu.caption | Host Cpu Caption. | text | -| host.cpu.count | Host Cpu Count. | integer | -| 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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.memory.size | Host Memory Size. | long | -| host.motherboard.chipset | Host Motherboard Chipset. | keyword | -| host.motherboard.serial_number | Host Motherboard Serial Number. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| host.os.edition | Host Os Edition. | keyword | -| host.os.extended_support_license | Host Os Extended Support License. | keyword | -| host.os.extended_support_license_expiration | Host Os Extended Support License Expiration. | date | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | keyword | -| host.os.suportted_plan | Host Os Suportted Plan. | keyword | -| host.os.vendor | Host Os Vendor. | keyword | -| host.os.version | Operating system version as a raw string. | keyword | -| host.security.antivirus.exists | Host Security Antivirus Exists. | boolean | -| host.security.antivirus.name | Host Security Antivirus Name. | keyword | -| host.security.antivirus.state | Host Security Antivirus State. | keyword | -| host.security.antivirus.status | Host Security Antivirus Status. | keyword | -| host.tpm.compliant | Host Tpm Compliant. | boolean | -| host.tpm.digest.id | Host Tpm Digest Id. | keyword | -| host.tpm.present | Host Tpm Present. | boolean | -| host.tpm.version | Host Tpm Version. | 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 | -| host.uptime | Seconds the host has been up. | long | -| host.virtualization_status | Host Virtualization Status. | keyword | -| host.virtulization_status | Host Virtulization Status. | keyword | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | keyword | -| input.type | Input Type. | keyword | -| log.offset | Log Offset. | long | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tychon.definition.oval | Tychon Definition Oval. | date | -| tychon.definition.stig | Tychon Definition Stig. | date | -| tychon.id | TYCHON unique host identifier. | keyword | -| tychon.version.agent | Tychon Version Agent. | version | -| tychon.version.content | Tychon Version Content. | version | - - -### Endpoint Network Adapters Information - -The TYCHON script scans an endpoint's Network Adapter Configurations and returns information. - -**Exported fields** -**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 | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | -| host.adapter.alias | The Alias given to this adapter | keyword | -| host.adapter.description | The network adapter description | text | -| host.adapter.dhcp.enabled | Is DHCP Enabled on this adapter | boolean | -| host.adapter.dhcp.lease_expires | When does this DHCP lease expire | date | -| host.adapter.dhcp.lease_obtained | When was the DHCP lease obtained | date | -| host.adapter.dhcp.server | What IP Address was the DHCP IP obtained from. | ip | -| host.adapter.domain | What domain was assigned to this adapter | text | -| host.adapter.driver.date | Date the driver was installed | date | -| host.adapter.driver.description | Description of the driver | text | -| host.adapter.driver.file_name | Driver File name | keyword | -| host.adapter.driver.name | Name of the driver | keyword | -| host.adapter.driver.provider | Company that provided the driver | keyword | -| host.adapter.driver.version | Version of the driver | keyword | -| host.adapter.gateway | Gateway IP Address | ip | -| host.adapter.id | ID Of the adapter | keyword | -| host.adapter.ip | IP Addresses assigned to the adapter | ip | -| host.adapter.ip_filter.enabled | Is IP Filtering Enabled | boolean | -| host.adapter.link_speed | Link speed of the adapter | long | -| host.adapter.mac | Hardware MAC Address | keyword | -| host.adapter.media.connection_state | Current Connection State | keyword | -| host.adapter.media.type | Current Connection Media Type | keyword | -| host.adapter.mtu | MTU Size | integer | -| host.adapter.ndis.version | NDIS Version | keyword | -| host.adapter.subnet_bit | Subnet BIT | integer | -| host.adapter.virtual | Is adapter virtual | boolean | -| host.adapter.vlan.id | The VLAN ID | keyword | -| host.adapter.wifi.authentication | The Authentication method used to connected to the WIFI Router | keyword | -| host.adapter.wifi.band | The band used to connected to the WIFI Router | keyword | -| host.adapter.wifi.bssid | The Connected WIFI Router Hardware Address | keyword | -| host.adapter.wifi.channel | The channel used to connected to the WIFI Router | keyword | -| host.adapter.wifi.cipher | The CIPHER used to connected to the WIFI Router | keyword | -| host.adapter.wifi.enabled | Is WIFI Enabled | boolean | -| host.adapter.wifi.radio_type | The radio type of the connected WIFI Router | keyword | -| host.adapter.wifi.signal_percent | Signal strength to connected WIFI Router | integer | -| host.adapter.wifi.ssid | The Connected WIFI Router SSID | keyword | -| host.adapter.wins_server | The WINS Server attached to this adapter | ip | -| host.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| host.os.family | OS family (such as redhat, debian, freebsd, windows). | 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.organization | Host OS Organization. | 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | keyword | -| input.type | Input Type. | keyword | -| log.offset | Log Offset. | long | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Software Inventory Information - -The TYCHON script scans an endpoint's Software Inventory and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| package.architecture | Package architecture. | keyword | -| package.cpe | Package Cpe. | keyword | -| package.description | Description of the package. | keyword | -| package.id | Package Id. | keyword | -| package.installed | Time when package was installed. | date | -| package.name | Package name | keyword | -| package.path | Path where the package is installed. | keyword | -| package.publisher | Package Publisher. | keyword | -| package.size | Package size in bytes. | long | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| package.uninstall | Package Uninstall. | text | -| package.version | Package version | keyword | -| package.version_build | Package Version Build. | integer | -| package.version_major | Package Version Major. | integer | -| package.version_minor | Package Version Minor. | integer | -| package.version_release | Package Version Release. | integer | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint STIG Information - -The TYCHON benchmark script scans an endpoint's Windows configuration for STIG/XCCDF issues and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| benchmark.generated_utc | Benchmark UTC. | date | -| benchmark.hash | Benchmark SHA256 Hash | keyword | -| benchmark.id | Benchmark ID. | keyword | -| benchmark.name | Benchmark Name. | keyword | -| benchmark.title | Benchmark Title. | keyword | -| benchmark.version | Benchmark Version. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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 | 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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | -| oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | -| oval.refid | Open Vulnerabilities and Assessment Language Rule Reference Identifier. | keyword | -| package.build_version | Additional information about the build version of the installed package. For example use the commit SHA of a non-released package. | keyword | -| package.description | Description of the package. | keyword | -| package.name | Package name | keyword | -| package.reference | Home page or reference URL of the software in this package, if available. | keyword | -| package.type | Type of package. This should contain the package file type, rather than the package manager name. Examples: rpm, dpkg, brew, npm, gem, nupkg, jar. | keyword | -| rule.benchmark.profile.id | Benchmark Rule Profile Identifier. | keyword | -| rule.benchmark.title | Benchmark Rule Title. | keyword | -| rule.finding_id | Benchmark Rule Finding Identifier. | 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 | -| rule.oval.class | Open Vulnerabilities and Assessment Language Class. | keyword | -| rule.oval.id | Open Vulnerabilities and Assessment Language Identifier. | keyword | -| rule.oval.refid | Open Vulnerabilities and Assessment Language Reference Identifier. | keyword | -| rule.result | Benchmark Rule Results. | keyword | -| rule.severity | Benchmark Severity Status. | keyword | -| rule.stig_id | Stig rule id | keyword | -| rule.test_result | Rule Test Result. | keyword | -| rule.title | Benchmark Rule Title. | keyword | -| rule.vulnerability_id | Rule vulnerability id. | keyword | -| rule.weight | Benchmark Rule Weight. | float | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | - - -### Endpoint Volume Information - -The TYCHON script scans an endpoint's Volume Configurations and returns information. - -**Exported fields** -**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 | -| agent.ephemeral_id | Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not. | keyword | -| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | -| agent.name | Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. | keyword | -| agent.type | Type of the agent. The agent type always stays the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. | keyword | -| agent.version | Version of the agent. | keyword | -| data_stream.dataset | The field can contain anything that makes sense to signify the source of the data. Examples include `nginx.access`, `prometheus`, `endpoint` etc. For data streams that otherwise fit, but that do not have dataset set we use the value "generic" for the dataset value. `event.dataset` should have the same value as `data_stream.dataset`. Beyond the Elasticsearch data stream naming criteria noted above, the `dataset` value has additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.namespace | A user defined namespace. Namespaces are useful to allow grouping of data. Many users already organize their indices this way, and the data stream naming scheme now provides this best practice as a default. Many users will populate this field with `default`. If no value is used, it falls back to `default`. Beyond the Elasticsearch index naming criteria noted above, `namespace` value has the additional restrictions: \* Must not contain `-` \* No longer than 100 characters | constant_keyword | -| data_stream.type | An overarching type for the data stream. Currently allowed values are "logs" and "metrics". We expect to also add "traces" and "synthetics" in the near future. | 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 | -| elastic_agent.id | Elastic Agent Id. | keyword | -| elastic_agent.snapshot | Elastic Agent snapshot. | boolean | -| elastic_agent.version | Elastic Agent Version. | keyword | -| error.message | Error message. | match_only_text | -| event.agent_id_status | Agents are normally responsible for populating the `agent.id` field value. If the system receiving events is capable of validating the value based on authentication information for the client then this field can be used to reflect the outcome of that validation. For example if the agent's connection is authenticated with mTLS and the client cert contains the ID of the agent to which the cert was issued then the `agent.id` value in events can be checked against the certificate. If the values match then `event.agent_id_status: verified` is added to the event, otherwise one of the other allowed values should be used. If no validation is performed then the field should be omitted. The allowed values are: `verified` - The `agent.id` field value matches expected value obtained from auth metadata. `mismatch` - The `agent.id` field value does not match the expected value obtained from auth metadata. `missing` - There was no `agent.id` field in the event to validate. `auth_metadata_missing` - There was no auth metadata or it was missing information about the agent ID. | 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.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.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.biossn | Host BIOS Serial Number. | 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.hardware.bios.name | Host BIOS Name. | keyword | -| host.hardware.bios.version | Host BIOS Version. | keyword | -| host.hardware.cpu.caption | Host CPU Caption. | keyword | -| host.hardware.manufacturer | Host BIOS Manufacturer. | keyword | -| host.hardware.owner | Host BIOS Owner. | keyword | -| host.hardware.serial_number | Host BIOS Serial Number. | 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.ipv4 | Host IPv4 addresses. | ip | -| host.ipv6 | Host IPv6 addresses. | keyword | -| 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 (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | -| host.oem.manufacturer | Host OEM Manufacturer. | keyword | -| host.oem.model | Host OEM Model. | keyword | -| host.os.build | Host OS Build. | keyword | -| host.os.description | Host OS Description. | text | -| 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.organization | Host OS Organization. | keyword | -| 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. If the OS you're dealing with is not listed as an expected value, 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 | -| host.uptime | Seconds the host has been up. | long | -| host.workgroup | Host Workgroup Network Name. | keyword | -| id | TYCHON unique document identifier. | 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 | -| script.current_duration | Scanner Script Duration. | long | -| script.current_time | Current datetime. | date | -| script.name | Scanner Script Name. | keyword | -| script.start | Scanner Start datetime. | date | -| script.type | Scanner Script Type. | keyword | -| script.version | Scanner Script Version. | version | -| tags | List of keywords used to tag each event. | keyword | -| tychon.id | TYCHON unique host identifier. | keyword | -| volume.automount | Volume Automount. | boolean | -| volume.block_size | Volume Block Size. | long | -| volume.dirty_bit_set | Volume Dirty Bit Set. | boolean | -| volume.dos_device_path | Volume Dos Device Path. | text | -| volume.drive.letter | Volume Drive Letter. | keyword | -| volume.drive.type | Volume Drive Type. | keyword | -| volume.file_system | Volume File System. | keyword | -| volume.freespace | Volume Freespace. | long | -| volume.id | Volume Id. | keyword | -| volume.name | Volume Name. | keyword | -| volume.page_file_present | Volume Page File Present. | boolean | -| volume.percent_full | Volume Percent Full. | float | -| volume.power_management_supported | Volume Power Management Supported. | boolean | -| volume.purpose | Volume Purpose. | keyword | -| volume.serial_number | Volume Serial Number. | keyword | -| volume.size | Volume Size. | long | -| volume.system_volume | Volume System Volume. | boolean | - +An example event for `tychon_arp` looks as following: + +```json +{ + "tychon.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.os.version": "2009", + "network.interface": "Ethernet0", + "host.ip": [ + "10.1.9.51" + ], + "host.hostname": "BOTANYBAYEP1", + "host.os.name": "Microsoft Windows 10 Pro", + "host.hardware.manufacturer": "VMware, Inc.", + "script.start": "2023-11-01T18:01:51Z", + "destination.mac": [ + "04-d5-90-f6-de-a3" + ], + "host.hardware.owner": "admin", + "host.hardware.cpu.caption": "Intel64 Family 6 Model 45 Stepping 7", + "destination.hostname": "Request timed out (700 ms)", + "host.os.organization": "", + "host.workgroup": "WORKGROUP", + "host.hardware.serial_number": "VMware-56 4d 7c 73 14 57 15 94-3b 54 35 2b a8 93 6a f3", + "host.ipv4": "10.1.9.51", + "host.oem.manufacturer": "", + "network.direction": "external", + "host.hardware.bios.name": "Phoenix Technologies LTD", + "host.type": "Workstation", + "destination.name": "Request timed out (700 ms)", + "script.type": "powershell", + "host.id": "c698e42cc0794fd19b2f9157a8a2c88b_737C4D56-5714-9415-3B54-352BA8936AF3_BOTANYBAYEP1_WORKGROUP", + "host.biossn": "737C4D56-5714-9415-3B54-352BA8936AF3", + "host.mac": [ + "00:0C:29:93:6A:F3" + ], + "network.type": "IPv4", + "host.oem.model": "", + "host.uptime": "603361.260258", + "id": "BOTANYBAYEP1#11#10.1.9.51#10.1.9.1", + "script.current_time": "2023-11-01T18:02:07Z", + "script.name": "Get-TychonArpInfo.ps1", + "network.state": "dynamic", + "script.version": "2.3.152.0", + "host.os.build": "19045", + "host.os.description": "", + "script.current_duration": "15988.70", + "host.ipv6": "", + "destination.ip": "10.1.9.1", + "host.hardware.bios.version": "6.00", + "host.domain": "", + "host.cloud.hosted": "false", + "host.os.family": "Windows" +} +``` diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/agent.yml b/packages/tychon/elasticsearch/transform/arp/fields/agent.yml similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/agent.yml rename to packages/tychon/elasticsearch/transform/arp/fields/agent.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/data_stream/tychon_cpu/fields/base-fields.yml rename to packages/tychon/elasticsearch/transform/arp/fields/base-fields.yml diff --git a/packages/tychon/elasticsearch/transform/arp/fields/beats.yml b/packages/tychon/elasticsearch/transform/arp/fields/beats.yml new file mode 100644 index 00000000000..4724cac106c --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/beats.yml @@ -0,0 +1,54 @@ +- name: hostname + description: Name of host parsed from syslog message. + type: keyword +- name: http + type: group + fields: + - name: request + type: group + fields: + - name: referer + description: Referrer for this HTTP request. + type: keyword +- name: input + type: group + fields: + - name: type + description: Type of Filebeat input. + type: keyword +- name: log + type: group + fields: + - name: file + type: group + fields: + - name: path + description: Path to the log file. + type: keyword + - name: flags + description: Flags for the log file. + type: keyword + - name: offset + description: Offset of the entry in the log file. + type: long + - name: source + type: group + fields: + - name: address + description: Source address from which the log event was read / sent from. + type: keyword +- name: syslog + type: group + fields: + - name: facility + description: Syslog numeric facility of the event. + type: long + - name: facility_label + description: Syslog text-based facility of the event. + type: keyword + - name: priority + description: Syslog priority of the event. + type: long + - name: severity_label + description: Syslog text-based severity of the event. + type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml b/packages/tychon/elasticsearch/transform/arp/fields/ecs.yml similarity index 64% rename from packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml rename to packages/tychon/elasticsearch/transform/arp/fields/ecs.yml index 31ba2470b1f..1b0bb1256af 100644 --- a/packages/tychon/elasticsearch/transform/cve_linux/fields/ecs.yml +++ b/packages/tychon/elasticsearch/transform/arp/fields/ecs.yml @@ -1,3 +1,5 @@ +- external: ecs + name: '@timestamp' - external: ecs name: agent.ephemeral_id - external: ecs @@ -8,57 +10,69 @@ name: agent.type - external: ecs name: agent.version +- external: ecs + name: data_stream.dataset +- external: ecs + name: data_stream.namespace +- external: ecs + name: data_stream.type +- external: ecs + name: destination.ip +- external: ecs + name: destination.mac - external: ecs name: ecs.version - external: ecs name: event.agent_id_status - external: ecs name: event.category -- external: ecs - name: event.created - external: ecs name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested - external: ecs name: event.kind - external: ecs - name: event.outcome + name: event.module - external: ecs name: event.timezone -- external: ecs - name: error.message - external: ecs name: host.architecture +- external: ecs + name: host.domain +- external: ecs + name: host.hostname +- external: ecs + name: host.id +- external: ecs + name: host.ip +- external: ecs + name: host.mac - external: ecs name: host.name +- external: ecs + name: host.os.family - external: ecs name: host.os.kernel +- external: ecs + name: host.os.name - external: ecs name: host.os.platform - external: ecs name: host.os.type - external: ecs - name: log.file.path + name: host.os.version - external: ecs - name: tags + name: host.type - external: ecs - name: vulnerability.category + name: host.uptime - external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration + name: log.file.path - external: ecs - name: vulnerability.id + name: network.direction - external: ecs - name: vulnerability.reference + name: network.type - external: ecs - name: vulnerability.scanner.vendor + name: tags - external: ecs - name: vulnerability.score.version + name: error.message - external: ecs - name: vulnerability.severity + name: event.ingested diff --git a/packages/tychon/elasticsearch/transform/arp/fields/fields.yml b/packages/tychon/elasticsearch/transform/arp/fields/fields.yml new file mode 100644 index 00000000000..796b93593cd --- /dev/null +++ b/packages/tychon/elasticsearch/transform/arp/fields/fields.yml @@ -0,0 +1,17 @@ +- name: destination + type: group + fields: + - name: hostname + type: keyword + description: The Translated Hostname of the IP in the ARP Table + - name: name + type: keyword +- name: network + type: group + fields: + - name: interface + type: keyword + description: The interface the ARP Table has associated the destination. + - name: state + type: keyword + description: Current state diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/manifest.yml b/packages/tychon/elasticsearch/transform/arp/manifest.yml similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/manifest.yml rename to packages/tychon/elasticsearch/transform/arp/manifest.yml diff --git a/packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/transform.yml b/packages/tychon/elasticsearch/transform/arp/transform.yml similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/elasticsearch/transform/arp/transform.yml rename to packages/tychon/elasticsearch/transform/arp/transform.yml diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_linux/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_linux/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml deleted file mode 100644 index e5104b41dff..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_linux/fields/fields.yml +++ /dev/null @@ -1,70 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - format: "strict_date_optional_time||epoch_millis||date||\"MM/dd/yyyy\"" - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml b/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_linux/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_linux/transform.yml b/packages/tychon/elasticsearch/transform/cve_linux/transform.yml deleted file mode 100644 index ec804d02a8e..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_linux/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - host.os.type: "linux" - - match_phrase: - event.kind: "state" -dest: - index: tychon_cve-linux -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.6 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what LINUX based vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml deleted file mode 100644 index cbb6a586d8b..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2019/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2019 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2019_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml deleted file mode 100644 index eb95307c81f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2020/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2020 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2020_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2020 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml deleted file mode 100644 index 03456181e79..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2021/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2021 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2021_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2021 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml deleted file mode 100644 index bf43689b263..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2022/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2022 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2022_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml deleted file mode 100644 index e62c372c8bc..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_2023/transform.yml +++ /dev/null @@ -1,26 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match_phrase: - vulnerability.year: 2023 - - match_phrase: - host.os.family: "windows" -dest: - index: tychon_cve-2023_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2023 vulnerablility results are from TYCHON. diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml deleted file mode 100644 index 6dd345cff24..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/agent.yml +++ /dev/null @@ -1,192 +0,0 @@ -- 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: 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: id - description: Unique host id. As hostname is not always unique, use values that are meaningful in your environment. - type: keyword - - name: biossn - description: Host BIOS Serial Number. - type: keyword - - 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: ip - level: core - type: ip - description: Host ip addresses. - - name: ipv4 - level: core - type: keyword - description: Host ip v4 addresses. - - name: ipv6 - level: core - type: keyword - description: Host ip v6 addresses. - - name: mac - level: core - type: keyword - ignore_above: 1024 - description: Host mac addresses. - - name: type - 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. - type: keyword - - name: uptime - description: Seconds the host has been up. - type: long - - name: workgroup - description: Host Workgroup Network Name. - type: keyword - - name: oem - type: group - fields: - - name: manufacturer - description: Host OEM Manufacturer. - type: keyword - - name: model - description: Host OEM Model. - type: keyword - - name: os - type: group - fields: - - name: build - description: Host OS Build. - type: keyword - - name: description - description: Host OS Description. - type: keyword - - name: family - description: OS family (such as redhat, debian, freebsd, windows). - type: keyword - - name: name - description: Operating system name, without the version. - type: keyword - - name: organization - description: Host OS Organization. - type: keyword - - name: version - description: Operating system version as a raw string. - type: keyword - - name: hardware - type: group - fields: - - name: bios - type: group - fields: - - name: name - description: Host BIOS Name. - type: keyword - - name: version - description: Host BIOS Version. - type: keyword - - name: cpu - type: group - fields: - - name: caption - description: Host CPU Caption. - type: keyword - - name: manufacturer - description: Host BIOS Manufacturer. - type: keyword - - name: owner - description: Host BIOS Owner. - type: keyword - - name: serial_number - description: Host BIOS Serial Number. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml deleted file mode 100644 index 44a26fd137a..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/base-fields.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: input.type - description: Source file type. - type: keyword -- name: log.offset - description: Source file current offset. - type: long -- 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: keyword - description: Event module. -- name: '@timestamp' - description: Event timestamp. - type: date diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml deleted file mode 100644 index 31ba2470b1f..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/ecs.yml +++ /dev/null @@ -1,64 +0,0 @@ -- external: ecs - name: agent.ephemeral_id -- external: ecs - name: agent.id -- external: ecs - name: agent.name -- external: ecs - name: agent.type -- external: ecs - name: agent.version -- external: ecs - name: ecs.version -- external: ecs - name: event.agent_id_status -- external: ecs - name: event.category -- external: ecs - name: event.created -- external: ecs - name: event.dataset -- external: ecs - name: event.id -- external: ecs - name: event.ingested -- external: ecs - name: event.kind -- external: ecs - name: event.outcome -- external: ecs - name: event.timezone -- external: ecs - name: error.message -- external: ecs - name: host.architecture -- external: ecs - name: host.name -- external: ecs - name: host.os.kernel -- external: ecs - name: host.os.platform -- external: ecs - name: host.os.type -- external: ecs - name: log.file.path -- external: ecs - name: tags -- external: ecs - name: vulnerability.category -- external: ecs - name: vulnerability.classification -- external: ecs - name: vulnerability.description -- external: ecs - name: vulnerability.enumeration -- external: ecs - name: vulnerability.id -- external: ecs - name: vulnerability.reference -- external: ecs - name: vulnerability.scanner.vendor -- external: ecs - name: vulnerability.score.version -- external: ecs - name: vulnerability.severity diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml deleted file mode 100644 index 2e5ad842973..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/fields/fields.yml +++ /dev/null @@ -1,69 +0,0 @@ -- name: id - description: Tychon Unique Vulnerability Id. - type: keyword -- name: vulnerability - type: group - fields: - - name: definition - description: National Vulnerability Database Vulnerability Definition. - type: keyword - - name: due_date - description: Vulnerability Due Date. - type: date - - name: due_date_reason - description: Vulnerability Due Date Reason - type: keyword - - name: iava - description: Information Assurance Vulneraiblity Alert Identifier. - type: keyword - - name: iava_severity - description: Information Assurance Vulnerability Alert Severity. - type: keyword - - name: result - description: Pass/Fail Outcome of the Common Vulnerabilities and Exposures Scan. - type: keyword - - name: score.base - description: National Vulnerability Database Score of the Vulnerabilty. - type: float - - name: title - description: Common Vulnerabilities and Exposures Description and Title. - type: keyword - - name: version - description: Version Number of the Scan. - type: keyword - - name: year - description: Common Vulnerabilities and Exposures Year. - type: long -- name: script - type: group - fields: - - name: current_duration - description: Scanner Script Duration. - type: float - - name: current_time - description: Current datetime. - type: date - - name: name - description: Scanner Script Name. - type: keyword - - name: start - description: Scanner Start datetime. - type: date - - name: type - description: Scanner Script Type. - type: keyword - - name: version - description: Scanner Script Version. - type: keyword -- name: elastic_agent - type: group - fields: - - name: id - description: Elastic Agent Id. - type: keyword - - name: snapshot - description: Elastic Agent snapshot. - type: boolean - - name: version - description: Elastic Agent Version. - type: keyword diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml deleted file mode 100644 index d2b4a81ca3c..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -start: true -destination_index_template: - mappings: - dynamic: true - _meta: {} - dynamic_templates: - - strings_as_keyword: - match_mapping_type: string - mapping: - ignore_above: 1024 - type: keyword - date_detection: true diff --git a/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml b/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml deleted file mode 100644 index 5d561c71eb3..00000000000 --- a/packages/tychon/elasticsearch/transform/cve_windows_20xx/transform.yml +++ /dev/null @@ -1,27 +0,0 @@ -source: - index: - - logs-tychon.tychon_cve-* - query: - bool: - must: - - match: - host.os.family: "windows" - - range: - vulnerability.year: - lte: 2018 -dest: - index: tychon_cve-20xx_windows -frequency: 30m -sync: - time: - field: 'event.ingested' - delay: 60s -latest: - unique_key: - - id - sort: '@timestamp' -_meta: - fleet_transform_version: 1.0.3 - run_as_kibana_system: false - managed: true -description: This transformation ensures there is a running configuration of what Windows 2019 vulnerablility results are from TYCHON. diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json b/packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json rename to packages/tychon/kibana/dashboard/tychon-078edb40-d137-11e9-a2af-693b633cf871-stig.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json rename to packages/tychon/kibana/dashboard/tychon-0c036be0-3de5-11ee-9610-15dee918f31a-exposedservice.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json b/packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json rename to packages/tychon/kibana/dashboard/tychon-19325010-4597-11ee-83e4-c92ed141b9e5-hardware.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json rename to packages/tychon/kibana/dashboard/tychon-1af57010-41b6-11ee-83e4-c92ed141b9e5-networkadapter.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json b/packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json rename to packages/tychon/kibana/dashboard/tychon-267716e0-e9d8-11ed-9d4a-9513ae375d2b-epp.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json b/packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json rename to packages/tychon/kibana/dashboard/tychon-2bd4ca50-3dfd-11ee-9610-15dee918f31a-softwareinventory.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json rename to packages/tychon/kibana/dashboard/tychon-380b6c10-3dbd-11ee-9610-15dee918f31a-harddrive.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json b/packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json rename to packages/tychon/kibana/dashboard/tychon-3cb855d0-3c5e-11ee-8557-a7ea91123f8b-networkadapter.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json rename to packages/tychon/kibana/dashboard/tychon-6165bf50-3dbf-11ee-9610-15dee918f31a-host.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json b/packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json rename to packages/tychon/kibana/dashboard/tychon-8082ac00-3d41-11ee-9610-15dee918f31a-harddrive.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json b/packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json rename to packages/tychon/kibana/dashboard/tychon-8c858ea0-3c74-11ee-8557-a7ea91123f8b-cpu.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json b/packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json rename to packages/tychon/kibana/dashboard/tychon-993e07a0-3e02-11ee-9610-15dee918f31a-hardware.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json b/packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json rename to packages/tychon/kibana/dashboard/tychon-b85e87c0-41ab-11ee-83e4-c92ed141b9e5-epp.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json b/packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json rename to packages/tychon/kibana/dashboard/tychon-cb312af0-3d4c-11ee-9610-15dee918f31a-arp.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json b/packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json rename to packages/tychon/kibana/dashboard/tychon-e1c9c490-41a5-11ee-83e4-c92ed141b9e5-stig.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json b/packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json rename to packages/tychon/kibana/dashboard/tychon-e24ce070-3c85-11ee-9610-15dee918f31a-exposedservice.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json b/packages/tychon/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json rename to packages/tychon/kibana/dashboard/tychon-e3cbb1a0-112a-11ee-af86-538da1394f27-log.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json b/packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json rename to packages/tychon/kibana/dashboard/tychon-f3f86a20-3d47-11ee-9610-15dee918f31a-host.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json b/packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json rename to packages/tychon/kibana/index_pattern/02acfb43-5302-4331-bb10-4174171f6091.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json b/packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json rename to packages/tychon/kibana/index_pattern/2dc584bc-c446-4150-b561-1415a45ebe87.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json b/packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json rename to packages/tychon/kibana/index_pattern/37150b25-1c34-494e-8214-b58a5a716c95.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json b/packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json rename to packages/tychon/kibana/index_pattern/39822d3a-870f-4a82-8928-e9264b4d1a31.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json b/packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json rename to packages/tychon/kibana/index_pattern/41d172ee-a0b8-4b20-9c93-6482f0abbdec.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json b/packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json rename to packages/tychon/kibana/index_pattern/4b420fb2-cf3e-40a2-a8fe-92db1bd570b2.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json b/packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json rename to packages/tychon/kibana/index_pattern/62456a9a-bd4c-4b57-b6b5-5556b6869ce5.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json b/packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json rename to packages/tychon/kibana/index_pattern/6c3bf5e0-0feb-4113-a417-ac5e69cd6e00.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json b/packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json rename to packages/tychon/kibana/index_pattern/6ce8198c-8c52-4f20-8e68-b566ebf84b18.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json b/packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json rename to packages/tychon/kibana/index_pattern/7d972a32-d117-4963-a7bf-58fc65fb1ee8.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json b/packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json rename to packages/tychon/kibana/index_pattern/8532a0b4-2a02-4dfa-b6aa-aabe01125b61.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json b/packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json rename to packages/tychon/kibana/index_pattern/9267bb1b-cf22-4417-8cfb-6606848140a7.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json b/packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json rename to packages/tychon/kibana/index_pattern/a264bf8d-abc3-4789-9f4c-bf76397e06ba.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json b/packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json rename to packages/tychon/kibana/index_pattern/a57870ef-07d8-4d12-a067-8c66eefd10ca.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json b/packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json rename to packages/tychon/kibana/index_pattern/a61d021d-d78f-485d-93b2-8075149794af.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json b/packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json rename to packages/tychon/kibana/index_pattern/b006641c-69de-48bd-9a5a-1125f0da1c0b.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json b/packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json rename to packages/tychon/kibana/index_pattern/bb5226cd-c099-46d2-bb71-0257232c7d82.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json b/packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json rename to packages/tychon/kibana/index_pattern/c6b645d3-dd29-43f2-b831-49e29ffd5b6c.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json b/packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json rename to packages/tychon/kibana/index_pattern/df491fbb-3f09-4ab0-995a-c2c549a9bc21.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json b/packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json rename to packages/tychon/kibana/index_pattern/e0015160-781d-4885-9ae6-04230d059bfb.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json b/packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json rename to packages/tychon/kibana/index_pattern/e886429e-9532-4f44-bb36-6465fe760866.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json b/packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json rename to packages/tychon/kibana/index_pattern/eb4dc1c4-9f76-4b3c-976c-fc1575288e2d.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json b/packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json rename to packages/tychon/kibana/index_pattern/ed7c1bb4-5aac-45d4-9aff-06f4d4ad4a9a.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json b/packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json rename to packages/tychon/kibana/index_pattern/f215a0b2-b613-4a33-9959-cd7e34b1a1e2.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/lens/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json rename to packages/tychon/kibana/lens/tychon-837878a0-c3cb-11eb-8956-0b1a70e695fd.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json b/packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json rename to packages/tychon/kibana/security_rule/2140f083-6e39-4df4-ba41-aa1f41cb81b8.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json rename to packages/tychon/kibana/security_rule/2e5a7e20-1137-11ee-af86-538da1394f27.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json b/packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json rename to packages/tychon/kibana/security_rule/55faa99b-ce17-4a41-9f63-4a7439e3543a.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json b/packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json rename to packages/tychon/kibana/security_rule/6040cb5c-5e01-4f4d-af7f-9ca9c11dbdc7.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json b/packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json rename to packages/tychon/kibana/security_rule/6839b82b-22bf-418f-a86b-7e7a4cd074d7.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json b/packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json rename to packages/tychon/kibana/security_rule/6d34f6dc-4a36-46cd-a4bb-ea2f1a01ab8a.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json b/packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json rename to packages/tychon/kibana/security_rule/867e3450-1139-11ee-af86-538da1394f27.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json b/packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json rename to packages/tychon/kibana/security_rule/bdf083c5-63cb-41ae-bb7a-563cc4e8719f.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json b/packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json rename to packages/tychon/kibana/security_rule/c40eaba1-7507-4fe7-aae5-78e59cd7b8f2.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json b/packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json rename to packages/tychon/kibana/security_rule/ccffb8f0-601f-46f6-8ae9-ab8af5e6bbf4.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json b/packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json rename to packages/tychon/kibana/security_rule/d0d735ed-08fe-4393-9aa6-120236995152.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json b/packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json rename to packages/tychon/kibana/visualization/tychon-d954bdb0-3298-11ec-b058-cf4fefc29658.json diff --git a/packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json b/packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json similarity index 100% rename from packages/tychon/build/packages/tychon/0.0.58/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json rename to packages/tychon/kibana/visualization/tychon-e6c0e460-c3da-11eb-8956-0b1a70e695fd.json diff --git a/packages/tychon/manifest.yml b/packages/tychon/manifest.yml index 91fb3edc174..2ac46aa6b28 100644 --- a/packages/tychon/manifest.yml +++ b/packages/tychon/manifest.yml @@ -2,7 +2,7 @@ format_version: 2.0.0 name: tychon release: beta title: "TYCHON Agentless" -version: 0.0.58 +version: 0.0.60 source: license: "Elastic-2.0" description: TYCHON Agentless delivers STIG, CVE/IAVA, and Endpoint Protection status without adding new server infrastructure or services to your endpoints. TYCHON datasets fully comply with vulnerability and STIG reporting standards and integrate into Comply-to-Connect for instant zero trust value. @@ -36,8 +36,8 @@ policy_templates: title: Tychon description: Tychon inputs: - - type: logfile + - type: filestream title: Tychon description: Tychon owner: - github: elastic/integrations + github: elastic/security-external-integrations

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