Install Mac forwarder with Kandji

With the Stairwell Forwarder for MacOS, organizations can automatically collect files from macOS devices (Intel & Apple Silicon supported) and have them processed by the Stairwell platform. To deploy the Stairwell Forwarder, multiple pieces will need to be in place before it can fully function.

📘

This article is for installing the Stairwell Forwarder via Kandji. For other step-by-step guides, please check to see if there is an article available here.

Prerequisite(s)

Before the forwarder package can be installed, several profiles will need to be installed on the client machine. These profiles ensure that the Forwarder install without requiring user interaction as well as ensuring it has full disk access.

  • Privacy Profile
  • System Extension Profile
  • System Extension Policy
  • Stairwell Forwarder Profile


🚧

Warning!

The initial scan (we refer to as the backscan) is a comprehensive physical disk scan that is very resource intensive for a short period of time. We do not recommend installing the forwarder on critical assets early in your deployment. Think of your first several deployments as "sacrificial" in that they will take the biggest hit because they will be uploading the greatest number of unique files and each subsequent install will have less and less unique files and therefore, shorter and less intensive backscans.

Installing the Privacy Profile

The privacy profile ensures that the Forwarder can access all files on the entire disk, including in the User home directory. By default this access is denied by macOS, so it is critical that this profile is deployed ahead of installing the Forwarder.

  • On the left hand menu, select Library
  • Select Add new in the top right hand corner
  • Search for Privacy, select the Privacy profile option then Add & Configure
  • Name the item Stairwell Forwarder Privacy
  • Under Assignment, add this to your test group blueprint.
  • Use the following values in the App Access pane
    • 🔘 Bundle ID
    • Identifier: com.stairwell.Inception.ProcessMonitor
    • For Code Requirement, copy the following string into the box:
anchor apple generic and identifier "com.stairwell.Inception.ProcessMonitor" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "677UQVFGY8")
  • Under App or Service use the following settings:
    • App or Service: SystemPolicyAllFiles
    • Access: Allow
  • Select Save in the bottom right.

Installing the System Extension Profile

The system extension policy allows the Stairwell Forwarder system extension to load without user interaction.

  • On the left hand menu, select Library
  • Select Add new in the top right hand corner
  • Search for System Extension, select the System Extension profile option then Add & Configure
  • Name the item Stairwell Forwarder System Extension
  • Under Assignment, add this to your test group blueprint.
  • Use the following values for this profile:
    • General - ☑️ Allow users to approve system extensions (Unless your security policy dictates otherwise)
    • Under Team ID
      • Team Identifier - 677UQVFGY8
      • Name - Stairwell Forwarder
      • System Extensions - Allow specific system extensions
      • Click Add more
        • Allowed System Extension - com.stairwell.Inception.ProcessMonitor
        • Name - Stairwell Forwarder
      • The completed settings should look like the following:
  • Select Save in the bottom right

Installing the System Extension Policy

If this policy is not pushed, it is impossible to silently remove the Stairwell Forwarder. It is highly suggested to push this profile so that silent remediations are possible.

  • On the left hand menu, select Library
  • Select Add new in the top right hand corner
  • Select Custom Profile followed by Add & Configure
  • Name the item Stairwell Forwarder System Extension Policy
  • Under Assignment, add this to your test group blueprint.
  • Download the example System Extension Policy from the Download Center. 
  • Drag and drop the file under the Profile box, where it says Drag file here or click to upload .mobileconfig file
  • Click save in the bottom right corner

Installing the Stairwell Forwarder Profile

This profile contains the Environment ID for your Stairwell Environment as well as a registration token. Without these settings, the Forwarder will not register correctly.

  • On the left hand menu, select Library
  • Select Add new in the top right hand corner
  • Select Custom Profile followed by Add & Configure
  • Name the item Stairwell Forwarder Settings
  • Under Assignment, add this to your test group blueprint.
  • Download the example profile from the Download Center.
  • Edit the example profile with your favorite text editor
  • Replace YOUR_ENVID_HERE with your actual Env ID.
  • Replace YOUR_REGISTRATION_TOKEN_HERE with your registration token.

❗️

If either of these values are incorrect, the Forwarder will fail to register. Double check these values before continuing.

  • Save your changes to the profile
  • Drag and drop your customized settings profile under the Profile box, where it says Drag file here or click to upload .mobileconfig file
  • Click save in the bottom right corner

Installing the Stairwell Forwarder

Once all the above profiles are pushed to the blueprint you are targeting, the last step is to install the Stairwell Forwarder itself.

  • On the left hand menu, select Library

  • Select Add new in the top right hand corner

  • Select Custom Apps followed by Add & Configure

  • Name the item Stairwell Forwarder Install

  • Under Assignment, add this to your test group blueprint.

  • Use the following values for this Custom App:

  • Installation - Audit and enforce

  • Use the following audit script:

    #!/bin/zsh
    
    # App install check
    APP_CHECK_ENABLED=true
    APP_NAME="Inception Forwarder"
    APP_PATH="/Applications/${APP_NAME}.app"
    APP_VERSION_CHECK_ENABLED=true
    APP_VERSION=851
    APP_VERSION_KEY="CFBundleVersion"
    # Profile install check
    PROFILE_CHECK_ENABLED=true
    PROFILE_NAME="Stairwell Forwarder System Extension"
    
    # non-zero exit code to install the software
    
    appVersionCheck() {
    	## App Version check
    	INSTALLED_APP_VERSION=$(defaults read "${APP_PATH}/Contents/Info" "${APP_VERSION_KEY}")
    	if (($INSTALLED_APP_VERSION >= $APP_VERSION)); then
    		echo "${APP_NAME} is up to date, exiting..."
    		exit 0
    	else
    		echo "${APP_NAME} is out of date, proceeding..."
    		exit 1
    	fi
    }
    
    ## Profile check
    # If a profile is required for the software to work properly, check for it before
    # proceeding
    if [ "$PROFILE_CHECK_ENABLED" = true ] ; then
    	/usr/bin/profiles -C -v | awk -F: '/attribute: name/{print $NF}' | grep -q "${PROFILE_NAME}"
    	# 1 if missing, 0 if present
    	profile_installed=$?
    	if [ $profile_installed -ne 0 ]; then
    		echo "${PROFILE_NAME} profile is missing, exiting..."
    		exit 0
    	else
    		echo "${PROFILE_NAME} profile is installed, proceeding..."
    	fi
    fi
    
    ## App check
    if [ "$APP_CHECK_ENABLED" = true ] ; then
    	# If the app exists in the path specified in APP_PATH, skip install
    	if [ -d $APP_PATH ]; then
    		if [ "$APP_VERSION_CHECK_ENABLED" = true ]; then
    			appVersionCheck
    		fi
    		echo "${APP_NAME}.app is installed, exiting..."
    		exit 0
    	else
    		echo "${APP_NAME}.app is missing, proceeding..."
    		exit 1
    	fi
    fi
    

📘

In this script

APP_VERSION must match the build number of the Stairwell Forwarder. If the file name is InceptionForwarder-1.3.2.851, the build number would be 851

PROFILE_NAME must match the profile used to allow the system extension to be installed. If following this guide exactly, it should be Stairwell Forwarder System Extension

  • Skip all Self Service settings
  • Under Install Details, use the following settings:
    • 🔘 Installer Package
    • Drag and drop the latest install package found on the Download Center
  • No Preinstall or Postinstall scripts are required
  • Click Save in the bottom right corner.

Once all of the above has been completed, the Forwarder will be deployed and working on the blueprint selected in the above steps.

Confirm Installation

  • Navigate to https://app.stairwell.com and log in
  • Click on Assets
  • Click on the newly created asset name(s) to confirm the retrieval of files
  • Take note of the data under All Objects

📘

It may take a few minutes for file ingestion to begin and show in the application.