https://github.com/crowdstrike/falcon-installer
A lightweight, multi-platform CrowdStrike Falcon sensor installer written in Golang
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.9%) to scientific vocabulary
Keywords from Contributors
Repository
A lightweight, multi-platform CrowdStrike Falcon sensor installer written in Golang
Basic Info
Statistics
- Stars: 10
- Watchers: 4
- Forks: 3
- Open Issues: 0
- Releases: 18
Metadata Files
README.md
falcon-installer
A lightweight, multi-platform CrowdStrike Falcon sensor installer written in Golang
Falcon API Permissions
API clients are granted one or more API scopes. Scopes allow access to specific CrowdStrike APIs and describe the actions that an API client can perform.
Ensure the following API scopes are enabled:
[!IMPORTANT] - Sensor Download [read] - (optional) Installation Tokens [read]
This scope allows the installer to retrieve a provisioning token from the API, but only if installation tokens are required in your environment. - (optional) Sensor update policies [read] Use this scope when using the
--sensor-update-policyflag or configuring theFALCON_SENSOR_UPDATE_POLICYenvironment variable. - (Optional) Sensor update policies [write] Required if you want to automatically retrieve a maintenance token from the API. Not needed when using the--maintenance-tokenflag or configuring theFALCON_MAINTENANCE_TOKENenvironment variable. Maintenance tokens are required to uninstall sensors that have uninstall protection enabled.
Usage
```shell Usage: falcon-installer [flags]
Flags: --config string A falcon-installer configuration file --enable-file-logging Output logs to file -h, --help Print usage information --quiet Suppress all log output --tmpdir string Temporary directory for downloading files (default "/tmp/falcon") --verbose Enable verbose output -v, --version Print version information
Falcon API Flags: --access-token string Access token for accessing CrowdStrike Falcon Platform --client-id string Client ID for accessing CrowdStrike Falcon Platform --client-secret string Client Secret for accessing CrowdStrike Falcon Platform --cloud string Falcon cloud abbreviation (e.g. us-1, us-2, eu-1, us-gov-1) (default "autodiscover") --member-cid string Member CID for MSSP (for cases when OAuth2 authenticates multiple CIDs) --sensor-update-policy string The sensor update policy name to use for sensor installation (default "platform_default") --sensor-version string The sensor version to update or install (overrides sensor-update-policy) --user-agent string User agent string to append to use for API requests
Falcon Sensor Flags: --cid string Falcon Customer ID. Optional when OAuth2 credentials are provided --disable-proxy Disable the sensor proxy settings --maintenance-token string Maintenance token for uninstalling the sensor or configuring sensor settings --provisioning-token string The provisioning token to use for installing the sensor. If not provided, the API will attempt to retrieve a token --proxy-host string The proxy host for the sensor to use when communicating with CrowdStrike --proxy-port string The proxy port for the sensor to use when communicating with CrowdStrike --tags string A comma separated list of tags for sensor grouping
Falcon Uninstall Flags: --uninstall Uninstall the Falcon sensor
Falcon Update Flags: --update Update the Falcon sensor for when sensor update policies are not in use
Vault Flags: --aws-secret-name string AWS Secrets Manager Secret Name --aws-secret-region string AWS Secrets Manager Region --azure-vault-name string Azure Key Vault Name --gcp-project-id string GCP Project ID for Secret Manager --oci-compartment-id string OCI Compartment ID --oci-vault-name string OCI Vault Name ```
Linux Specific Arguments
shell
Linux Installation Flags:
--configure-image Use when installing the sensor in an image
--gpg-key string Falcon GPG key to import
MacOS Specific Arguments
shell
MacOS Installation Flags:
--configure-image Use when installing the sensor in an image
Windows Specific Arguments
shell
Windows Installation Flags:
--disable-provisioning-wait Disabling allows the Windows installer more provisioning time
--disable-start Prevent the sensor from starting after installation until a reboot occurs
--pac-url string Configure a proxy connection using the URL of a PAC file when communicating with CrowdStrike
--provisioning-wait-time uint The number of milliseconds to wait for the sensor to provision (default 1200000)
--restart Allow the system to restart after sensor installation if necessary
--vdi Enable virtual desktop infrastructure mode
Installation
- Download a binary release for your targeted operating system of the Falcon Installer from the official releases page.
- Extract the archive
tar -xvzf <linux-archive>.tar.gzfor Linux andtar -xf <windows-archive>.zipfor Windows. - Run the installer setting the CLI flags or environment variables as necessary.
Building
You can build the binary for either Linux or Windows operating systems from source from within the root of the project directory.
Linux and MacOS
bash
go build -o falcon-installer cmd/main.go
Windows
bash
go build -o falcon-installer.exe cmd/main.go
Once the binary has been built, you can then manually copy to a location in the local $PATH if desired.
Usage
The Falcon Installer provides several command-line options to customize the installation process. Below are some common usage examples:
Basic Installation
shell
falcon-installer --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET
Installation with Specific Options
shell
falcon-installer --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --cloud us-1 --sensor-update-policy enterprise --tags "tag1,tag2,tag3"
Installation with Parent/Child CIDs
shell
falcon-installer --client-id PARENT_CLIENT_ID --client-secret PARENT_CLIENT_SECRET --member-cid MEMBER_CID
Uninstallation
shell
falcon-installer --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --uninstall
Update
shell
falcon-installer --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --update --sensor-version 1.42.1234
Using a Configuration File
You can also use a configuration file to specify installation options. The installer supports YAML, JSON, INI, TOML, and HCL formats. See the examples directory for sample configuration files.
shell
falcon-installer --config-file /path/to/config/file
Using Cloud Vaults
The Falcon Installer supports retrieving credentials and configuration from cloud vaults, eliminating the need to store sensitive API credentials in configuration files or environment variables.
AWS Secrets Manager
AWS Secrets Manager integration uses the AWS SDK's default credential chain, which supports multiple authentication methods including IAM roles, environment variables, and AWS CLI credentials.
Prerequisites:
- AWS Secrets Manager secret containing key-value pairs
- Authentication configured (IAM role, environment variables, or AWS CLI)
- Secret contains Falcon configuration as JSON (e.g. {"FALCON_CLIENT_ID": "...", "falcon-client-secret": "..."})
Usage: ```shell
Using AWS Secrets Manager
falcon-installer --aws-secret-name "falcon-credentials" --aws-secret-region "us-east-1" ```
Azure Key Vault
Azure Key Vault integration uses Azure's DefaultAzureCredential authentication, which supports multiple authentication methods including managed identity, Azure CLI, and service principal authentication.
Prerequisites:
- Azure Key Vault with appropriate access permissions
- Authentication configured (managed identity, Azure CLI, or service principal)
- Secrets stored with the falcon- or FALCON- prefix (e.g. FALCON-CLIENT-ID, falcon-client-secret, etc.)
Usage: ```shell
Using Azure Key Vault
falcon-installer --azure-vault-name "my-keyvault" ```
Google Cloud Secret Manager
GCP Secret Manager integration uses Google's Application Default Credentials (ADC), which supports multiple authentication methods including service accounts, workload identity, and gcloud CLI credentials.
Prerequisites:
- GCP project with Secret Manager API enabled
- Authentication configured (service account, workload identity, or gcloud CLI)
- Secrets stored with the falcon_ or FALCON_ prefix (e.g. falcon_client_id, FALCON_CLIENT_SECRET, etc.)
Usage: ```shell
Using GCP Secret Manager
falcon-installer --gcp-project-id "my-project-id" ```
Oracle Cloud Infrastructure (OCI) Vault
OCI Vault integration uses Instance Principal authentication, designed for use within OCI compute instances.
Prerequisites:
- OCI Vault in a specified compartment
- Instance Principal authentication configured
- Compute instance with appropriate IAM policies
- Secrets stored with the falcon_ or FALCON_ prefix (e.g. FALCON_CLIENT_ID, falcon_client_secret, etc.)
Usage: ```shell
Using OCI Vault
falcon-installer --oci-vault-name "my-vault" --oci-compartment-id "ocid1.compartment.oc1..example" ```
Contributing
We welcome contributions that improve the installation and distribution processes of the Falcon Sensor. Please ensure that your contributions align with our coding standards and pass all CI/CD checks.
Support
Falcon Installer is a community-driven, open source project designed to streamline the deployment and use of the CrowdStrike Falcon sensor. While not a formal CrowdStrike product, Falcon Installer is maintained by CrowdStrike and supported in partnership with the open source developer community.
For additional support, please see the SUPPORT.md file.
License
See LICENSE
Owner
- Name: CrowdStrike
- Login: CrowdStrike
- Kind: organization
- Email: github@crowdstrike.com
- Location: United States of America
- Website: https://www.crowdstrike.com
- Repositories: 183
- Profile: https://github.com/CrowdStrike
GitHub Events
Total
- Create event: 17
- Issues event: 8
- Release event: 10
- Watch event: 7
- Delete event: 8
- Issue comment event: 7
- Push event: 59
- Pull request review event: 1
- Pull request event: 118
- Fork event: 2
Last Year
- Create event: 17
- Issues event: 8
- Release event: 10
- Watch event: 7
- Delete event: 8
- Issue comment event: 7
- Push event: 59
- Pull request review event: 1
- Pull request event: 118
- Fork event: 2
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Gabe Alford | r****s@g****m | 88 |
| dependabot[bot] | 4****] | 8 |
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 6
- Total pull requests: 135
- Average time to close issues: 1 day
- Average time to close pull requests: about 5 hours
- Total issue authors: 4
- Total pull request authors: 2
- Average comments per issue: 0.33
- Average comments per pull request: 0.06
- Merged pull requests: 122
- Bot issues: 0
- Bot pull requests: 16
Past Year
- Issues: 6
- Pull requests: 123
- Average time to close issues: 1 day
- Average time to close pull requests: about 6 hours
- Issue authors: 4
- Pull request authors: 2
- Average comments per issue: 0.33
- Average comments per pull request: 0.07
- Merged pull requests: 110
- Bot issues: 0
- Bot pull requests: 16
Top Authors
Issue Authors
- redhatrises (3)
- jturgeon79 (1)
- hhughes0 (1)
- jcv- (1)
Pull Request Authors
- redhatrises (119)
- dependabot[bot] (16)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 36
proxy.golang.org: github.com/CrowdStrike/falcon-installer
- Documentation: https://pkg.go.dev/github.com/CrowdStrike/falcon-installer#section-documentation
- License: mit
-
Latest release: v0.17.0
published 10 months ago
Rankings
proxy.golang.org: github.com/crowdstrike/falcon-installer
- Homepage: https://github.com/crowdstrike/falcon-installer
- Documentation: https://pkg.go.dev/github.com/crowdstrike/falcon-installer#section-documentation
- License: MIT
-
Latest release: v0.17.0
published 10 months ago
Rankings
Dependencies
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- actions/setup-go 0c52d547c9bc32b1aa3301fd7a9cb496313a4491 composite
- golangci/golangci-lint-action 3cfe3a4abbb849e10058ce4af15d205b6da42804 composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- actions/setup-go 0c52d547c9bc32b1aa3301fd7a9cb496313a4491 composite
- goreleaser/goreleaser-action 7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 composite
- github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
- github.com/blang/semver/v4 v4.0.0
- github.com/crowdstrike/gofalcon v0.6.1-0.20240605161449-be5c9bef3e6a
- github.com/go-logr/logr v1.3.0
- github.com/go-logr/stdr v1.2.2
- github.com/go-openapi/analysis v0.22.2
- github.com/go-openapi/errors v0.22.0
- github.com/go-openapi/jsonpointer v0.20.2
- github.com/go-openapi/jsonreference v0.20.4
- github.com/go-openapi/loads v0.21.5
- github.com/go-openapi/runtime v0.27.1
- github.com/go-openapi/spec v0.20.14
- github.com/go-openapi/strfmt v0.22.2
- github.com/go-openapi/swag v0.22.9
- github.com/go-openapi/validate v0.23.1
- github.com/google/uuid v1.6.0
- github.com/josharian/intern v1.0.0
- github.com/mailru/easyjson v0.7.7
- github.com/mitchellh/mapstructure v1.5.0
- github.com/oklog/ulid v1.3.1
- github.com/opentracing/opentracing-go v1.2.0
- github.com/sirupsen/logrus v1.9.3
- go.mongodb.org/mongo-driver v1.14.0
- go.opentelemetry.io/otel v1.21.0
- go.opentelemetry.io/otel/metric v1.21.0
- go.opentelemetry.io/otel/trace v1.21.0
- golang.org/x/oauth2 v0.20.0
- golang.org/x/sync v0.5.0
- golang.org/x/sys v0.15.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
- github.com/blang/semver/v4 v4.0.0
- github.com/crowdstrike/gofalcon v0.6.1-0.20240605161449-be5c9bef3e6a
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/go-logr/logr v1.2.2
- github.com/go-logr/logr v1.3.0
- github.com/go-logr/stdr v1.2.2
- github.com/go-openapi/analysis v0.22.2
- github.com/go-openapi/errors v0.22.0
- github.com/go-openapi/jsonpointer v0.20.2
- github.com/go-openapi/jsonreference v0.20.4
- github.com/go-openapi/loads v0.21.5
- github.com/go-openapi/runtime v0.27.1
- github.com/go-openapi/spec v0.20.14
- github.com/go-openapi/strfmt v0.22.2
- github.com/go-openapi/swag v0.22.9
- github.com/go-openapi/validate v0.23.1
- github.com/google/go-cmp v0.6.0
- github.com/google/uuid v1.6.0
- github.com/josharian/intern v1.0.0
- github.com/kr/pretty v0.3.1
- github.com/kr/text v0.2.0
- github.com/mailru/easyjson v0.7.7
- github.com/mitchellh/mapstructure v1.5.0
- github.com/oklog/ulid v1.3.1
- github.com/opentracing/opentracing-go v1.2.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/rogpeppe/go-internal v1.11.0
- github.com/sirupsen/logrus v1.9.3
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.7.0
- github.com/stretchr/testify v1.9.0
- go.mongodb.org/mongo-driver v1.14.0
- go.opentelemetry.io/otel v1.21.0
- go.opentelemetry.io/otel/metric v1.21.0
- go.opentelemetry.io/otel/sdk v1.17.0
- go.opentelemetry.io/otel/trace v1.21.0
- golang.org/x/oauth2 v0.20.0
- golang.org/x/sync v0.5.0
- golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
- golang.org/x/sys v0.15.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1