From aa38b10fd1b2da7ecc21b1f02e419153bb3079ad Mon Sep 17 00:00:00 2001 From: F1 <96719298+F1Feng@users.noreply.github.com> Date: Tue, 24 Sep 2024 21:47:15 +0800 Subject: [PATCH 01/13] fix: #22297 re-enable Escrow Buddy in the auth-db (#22298) fix: #22297 re-enable Escrow Buddy in the auth-db --- orbit/pkg/update/escrow_buddy.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/orbit/pkg/update/escrow_buddy.go b/orbit/pkg/update/escrow_buddy.go index e1f6fdf116..b226da9a24 100644 --- a/orbit/pkg/update/escrow_buddy.go +++ b/orbit/pkg/update/escrow_buddy.go @@ -5,8 +5,9 @@ import ( "sync" "time" - "github.com/fleetdm/fleet/v4/server/fleet" "github.com/rs/zerolog/log" + + "github.com/fleetdm/fleet/v4/server/fleet" ) // EscrowBuddyRunner sets up [Escrow Buddy][1] to rotate FileVault keys on @@ -86,6 +87,13 @@ func (e *EscrowBuddyRunner) Run(cfg *fleet.OrbitConfig) error { } } + // Some macOS updates and upgrades reset the authorization database to its default state + // which will deactivate Escrow Buddy and prevent FileVault key generation upon next login. + log.Debug().Msg("EscrowBuddyRunner: re-enable Escrow Buddy in the authorization database") + if err := e.setAuthDBSetup(); err != nil { + return fmt.Errorf("failed to re-enable Escrow Buddy in the authorization database, err: %w", err) + } + log.Debug().Msg("EscrowBuddyRunner: enabling disk encryption rotation") if err := e.setGenerateNewKeyTo(true); err != nil { return fmt.Errorf("enabling disk encryption rotation: %w", err) @@ -118,3 +126,13 @@ func (e *EscrowBuddyRunner) setGenerateNewKeyTo(enabled bool) error { } return fn("sh", "-c", cmd) } + +func (e *EscrowBuddyRunner) setAuthDBSetup() error { + log.Debug().Msg("ready to re-enable Escrow Buddy in the authorization database") + cmd := "/Library/Security/SecurityAgentPlugins/Escrow\\ Buddy.bundle/Contents/Resources/AuthDBSetup.sh" + fn := e.runCmdFunc + if fn == nil { + fn = runCmdCollectErr + } + return fn("sh", "-c", cmd) +} From f0babb7d6114ccceb9cabc45d0d96d6ca61ef815 Mon Sep 17 00:00:00 2001 From: Noah Talerman <47070608+noahtalerman@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:49:22 -0400 Subject: [PATCH 02/13] Permissions guide: Apple Business Manager and Volume Purchasing Program (#22336) - ABM and VPP CRUD - Use APNs language to be consistent w/ product and docs --- articles/role-based-access.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/articles/role-based-access.md b/articles/role-based-access.md index 95fc712c52..fcdae9a8d4 100644 --- a/articles/role-based-access.md +++ b/articles/role-based-access.md @@ -79,9 +79,10 @@ GitOps is an API-only and write-only role that can be used on CI/CD pipelines. | Edit agent options for hosts assigned to teams\* | | | | ✅ | ✅ | | Initiate [file carving](https://fleetdm.com/docs/using-fleet/rest-api#file-carving) | | | ✅ | ✅ | | | Retrieve contents from file carving | | | | ✅ | | -| View Apple mobile device management (MDM) certificate information | | | | ✅ | | -| View Apple business manager (BM) information | | | | ✅ | | -| Generate Apple mobile device management (MDM) certificate signing request (CSR) | | | | ✅ | | +| Create Apple Push Certificates service (APNs) certificate signing request (CSR) | | | | ✅ | | +| View, edit, and delete APNs certificate | | | | ✅ | | +| View, edit, and delete Apple Business Manager (ABM) connections | | | | ✅ | | +| View, edit, and delete Volume Purchasing Program (VPP) connections | | | | ✅ | | | View disk encryption key for macOS and Windows hosts | ✅ | ✅ | ✅ | ✅ | | | Edit OS updates for macOS, Windows, iOS, and iPadOS hosts | | | ✅ | ✅ | ✅ | | Create, edit, resend and delete configuration profiles for macOS and Windows hosts | | | ✅ | ✅ | ✅ | From f5a75877f3193df7eb1a237e15fa1b31ccc07a30 Mon Sep 17 00:00:00 2001 From: Gabriel Hernandez Date: Tue, 24 Sep 2024 15:47:55 +0100 Subject: [PATCH 03/13] update the help text of macOS min version input (#22337) relates to #21976 This updates the help text for the macOS min version input. ![image](https://github.com/user-attachments/assets/ef20ad99-7592-41bc-959e-a90129c47f66) --- .../AppleOSTargetForm/AppleOSTargetForm.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/pages/ManageControlsPage/OSUpdates/components/AppleOSTargetForm/AppleOSTargetForm.tsx b/frontend/pages/ManageControlsPage/OSUpdates/components/AppleOSTargetForm/AppleOSTargetForm.tsx index 755b59d093..fdf5343282 100644 --- a/frontend/pages/ManageControlsPage/OSUpdates/components/AppleOSTargetForm/AppleOSTargetForm.tsx +++ b/frontend/pages/ManageControlsPage/OSUpdates/components/AppleOSTargetForm/AppleOSTargetForm.tsx @@ -5,12 +5,13 @@ import { APP_CONTEXT_NO_TEAM_ID } from "interfaces/team"; import { NotificationContext } from "context/notification"; import configAPI from "services/entities/config"; import teamsAPI from "services/entities/teams"; +import { ApplePlatform } from "interfaces/platform"; // @ts-ignore import InputField from "components/forms/fields/InputField"; import Button from "components/buttons/Button"; import validatePresence from "components/forms/validators/validate_presence"; -import { ApplePlatform } from "interfaces/platform"; +import CustomLink from "components/CustomLink"; const baseClass = "apple-os-target-form"; @@ -197,7 +198,16 @@ const AppleOSTargetForm = ({ + Use only versions available from Apple.{" "} + + + } value={minOsVersion} error={minOsVersionError} onChange={handleMinVersionChange} From 3b001ea07c21dc52c6a11dfdd3db0115d67dddb0 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:02:48 -0700 Subject: [PATCH 04/13] Fleet UI: Host status dropdown styling fixes (#22314) --- .../hosts/ManageHostsPage/ManageHostsPage.tsx | 7 +------ frontend/pages/hosts/ManageHostsPage/_styles.scss | 15 +-------------- .../hosts/details/cards/Software/_styles.scss | 2 +- .../pages/queries/ManageQueriesPage/_styles.scss | 2 +- 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx index 6464f4d59b..7c95b74cfc 100644 --- a/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx +++ b/frontend/pages/hosts/ManageHostsPage/ManageHostsPage.tsx @@ -1430,16 +1430,11 @@ const ManageHostsPage = ({ ? selectedLabel : undefined; - const statusDropdownClassnames = classNames( - `${baseClass}__status_dropdown`, - { [`${baseClass}__status-dropdown-sandbox`]: isSandboxMode } - ); - return (
Date: Tue, 24 Sep 2024 09:04:10 -0700 Subject: [PATCH 05/13] Fleet UI: Fix self-service icon from cutting off (#22310) --- .../cards/Software/SelfService/SelfServiceItem/_styles.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/pages/hosts/details/cards/Software/SelfService/SelfServiceItem/_styles.scss b/frontend/pages/hosts/details/cards/Software/SelfService/SelfServiceItem/_styles.scss index eb21c7d118..9b4ae26e5e 100644 --- a/frontend/pages/hosts/details/cards/Software/SelfService/SelfServiceItem/_styles.scss +++ b/frontend/pages/hosts/details/cards/Software/SelfService/SelfServiceItem/_styles.scss @@ -13,7 +13,7 @@ &__item-topline { display: flex; flex-direction: row; - height: 64px; + height: 66px; align-items: center; gap: 16px; overflow: hidden; From 31ac40828f06cbb6f34877c90be3d94c1c62b201 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:05:39 -0700 Subject: [PATCH 06/13] Fleet UI: Hide redundant built in label filtering (#22308) --- changes/21343-hide-redundant-built-in-label-pills | 1 + .../HostsFilterBlock/HostsFilterBlock.tsx | 13 +++++++++++++ .../components/LabelFilterSelect/_styles.scss | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 changes/21343-hide-redundant-built-in-label-pills diff --git a/changes/21343-hide-redundant-built-in-label-pills b/changes/21343-hide-redundant-built-in-label-pills new file mode 100644 index 0000000000..92baea5ba5 --- /dev/null +++ b/changes/21343-hide-redundant-built-in-label-pills @@ -0,0 +1 @@ +- UI: Remove redundant built in label filter pills diff --git a/frontend/pages/hosts/ManageHostsPage/components/HostsFilterBlock/HostsFilterBlock.tsx b/frontend/pages/hosts/ManageHostsPage/components/HostsFilterBlock/HostsFilterBlock.tsx index 62dc63ed56..f3ea242e68 100644 --- a/frontend/pages/hosts/ManageHostsPage/components/HostsFilterBlock/HostsFilterBlock.tsx +++ b/frontend/pages/hosts/ManageHostsPage/components/HostsFilterBlock/HostsFilterBlock.tsx @@ -24,6 +24,7 @@ import { import { PLATFORM_LABEL_DISPLAY_NAMES, + PLATFORM_TYPE_ICONS, isPlatformLabelNameFromAPI, PolicyResponse, } from "utilities/constants"; @@ -41,6 +42,8 @@ import BootstrapPackageStatusFilter from "../BootstrapPackageStatusFilter/Bootst const baseClass = "hosts-filter-block"; +type PlatformLabelNameFromAPI = keyof typeof PLATFORM_TYPE_ICONS; + interface IHostsFilterBlockProps { /** * An object of params the the HostFilterBlock uses to render the correct @@ -145,6 +148,16 @@ const HostsFilterBlock = ({ PLATFORM_LABEL_DISPLAY_NAMES[display_text]) || display_text; + // Hide built-in labels supported in label dropdown + if ( + label_type === "builtin" && + Object.keys(PLATFORM_TYPE_ICONS).includes( + display_text as PlatformLabelNameFromAPI + ) + ) { + return <>; + } + return ( <> Date: Tue, 24 Sep 2024 11:58:15 -0500 Subject: [PATCH 07/13] Update README.md (#22347) --- handbook/sales/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/handbook/sales/README.md b/handbook/sales/README.md index 46688864e5..1ddb627e25 100644 --- a/handbook/sales/README.md +++ b/handbook/sales/README.md @@ -10,8 +10,7 @@ This handbook page details processes specific to working [with](#contact-us) and | Chief Revenue Officer (CRO) | [Alex Mitchell](https://www.linkedin.com/in/alexandercmitchell/) _([@alexmitchelliii](https://github.com/alexmitchelliii))_ | Solutions Consulting (SC) | [Dave Herder](https://www.linkedin.com/in/daveherder/) _([@dherder](https://github.com/dherder))_
[Zach Wasserman](https://www.linkedin.com/in/zacharywasserman/) _([@zwass](https://github.com/zwass))_
[Allen Houchins](https://www.linkedin.com/in/allenhouchins/) _([@allenhouchins](https://github.com/allenhouchins))_
[Harrison Ravazzolo](https://www.linkedin.com/in/harrison-ravazzolo/) _([@harrisonravazzolo](https://github.com/harrisonravazzolo))_ | Channel Sales | [Tom Ostertag](https://www.linkedin.com/in/tom-ostertag-77212791/) _([@tomostertag](https://github.com/TomOstertag))_ -| Sr. Account Executive | [Kendra McKeever](https://www.linkedin.com/in/kendramckeever/) _([@KendraAtFleet](https://github.com/KendraAtFleet))_ -| Account Executive (AE) | [Patricia Ambrus](https://www.linkedin.com/in/pambrus/) _([@ambrusps](https://github.com/ambrusps))_
[Anthony Snyder](https://www.linkedin.com/in/anthonysnyder8/) _([@anthonysnyder8](https://github.com/AnthonySnyder8))_
[Paul Tardif](https://www.linkedin.com/in/paul-t-750833/) _([@phtardif1](https://github.com/phtardif1))_ +| Account Executive (AE) | [Patricia Ambrus](https://www.linkedin.com/in/pambrus/) _([@ambrusps](https://github.com/ambrusps))_
[Anthony Snyder](https://www.linkedin.com/in/anthonysnyder8/) _([@anthonysnyder8](https://github.com/AnthonySnyder8))_
[Paul Tardif](https://www.linkedin.com/in/paul-t-750833/) _([@phtardif1](https://github.com/phtardif1))_
[Kendra McKeever](https://www.linkedin.com/in/kendramckeever/) _([@KendraAtFleet](https://github.com/KendraAtFleet))_ ## Contact us From db1c374eef0dd65577474e86963f47318b27d7ee Mon Sep 17 00:00:00 2001 From: Roberto Dip Date: Tue, 24 Sep 2024 14:17:32 -0300 Subject: [PATCH 08/13] fix TestEscrowBuddy/TestEscrowBuddyRotatesKey test (#22345) fix a broken test introduced in aa38b10fd1b2da7ecc21b1f02e419153bb3079ad --- orbit/pkg/update/escrow_buddy_test.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/orbit/pkg/update/escrow_buddy_test.go b/orbit/pkg/update/escrow_buddy_test.go index 0ed61883b0..ccd3093834 100644 --- a/orbit/pkg/update/escrow_buddy_test.go +++ b/orbit/pkg/update/escrow_buddy_test.go @@ -65,9 +65,11 @@ func (s *escrowBuddyTestSuite) TestEscrowBuddyRotatesKey() { err = r.Run(cfg) require.NoError(t, err) - require.Len(t, cmdCalls, 1) + require.Len(t, cmdCalls, 2) require.Equal(t, cmdCalls[0]["cmd"], "sh") - require.Equal(t, cmdCalls[0]["args"], []string{"-c", "defaults write /Library/Preferences/com.netflix.Escrow-Buddy.plist GenerateNewKey -bool true"}) + require.Equal(t, cmdCalls[0]["args"], []string{"-c", "/Library/Security/SecurityAgentPlugins/Escrow\\ Buddy.bundle/Contents/Resources/AuthDBSetup.sh"}) + require.Equal(t, cmdCalls[1]["cmd"], "sh") + require.Equal(t, cmdCalls[1]["args"], []string{"-c", "defaults write /Library/Preferences/com.netflix.Escrow-Buddy.plist GenerateNewKey -bool true"}) targets = runner.updater.opt.Targets require.Len(t, targets, 1) @@ -77,10 +79,12 @@ func (s *escrowBuddyTestSuite) TestEscrowBuddyRotatesKey() { time.Sleep(3 * time.Millisecond) cfg.Notifications.RotateDiskEncryptionKey = false + cmdCalls = []map[string]any{} err = r.Run(cfg) require.NoError(t, err) - require.Len(t, cmdCalls, 2) - require.Equal(t, cmdCalls[1]["cmd"], "sh") - require.Equal(t, cmdCalls[1]["args"], []string{"-c", "defaults write /Library/Preferences/com.netflix.Escrow-Buddy.plist GenerateNewKey -bool false"}) + // only one call to set the GenerateNewKey to false + require.Len(t, cmdCalls, 1) + require.Equal(t, cmdCalls[0]["cmd"], "sh") + require.Equal(t, cmdCalls[0]["args"], []string{"-c", "defaults write /Library/Preferences/com.netflix.Escrow-Buddy.plist GenerateNewKey -bool false"}) } From 8428f193faf443975da5b8bc9ff8e92a56d199a8 Mon Sep 17 00:00:00 2001 From: Lucas Manuel Rodriguez Date: Tue, 24 Sep 2024 14:25:51 -0300 Subject: [PATCH 09/13] Move settings to no-team.yml (#22343) Moving settings for hosts in "No team" from `default.yml` to `teams/no-team.yml`. --- it-and-security/default.yml | 23 ----------------------- it-and-security/teams/no-team.yml | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 it-and-security/teams/no-team.yml diff --git a/it-and-security/default.yml b/it-and-security/default.yml index 52baadb564..9b60ffb92c 100644 --- a/it-and-security/default.yml +++ b/it-and-security/default.yml @@ -1,27 +1,5 @@ agent_options: path: ./lib/agent-options.yml -controls: - enable_disk_encryption: true - macos_migration: - enable: true - mode: voluntary - webhook_url: $DOGFOOD_MACOS_MIGRATION_WEBHOOK_URL - macos_settings: - custom_settings: null - macos_setup: - bootstrap_package: "" - enable_end_user_authentication: false - macos_setup_assistant: null - macos_updates: - deadline: "2023-06-13" - minimum_version: 13.4.1 - windows_enabled_and_configured: true - windows_settings: - custom_settings: [] - windows_updates: - deadline_days: 3 - grace_period_days: 2 - scripts: [] org_settings: features: enable_host_users: true @@ -90,4 +68,3 @@ org_settings: policies: queries: - path: ./lib/collect-fleetd-update-channels.queries.yml -software: diff --git a/it-and-security/teams/no-team.yml b/it-and-security/teams/no-team.yml new file mode 100644 index 0000000000..ef6baf9e40 --- /dev/null +++ b/it-and-security/teams/no-team.yml @@ -0,0 +1,25 @@ +name: No team +policies: +controls: + enable_disk_encryption: true + macos_migration: + enable: true + mode: voluntary + webhook_url: $DOGFOOD_MACOS_MIGRATION_WEBHOOK_URL + macos_settings: + custom_settings: null + macos_setup: + bootstrap_package: "" + enable_end_user_authentication: false + macos_setup_assistant: null + macos_updates: + deadline: "2023-06-13" + minimum_version: 13.4.1 + windows_enabled_and_configured: true + windows_settings: + custom_settings: [] + windows_updates: + deadline_days: 3 + grace_period_days: 2 + scripts: [] +software: From f0753cfdb3c8ac8257cc078394e3a60da62d8a63 Mon Sep 17 00:00:00 2001 From: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:08:32 -0500 Subject: [PATCH 10/13] Add redirects for all security files (#22344) --- website/config/routes.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/website/config/routes.js b/website/config/routes.js index 28fdbbf106..abdcf8c945 100644 --- a/website/config/routes.js +++ b/website/config/routes.js @@ -353,6 +353,11 @@ module.exports.routes = { 'GET /device-management/fleet-user-stories-wayfair': '/success-stories/fleet-user-stories-wayfair', 'GET /handbook/security': '/handbook/digital-experience/security', 'GET /handbook/security/security-policies':'/handbook/digital-experience/security-policies#information-security-policy-and-acceptable-use-policy',// « reasoning: https://github.com/fleetdm/fleet/pull/9624 + 'GET /handbook/business-operations/security-policies':'/handbook/digital-experience/security-policies', + 'GET /handbook/business-operations/application-security': '/handbook/digital-experience/application-security', + 'GET /handbook/business-operations/security-audits': '/handbook/digital-experience/security-audits', + 'GET /handbook/business-operations/security': '/handbook/digital-experience/security', + 'GET /handbook/business-operations/vendor-questionnaires': '/handbook/digital-experience/vendor-questionnaires', 'GET /handbook/handbook': '/handbook/company/handbook', 'GET /handbook/company/development-groups': '/handbook/company/product-groups', 'GET /docs/using-fleet/mdm-macos-settings': '/docs/using-fleet/mdm-custom-macos-settings', From 8cbb28bf02a7ecb972ea23581cd25eec409651f6 Mon Sep 17 00:00:00 2001 From: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:36:40 -0400 Subject: [PATCH 11/13] 21056 auto install document (#21362) #21056 Document for policy-based automatic software installation. See result [here](https://github.com/fleetdm/fleet/blob/21056_auto_instal_document/articles/automatic-software-install-in-fleet.md#add-policy) --------- Co-authored-by: spokanemac Co-authored-by: Noah Talerman Co-authored-by: JD Co-authored-by: Luke Heath --- .../automatic-software-install-in-fleet.md | 80 ++++++++++++++++++ ...utomatic-software-install-add-software.png | Bin 0 -> 66136 bytes ...atic-software-install-install-software.png | Bin 0 -> 57215 bytes ...matic-software-install-policies-manage.png | Bin 0 -> 60001 bytes .../automatic-software-install-top-image.png | Bin 0 -> 8421 bytes .../automatic-software-install-workflow.png | Bin 0 -> 59848 bytes website/config/routes.js | 1 + 7 files changed, 81 insertions(+) create mode 100644 articles/automatic-software-install-in-fleet.md create mode 100644 website/assets/images/articles/automatic-software-install-add-software.png create mode 100644 website/assets/images/articles/automatic-software-install-install-software.png create mode 100644 website/assets/images/articles/automatic-software-install-policies-manage.png create mode 100644 website/assets/images/articles/automatic-software-install-top-image.png create mode 100644 website/assets/images/articles/automatic-software-install-workflow.png diff --git a/articles/automatic-software-install-in-fleet.md b/articles/automatic-software-install-in-fleet.md new file mode 100644 index 0000000000..9b0ba6e65a --- /dev/null +++ b/articles/automatic-software-install-in-fleet.md @@ -0,0 +1,80 @@ +# Automatic policy-based installation of software on hosts + +![Top Image](../website/assets/images/articles/automatic-software-install-top-image.png) + +Fleet [v4.57.0](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.57.0) introduces the ability to automatically and remotely install software on hosts based on predefined policy failures. This guide will walk you through the process of configuring fleet for automatic installation of software on hosts using uploaded installation images and based on programmed policies. You'll learn how to configure and use this feature, as well as understand how the underlying mechanism works. + +Fleet allows its users to upload trusted software installation files to be installed and used on hosts. This installation could be conditioned on a failure of a specific Fleet Policy. + +## Prerequisites + +* Fleet premium with Admin permissions. +* Fleet [v4.57.0](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.57.0) or greater. + +## Step-by-step instructions + +1. **Adding software**: Add any software to be available for installation. Follow the [deploying software](https://fleetdm.com/guides/deploy-security-agents) document with instructions how to do it. Note that all installation steps (pre-install query, install script, and post-install script) will be executed as configured, regardless of the policy that triggers the installation. + + +![Add software](../website/assets/images/articles/automatic-software-install-add-software.png) + +Current supported software deployment formats: +- macOS: .pkg +- Windows: .msi, .exe +- Linux: .deb + +Coming soon: +- VPP for iOS and iPadOS + +2. **Add a policy**: In Fleet, add a policy that failure to pass will trigger the required installation. Go to Policies tab --> Press the top right "Add policy" button. --> Click "create your own policy" --> Enter your policy SQL --> Save --> Fill in details in the Save modal and Save. + +``` +SELECT 1 FROM apps WHERE name = 'Adobe Acrobat Reader.app' AND version_compare(bundle_short_version, '23.001.20687') >= 0; +``` + +Note: In order to know the exact application name to put in the query (e.g. "Adobe Acrobat Reader.app" in the query above) you can manually install it on a canary/test host and then query SELECT * from apps; + + +3. **Manage automation**: Open Manage Automations: Policies Tab --> top right "Manage automations" --> "Install software". + +![Manage policies](../website/assets/images/articles/automatic-software-install-policies-manage.png) + +4. **Select policy**: Select (click the check box of) your newly created policy. To the right of it select from the + drop-down list the software you would like to be installed upon failure of this policy. + +![Install software modal](../website/assets/images/articles/automatic-software-install-install-software.png) + +Upon failure of the selected policy, the selected software installation will be triggered. + +## How does it work? + +* After configuring Fleet to auto-install a specific software the rest will be done automatically. +* The policy check mechanism runs on a typical 1 hour cadence on all online hosts. +* Fleet will send install requests to the hosts on the first policy failure (first "No" result for the host) or if a policy goes from "Yes" to "No". On this iteration it will not send a install request if a policy is already failing and continues to fail ("No" -> "No"). See the following flowchart for details. + +![Flowchart](../website/assets/images/articles/automatic-software-install-workflow.png) +*Detailed flowchart* + +## Using the REST API for self-service software packages + +Fleet provides a REST API for managing software packages, including self-service software packages. Learn more about Fleet's [REST API](https://fleetdm.com/docs/rest-api/rest-api#add-team-policy). + +## Managing self-service software packages with GitOps + +To manage self-service software packages using Fleet's best practice GitOps, check out the `software` key in the [GitOps reference documentation](https://fleetdm.com/docs/configuration/yaml-files#policies). + +## Conclusion + +Software deployment can be time-consuming and risky. This guide presents Fleet's ability to mass deploy software to your fleet in a simple and safe way. Starting with uploading a trusted installer and ending with deploying it to the proper set of machines answering the exact policy defined by you. + +Leveraging Fleet’s ability to install and upgrade software on your hosts, you can streamline the process of controlling your hosts, replacing old versions of software and having the up-to-date info on what's installed on your fleet. + +By automating software deployment, you can gain greater control over what's installed on your machines and have better oversight of version upgrades, ensuring old software with known issues is replaced. + + + + + + + + diff --git a/website/assets/images/articles/automatic-software-install-add-software.png b/website/assets/images/articles/automatic-software-install-add-software.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdd54fe648871a53b2b08d660459f755c990bb4 GIT binary patch literal 66136 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 literal 0 HcmV?d00001 diff --git a/website/assets/images/articles/automatic-software-install-policies-manage.png b/website/assets/images/articles/automatic-software-install-policies-manage.png new file mode 100644 index 0000000000000000000000000000000000000000..862c98eb151b0f18e031506dfee543aa9163bc5f GIT binary patch literal 60001 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 Jmvv4FO#ro)%J={P literal 0 HcmV?d00001 diff --git a/website/assets/images/articles/automatic-software-install-top-image.png b/website/assets/images/articles/automatic-software-install-top-image.png new file mode 100644 index 0000000000000000000000000000000000000000..ed188acd17ee6ba23b3175801afb0a1a9e9ead05 GIT binary patch literal 8421 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 r%XPfw`mRv^Aps5OX7K-W Date: Tue, 24 Sep 2024 14:47:46 -0500 Subject: [PATCH 12/13] Improve MySQL queries that aggregate MDM profile statuses for Apple hosts (#22252) --- changes/22122-mdm-apple-status-queries | 1 + server/datastore/mysql/apple_mdm.go | 469 +++++++------------------ server/datastore/mysql/hosts.go | 32 +- server/datastore/mysql/labels.go | 6 + 4 files changed, 145 insertions(+), 363 deletions(-) create mode 100644 changes/22122-mdm-apple-status-queries diff --git a/changes/22122-mdm-apple-status-queries b/changes/22122-mdm-apple-status-queries new file mode 100644 index 0000000000..2ea893d31f --- /dev/null +++ b/changes/22122-mdm-apple-status-queries @@ -0,0 +1 @@ +- Improved performance of SQL queries used to determine MDM profile status for Apple hosts. \ No newline at end of file diff --git a/server/datastore/mysql/apple_mdm.go b/server/datastore/mysql/apple_mdm.go index b4ae8c5ac0..610a25db52 100644 --- a/server/datastore/mysql/apple_mdm.go +++ b/server/datastore/mysql/apple_mdm.go @@ -2535,377 +2535,150 @@ func (ds *Datastore) UpdateOrDeleteHostMDMAppleProfile(ctx context.Context, prof return err } -const ( - appleMDMFailedProfilesStmt = ` - h.uuid = hmap.host_uuid AND - hmap.status = :failed` - - appleMDMPendingProfilesStmt = ` - h.uuid = hmap.host_uuid AND - ( - hmap.status IS NULL OR - hmap.status = :pending OR +// sqlCaseMDMAppleStatus returns a SQL snippet that can be used to determine the status of a host +// based on the status of its profiles and declarations and filevault status. It should be used in +// conjunction with sqlJoinMDMAppleProfilesStatus and sqlJoinMDMAppleDeclarationsStatus. It assumes the +// hosts table to be aliased as 'h' and the host_disk_encryption_keys table to be aliased as 'hdek'. +func sqlCaseMDMAppleStatus() string { + // NOTE: To make this snippet reusable, we're not using sqlx.Named here because it would + // complicate usage in other queries (e.g., list hosts). + var ( + failed = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryFailed)) + pending = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryPending)) + verifying = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerifying)) + verified = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerified)) + ) + return ` + CASE WHEN (prof_failed + OR decl_failed + OR fv_failed) THEN + ` + failed + ` + WHEN (prof_pending + OR decl_pending -- special case for filevault, it's pending if the profile is -- pending OR the profile is verified or verifying but we still -- don't have an encryption key. - ( - hmap.profile_identifier = :filevault AND - hmap.status IN (:verifying, :verified) AND - hmap.operation_type = :install AND - NOT EXISTS ( - SELECT 1 - FROM host_disk_encryption_keys hdek - WHERE h.id = hdek.host_id AND - (hdek.decryptable = 1 OR hdek.decryptable IS NULL) - ) - ) - )` - - appleMDMVerifyingProfilesStmt = ` - h.uuid = hmap.host_uuid AND - hmap.operation_type = :install AND - ( - -- all profiles except filevault that are 'verifying' - ( - hmap.profile_identifier != :filevault AND - hmap.status = :verifying - ) - OR - -- special cases for filevault - ( - hmap.profile_identifier = :filevault AND - ( - -- filevault profile is verified, but we didn't verify the encryption key - ( - hmap.status = :verified AND - EXISTS ( - SELECT 1 - FROM host_disk_encryption_keys AS hdek - WHERE h.id = hdek.host_id AND - hdek.decryptable IS NULL - ) - ) - OR - -- filevault profile is verifying, and we already have an encryption key, in any state - ( - hmap.status = :verifying AND - EXISTS ( - SELECT 1 - FROM host_disk_encryption_keys AS hdek - WHERE h.id = hdek.host_id AND - hdek.decryptable = 1 OR hdek.decryptable IS NULL - ) - ) - ) - ) - )` - - appleVerifiedProfilesStmt = ` - h.uuid = hmap.host_uuid AND - hmap.operation_type = :install AND - hmap.status = :verified AND - ( - hmap.profile_identifier != :filevault OR - EXISTS ( - SELECT 1 - FROM host_disk_encryption_keys hdek - WHERE h.id = hdek.host_id AND - hdek.decryptable = 1 - ) - )` -) - -// subqueryAppleProfileStatus builds the right subquery that can be used to -// filter hosts based on their profile status. -// -// The subquery mechanism works by finding profiles for hosts that: -// - match with the provided status -// - match any status that supercedes the provided status (eg: failed supercedes verifying) -// -// Hosts will be considered to be in the given status only if the profiles -// match the given status and zero profiles match any superceding status. -func subqueryAppleProfileStatus(status fleet.MDMDeliveryStatus) (string, []any, error) { - var condition string - var excludeConditions string - switch status { - case fleet.MDMDeliveryFailed: - condition = appleMDMFailedProfilesStmt - excludeConditions = "FALSE" - case fleet.MDMDeliveryPending: - condition = appleMDMPendingProfilesStmt - excludeConditions = appleMDMFailedProfilesStmt - case fleet.MDMDeliveryVerifying: - condition = appleMDMVerifyingProfilesStmt - excludeConditions = fmt.Sprintf("(%s) OR (%s)", appleMDMPendingProfilesStmt, appleMDMFailedProfilesStmt) - case fleet.MDMDeliveryVerified: - condition = appleVerifiedProfilesStmt - excludeConditions = fmt.Sprintf("(%s) OR (%s) OR (%s)", appleMDMPendingProfilesStmt, appleMDMFailedProfilesStmt, appleMDMVerifyingProfilesStmt) - default: - return "", nil, fmt.Errorf("invalid status: %s", status) - } - - sql := fmt.Sprintf(` - SELECT 1 - FROM host_mdm_apple_profiles hmap - WHERE %s AND - NOT EXISTS ( - SELECT 1 - FROM host_mdm_apple_profiles hmap - WHERE %s - )`, condition, excludeConditions) - - arg := map[string]any{ - "install": fleet.MDMOperationTypeInstall, - "verifying": fleet.MDMDeliveryVerifying, - "failed": fleet.MDMDeliveryFailed, - "verified": fleet.MDMDeliveryVerified, - "pending": fleet.MDMDeliveryPending, - "filevault": mobileconfig.FleetFileVaultPayloadIdentifier, - } - query, args, err := sqlx.Named(sql, arg) - if err != nil { - return "", nil, fmt.Errorf("subqueryAppleProfileStatus %s: %w", status, err) - } - - return query, args, nil + OR(fv_pending + OR((fv_verifying + OR fv_verified) + AND (hdek.base64_encrypted IS NULL OR (hdek.decryptable IS NOT NULL AND hdek.decryptable != 1))))) THEN + ` + pending + ` + WHEN (prof_verifying + OR decl_verifying + -- special case when fv profile is verifying, and we already have an encryption key, in any state, we treat as verifying + OR(fv_verifying + AND hdek.base64_encrypted IS NOT NULL AND (hdek.decryptable IS NULL OR hdek.decryptable = 1)) + -- special case when fv profile is verified, but we didn't verify the encryption key, we treat as verifying + OR(fv_verified + AND hdek.base64_encrypted IS NOT NULL AND hdek.decryptable IS NULL)) THEN + ` + verifying + ` + WHEN (prof_verified + OR decl_verified + OR(fv_verified + AND hdek.base64_encrypted IS NOT NULL AND hdek.decryptable = 1)) THEN + ` + verified + ` + END +` } -// subqueryAppleDeclarationStatus builds out the subquery for declaration status -func subqueryAppleDeclarationStatus() (string, []any, error) { - const declNamedStmt = ` - CASE WHEN EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d1 - WHERE - h.uuid = d1.host_uuid - AND d1.operation_type = :install - AND d1.status = :failed - AND d1.declaration_name NOT IN (:reserved_names)) THEN - 'declarations_failed' - WHEN EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d2 - WHERE - h.uuid = d2.host_uuid - AND d2.operation_type = :install - AND(d2.status IS NULL - OR d2.status = :pending) - AND d2.declaration_name NOT IN (:reserved_names) - AND NOT EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d3 - WHERE - h.uuid = d3.host_uuid - AND d3.operation_type = :install - AND d3.status = :failed - AND d3.declaration_name NOT IN (:reserved_names))) THEN - 'declarations_pending' - WHEN EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d4 - WHERE - h.uuid = d4.host_uuid - AND d4.operation_type = :install - AND d4.status = :verifying - AND d4.declaration_name NOT IN (:reserved_names) - AND NOT EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d5 - WHERE (h.uuid = d5.host_uuid - AND d5.operation_type = :install - AND d5.declaration_name NOT IN (:reserved_names) - AND(d5.status IS NULL - OR d5.status IN(:pending, :failed))))) THEN - 'declarations_verifying' - WHEN EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d6 - WHERE - h.uuid = d6.host_uuid - AND d6.operation_type = :install - AND d6.status = :verified - AND d6.declaration_name NOT IN (:reserved_names) - AND NOT EXISTS ( - SELECT - 1 - FROM - host_mdm_apple_declarations d7 - WHERE (h.uuid = d7.host_uuid - AND d7.operation_type = :install - AND d7.declaration_name NOT IN (:reserved_names) - AND(d7.status IS NULL - OR d7.status IN(:pending, :failed, :verifying))))) THEN - 'declarations_verified' - ELSE - '' - END` - - arg := map[string]any{ - "install": fleet.MDMOperationTypeInstall, - "verifying": fleet.MDMDeliveryVerifying, - "failed": fleet.MDMDeliveryFailed, - "verified": fleet.MDMDeliveryVerified, - "pending": fleet.MDMDeliveryPending, - "reserved_names": fleetmdm.ListFleetReservedMacOSDeclarationNames(), - } - query, args, err := sqlx.Named(declNamedStmt, arg) - if err != nil { - return "", nil, fmt.Errorf("subqueryAppleDeclarationStatus: %w", err) - } - query, args, err = sqlx.In(query, args...) - if err != nil { - return "", nil, fmt.Errorf("subqueryAppleDeclarationStatus resolve IN: %w", err) - } - - return query, args, nil -} - -func subqueryOSSettingsStatusMac() (string, []any, error) { - var profArgs []any - profFailed, profFailedArgs, err := subqueryAppleProfileStatus(fleet.MDMDeliveryFailed) - if err != nil { - return "", nil, err - } - profArgs = append(profArgs, profFailedArgs...) - - profPending, profPendingArgs, err := subqueryAppleProfileStatus(fleet.MDMDeliveryPending) - if err != nil { - return "", nil, err - } - profArgs = append(profArgs, profPendingArgs...) - - profVerifying, profVerifyingArgs, err := subqueryAppleProfileStatus(fleet.MDMDeliveryVerifying) - if err != nil { - return "", nil, err - } - profArgs = append(profArgs, profVerifyingArgs...) - - profVerified, profVerifiedArgs, err := subqueryAppleProfileStatus(fleet.MDMDeliveryVerified) - if err != nil { - return "", nil, err - } - profArgs = append(profArgs, profVerifiedArgs...) - - profStmt := fmt.Sprintf(` - CASE WHEN EXISTS (%s) THEN - 'profiles_failed' - WHEN EXISTS (%s) THEN - 'profiles_pending' - WHEN EXISTS (%s) THEN - 'profiles_verifying' - WHEN EXISTS (%s) THEN - 'profiles_verified' - ELSE - '' - END`, - profFailed, - profPending, - profVerifying, - profVerified, +// sqlJoinMDMAppleProfilesStatus returns a SQL snippet that can be used to join a table derived from +// host_mdm_apple_profiles (grouped by host_uuid and status) and the hosts table. For each host_uuid, +// it derives a boolean value for each status category. The value will be 1 if the host has any +// profile in the given status category. Separate columns are used for status of the filevault profile +// vs. all other profiles. The snippet assumes the hosts table to be aliased as 'h'. +func sqlJoinMDMAppleProfilesStatus() string { + // NOTE: To make this snippet reusable, we're not using sqlx.Named here because it would + // complicate usage in other queries (e.g., list hosts). + var ( + failed = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryFailed)) + pending = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryPending)) + verifying = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerifying)) + verified = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerified)) + install = fmt.Sprintf("'%s'", string(fleet.MDMOperationTypeInstall)) + filevault = fmt.Sprintf("'%s'", mobileconfig.FleetFileVaultPayloadIdentifier) ) + return ` + LEFT JOIN ( + -- profile statuses grouped by host uuid, boolean value will be 1 if host has any profile with the given status + -- filevault profiles are treated separately + SELECT + host_uuid, + MAX( IF((status IS NULL OR status = ` + pending + `) AND profile_identifier != ` + filevault + `, 1, 0)) AS prof_pending, + MAX( IF(status = ` + failed + ` AND profile_identifier != ` + filevault + `, 1, 0)) AS prof_failed, + MAX( IF(status = ` + verifying + ` AND profile_identifier != ` + filevault + ` AND operation_type = ` + install + `, 1, 0)) AS prof_verifying, + MAX( IF(status = ` + verified + ` AND profile_identifier != ` + filevault + ` AND operation_type = ` + install + `, 1, 0)) AS prof_verified, + MAX( IF((status IS NULL OR status = ` + pending + `) AND profile_identifier = ` + filevault + `, 1, 0)) AS fv_pending, + MAX( IF(status = ` + failed + ` AND profile_identifier = ` + filevault + `, 1, 0)) AS fv_failed, + MAX( IF(status = ` + verifying + ` AND profile_identifier = ` + filevault + ` AND operation_type = ` + install + `, 1, 0)) AS fv_verifying, + MAX( IF(status = ` + verified + ` AND profile_identifier = ` + filevault + ` AND operation_type = ` + install + `, 1, 0)) AS fv_verified + FROM + host_mdm_apple_profiles + GROUP BY + host_uuid) hmap ON h.uuid = hmap.host_uuid +` +} - declStmt, declArgs, err := subqueryAppleDeclarationStatus() - if err != nil { - return "", nil, err - } - - stmt := fmt.Sprintf(` - CASE (%s) - WHEN 'profiles_failed' THEN - 'failed' - WHEN 'profiles_pending' THEN ( - CASE (%s) - WHEN 'declarations_failed' THEN - 'failed' - ELSE - 'pending' - END) - WHEN 'profiles_verifying' THEN ( - CASE (%s) - WHEN 'declarations_failed' THEN - 'failed' - WHEN 'declarations_pending' THEN - 'pending' - ELSE - 'verifying' - END) - WHEN 'profiles_verified' THEN ( - CASE (%s) - WHEN 'declarations_failed' THEN - 'failed' - WHEN 'declarations_pending' THEN - 'pending' - WHEN 'declarations_verifying' THEN - 'verifying' - ELSE - 'verified' - END) - ELSE - REPLACE((%s), 'declarations_', '') - END`, profStmt, declStmt, declStmt, declStmt, declStmt) - - args := append(profArgs, declArgs...) - args = append(args, declArgs...) - args = append(args, declArgs...) - args = append(args, declArgs...) - - // FIXME(roberto): we found issues in MySQL 5.7.17 (only that version, - // which we must support for now) with prepared statements on this - // query. The results returned by the DB were always different what - // expected unless the arguments are inlined in the query. - // - // We decided to do this given: - // - // - The time constraints we were given to develop DDM - // - The fact that all the variables in this query are really strings managed by us - // - The imminent deprecation of MySQL 5.7 - return fmt.Sprintf(strings.Replace(stmt, "?", "'%s'", -1), args...), []any{}, nil +// sqlJoinMDMAppleDeclarationsStatus returns a SQL snippet that can be used to join a table derived from +// host_mdm_apple_declarations (grouped by host_uuid and status) and the hosts table. For each host_uuid, +// it derives a boolean value for each status category. The value will be 1 if the host has any +// declaration in the given status category. The snippet assumes the hosts table to be aliased as 'h'. +func sqlJoinMDMAppleDeclarationsStatus() string { + // NOTE: To make this snippet reusable, we're not using sqlx.Named here because it would + // complicate usage in other queries (e.g., list hosts). + var ( + failed = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryFailed)) + pending = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryPending)) + verifying = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerifying)) + verified = fmt.Sprintf("'%s'", string(fleet.MDMDeliveryVerified)) + install = fmt.Sprintf("'%s'", string(fleet.MDMOperationTypeInstall)) + reservedDeclNames = fmt.Sprintf("'%s', '%s', '%s'", fleetmdm.FleetMacOSUpdatesProfileName, fleetmdm.FleetIOSUpdatesProfileName, fleetmdm.FleetIPadOSUpdatesProfileName) + ) + return ` + LEFT JOIN ( + -- declaration statuses grouped by host uuid, boolean value will be 1 if host has any declaration with the given status + SELECT + host_uuid, + MAX( IF((status IS NULL OR status = ` + pending + `), 1, 0)) AS decl_pending, + MAX( IF(status = ` + failed + `, 1, 0)) AS decl_failed, + MAX( IF(status = ` + verifying + ` , 1, 0)) AS decl_verifying, + MAX( IF(status = ` + verified + ` , 1, 0)) AS decl_verified + FROM + host_mdm_apple_declarations + WHERE + operation_type = ` + install + ` AND declaration_name NOT IN(` + reservedDeclNames + `) + GROUP BY + host_uuid) hmad ON h.uuid = hmad.host_uuid +` } func (ds *Datastore) GetMDMAppleProfilesSummary(ctx context.Context, teamID *uint) (*fleet.MDMProfilesSummary, error) { - subquery, args, err := subqueryOSSettingsStatusMac() - if err != nil { - return nil, ctxerr.Wrap(ctx, err, "building os settings subquery") - } - - sqlFmt := ` + stmt := ` SELECT - %s as status, - COUNT(id) as count + COUNT(id) AS count, + %s AS status FROM - hosts h -WHERE platform = 'darwin' OR platform = 'ios' OR platform = 'ipados' -GROUP BY status, team_id HAVING status IN (?, ?, ?, ?) AND %s` - - args = append(args, fleet.MDMDeliveryFailed, fleet.MDMDeliveryPending, fleet.MDMDeliveryVerifying, fleet.MDMDeliveryVerified) + hosts h + %s + %s + LEFT JOIN host_disk_encryption_keys hdek ON h.id = hdek.host_id +WHERE + platform IN('darwin', 'ios', 'ipad_os') AND %s +GROUP BY + status HAVING status IS NOT NULL` teamFilter := "team_id IS NULL" if teamID != nil && *teamID > 0 { - teamFilter = "team_id = ?" - args = append(args, *teamID) + teamFilter = fmt.Sprintf("team_id = %d", *teamID) } - stmt := fmt.Sprintf(sqlFmt, subquery, teamFilter) + stmt = fmt.Sprintf(stmt, sqlCaseMDMAppleStatus(), sqlJoinMDMAppleProfilesStatus(), sqlJoinMDMAppleDeclarationsStatus(), teamFilter) var dest []struct { Count uint `db:"count"` Status string `db:"status"` } - err = sqlx.SelectContext(ctx, ds.reader(ctx), &dest, stmt, args...) - if err != nil { + if err := sqlx.SelectContext(ctx, ds.reader(ctx), &dest, stmt); err != nil { return nil, err } diff --git a/server/datastore/mysql/hosts.go b/server/datastore/mysql/hosts.go index 0b3a0e4983..ee23749de8 100644 --- a/server/datastore/mysql/hosts.go +++ b/server/datastore/mysql/hosts.go @@ -1114,6 +1114,14 @@ func (ds *Datastore) applyHostFilters( whereParams = append(whereParams, microsoft_mdm.MDMDeviceStateEnrolled) } + mdmAppleProfilesStatusJoin := "" + mdmAppleDeclarationsStatusJoin := "" + if opt.OSSettingsFilter.IsValid() || + opt.MacOSSettingsFilter.IsValid() { + mdmAppleProfilesStatusJoin = sqlJoinMDMAppleProfilesStatus() + mdmAppleDeclarationsStatusJoin = sqlJoinMDMAppleDeclarationsStatus() + } + sqlStmt += fmt.Sprintf( `FROM hosts h LEFT JOIN host_seen_times hst ON (h.id = hst.host_id) @@ -1128,6 +1136,8 @@ func (ds *Datastore) applyHostFilters( %s %s %s + %s + %s %s WHERE TRUE AND %s AND %s AND %s AND %s `, @@ -1142,6 +1152,8 @@ func (ds *Datastore) applyHostFilters( munkiJoin, displayNameJoin, connectedToFleetJoin, + mdmAppleProfilesStatusJoin, + mdmAppleDeclarationsStatusJoin, // Conditions ds.whereFilterHostsByTeams(filter, "h"), @@ -1304,15 +1316,9 @@ func filterHostsByMacOSSettingsStatus(sql string, opt fleet.HostListOptions, par whereStatus += ` AND h.team_id IS NULL` } - subqueryStatus, paramsStatus, err := subqueryOSSettingsStatusMac() - if err != nil { - return "", nil, err - } + whereStatus += fmt.Sprintf(` AND %s = ?`, sqlCaseMDMAppleStatus()) - whereStatus += fmt.Sprintf(` AND %s = ?`, subqueryStatus) - paramsStatus = append(paramsStatus, opt.MacOSSettingsFilter) - - return sql + whereStatus, append(params, paramsStatus...), nil + return sql + whereStatus, append(params, opt.MacOSSettingsFilter), nil } func filterHostsByMacOSDiskEncryptionStatus(sql string, opt fleet.HostListOptions, params []interface{}) (string, []interface{}) { @@ -1364,13 +1370,9 @@ func (ds *Datastore) filterHostsByOSSettingsStatus(sql string, opt fleet.HostLis AND ((h.platform = 'windows' AND (%s)) OR ((h.platform = 'darwin' OR h.platform = 'ios' OR h.platform = 'ipados') AND (%s)))` - whereMacOS, paramsMacOS, err := subqueryOSSettingsStatusMac() - if err != nil { - return "", nil, err - } - whereMacOS += ` = ?` - // ensure the host has MDM turned on - paramsMacOS = append(paramsMacOS, opt.OSSettingsFilter) + // construct the WHERE for macOS + whereMacOS = fmt.Sprintf(`(%s) = ?`, sqlCaseMDMAppleStatus()) + paramsMacOS := []any{opt.OSSettingsFilter} // construct the WHERE for windows whereWindows = `hmdm.is_server = 0` diff --git a/server/datastore/mysql/labels.go b/server/datastore/mysql/labels.go index d604b286a4..5ac777be39 100644 --- a/server/datastore/mysql/labels.go +++ b/server/datastore/mysql/labels.go @@ -638,6 +638,12 @@ func (ds *Datastore) applyHostLabelFilters(ctx context.Context, filter fleet.Tea joinParams = append(joinParams, microsoft_mdm.MDMDeviceStateEnrolled) } + if opt.OSSettingsFilter.IsValid() || + opt.MacOSSettingsFilter.IsValid() { + query += sqlJoinMDMAppleProfilesStatus() + query += sqlJoinMDMAppleDeclarationsStatus() + } + query += fmt.Sprintf(` WHERE lm.label_id = ? AND %s `, ds.whereFilterHostsByTeams(filter, "h")) whereParams = append(whereParams, lid) From 839106c572c5188d43eca23ff825af1c6f5031b0 Mon Sep 17 00:00:00 2001 From: Tim Lee Date: Tue, 24 Sep 2024 17:45:37 -0600 Subject: [PATCH 13/13] Hotfix CVE test (#22349) --- server/vulnerabilities/nvd/cve_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/vulnerabilities/nvd/cve_test.go b/server/vulnerabilities/nvd/cve_test.go index 691f3e321a..f9f8b12562 100644 --- a/server/vulnerabilities/nvd/cve_test.go +++ b/server/vulnerabilities/nvd/cve_test.go @@ -343,7 +343,7 @@ func TestTranslateCPEToCVE(t *testing.T) { }, "cpe:2.3:a:python:python:3.9.6:*:*:*:*:windows:*:*": { includedCVEs: []cve{ - {ID: "CVE-2024-4030", resolvedInVersion: "3.12.4"}, + {ID: "CVE-2024-4030", resolvedInVersion: "3.9.20"}, }, continuesToUpdate: true, },