foundry-sample-rapid-response

Rapid Response sample Foundry app

https://github.com/crowdstrike/foundry-sample-rapid-response

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found 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 (15.5%) to scientific vocabulary

Keywords

falcon-foundry

Keywords from Contributors

hack standardization interpretability meshing interaction yolov5s data-profilers log-parser energy-system-model numeric
Last synced: 7 months ago · JSON representation ·

Repository

Rapid Response sample Foundry app

Basic Info
  • Host: GitHub
  • Owner: CrowdStrike
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 4.2 MB
Statistics
  • Stars: 9
  • Watchers: 5
  • Forks: 6
  • Open Issues: 2
  • Releases: 0
Topics
falcon-foundry
Created over 2 years ago · Last pushed 7 months ago
Metadata Files
Readme License Code of conduct Citation Security Support

README.md

CrowdStrike Falcon

Rapid Response sample Foundry app

The Rapid Response sample Foundry app is a community-driven, open source project which serves as an example of an app which can be built using CrowdStrike's Foundry ecosystem. foundry-sample-rapid-response is an open source project, not a CrowdStrike product. As such, it carries no formal support, expressed or implied.

This app is one of several App Templates included in Foundry that you can use to jumpstart your development. It comes complete with a set of preconfigured capabilities aligned to its business purpose. Deploy this app from the Templates page with a single click in the Foundry UI, or create an app from this template using the CLI.

[!IMPORTANT]
To deploy this sample app, you need access to the Falcon console.

Description

The Rapid Response sample Foundry app provides a way to orchestrate execution of executables and removal of files across Windows-based systems, either by targeting specific hosts or by targeting the host groups.

This app illustrates the following functionality amongst other components: * use of saved searches * use of RTR script orchestration via workflows, including scheduling * use of UI components and extensions * use of file uploads * use of functions

Prerequisites

  • The Foundry CLI (instructions below).
  • Go v1.23+ (needed if modifying the app's functions). See https://go.dev/learn for installation instructions.
  • Yarn (needed if modifying the app's UI). See https://yarnpkg.com/getting-started for installation instructions.

Install the Foundry CLI

You can install the Foundry CLI with Scoop on Windows or Homebrew on Linux/macOS.

Windows:

Install Scoop. Then, add the Foundry CLI bucket and install the Foundry CLI.

shell scoop bucket add foundry https://github.com/crowdstrike/scoop-foundry-cli.git scoop install foundry

Or, you can download the latest Windows zip file, expand it, and add the install directory to your PATH environment variable.

Linux and macOS:

Install Homebrew. Then, add the Foundry CLI repository to the list of formulae that Homebrew uses and install the CLI:

shell brew tap crowdstrike/foundry-cli brew install crowdstrike/foundry-cli/foundry

Run foundry version to verify it's installed correctly.

Getting Started

Clone this sample to your local system, or download as a zip file.

shell git clone https://github.com/CrowdStrike/foundry-sample-rapid-response cd foundry-sample-rapid-response

Log in to Foundry:

shell foundry login

Select the following permissions:

  • [x] Create and run RTR scripts
  • [x] Create, execute and test workflow templates
  • [x] Create, run and view API integrations
  • [x] Create, edit, delete, and list queries

Deploy the app:

shell foundry apps deploy

[!TIP] If you get an error that the name already exists, change the name to something unique to your CID in manifest.yml.

Once the deployment has finished, you can release the app:

shell foundry apps release

Next, go to Foundry > App catalog, find your app, and install it. Select the Open App button in the success dialog.

[!TIP] If the app doesn't load, reload the page.

You should be able to create a job and save it.

About this sample app

Foundry capabilities used

  • Collections. Used by the app to store state information, such as metadata about created jobs, execution history, and an audit log.
  • Functions. Backend business logic for invoking workflows, normalizing and aggregating data to be returned to the UI, and modifying the state of the collections.
  • Queries. Query results of RTR script execution to extract metadata about on which hosts the scripts successfully executed.
  • RTR scripts. Executes executables on a target system. Removes files from a targeted system.
  • UI navigation. Adds the app to the Falcon navigation for easy access.
  • UI pages. Custom UI pages to display results and manage the app.
  • Workflow templates. Workflows for orchestrating the execution of the jobs against individual hosts and host groups.

Languages and frameworks used

  • Functions
    • Go
    • CrowdStrike Foundry Function Go SDK (https://github.com/CrowdStrike/foundry-fn-go)
  • RTR scripts
    • PowerShell
  • UI
    • HTML, CSS
    • TypeScript, React

Directory structure

  • collections. Schemas used in the collections used by this app.
  • functions
    • Func_Jobs: Creates and updates jobs, invokes workflows, and manages the audit log.
    • job_history: Manages the job execution history.
  • rtr-scripts
    • check_file_exist: RTR script which checks if an executable or file is present on a Windows system.
    • remove_file: RTR script which removes a file or executable if the file is present on a Windows system.
  • saved-searches/Query_By_WorkflowRootExecutionID: Saved search for retrieving events by a workflow execution ID.
  • ui/pages/rapid-response-react: Single Page Application which serves as the frontend of the app.
  • workflows: Workflow template definitions. Fusion workflows are created from the templates in this directory.
    • Install_software_Job_Template.yml: Workflow to upload and invoke an executable via RTR on hosts. Results are written to LogScale.
    • Notify_job_execution_template.yml: Workflow which notifies the job_history function to report results of the Install_software_Job_Template and Remove_file_template.yml.
    • Remove_file_template.yml: Workflow to remove files from targeted hosts. Results are written to LogScale.

Foundry resources



WE STOP BREACHES

Owner

  • Name: CrowdStrike
  • Login: CrowdStrike
  • Kind: organization
  • Email: github@crowdstrike.com
  • Location: United States of America

Citation (CITATION.cff)

cff-version: 1.2.0
title: 'CrowdStrike Foundry Sample App - Rapid Response'
message: >-
  If you use this software, and wish to cite the origins, 
  please use metadata from this file.
type: software
authors:
  - given-names: 
    family-names: CrowdStrike
    email: oss-questions@crowdstrike.com
repository-code: 'https://github.com/CrowdStrike/foundry-sample-rapid-response'
url: 'https://www.crowdstrike.com'
repository-artifact: 'https://pkg.go.dev/github.com/crowdstrike/foundry-sample-rapid-response'
abstract: >-
  The CrowdStrike Foundry Sample App - Rapid Response
  is a community-driven, open source project designed
  to illustrate creating apps with CrowdStrike Foundry.
keywords:
  - crowdstrike
  - oauth2
  - crowdstrike-foundry
  - go
  - python
  - javascript
  - windows
  - linux
  - mac
license: MIT

GitHub Events

Total
  • Issues event: 2
  • Watch event: 4
  • Delete event: 113
  • Issue comment event: 29
  • Push event: 173
  • Pull request review comment event: 2
  • Pull request review event: 118
  • Pull request event: 261
  • Fork event: 5
  • Create event: 102
Last Year
  • Issues event: 2
  • Watch event: 4
  • Delete event: 113
  • Issue comment event: 29
  • Push event: 173
  • Pull request review comment event: 2
  • Pull request review event: 118
  • Pull request event: 261
  • Fork event: 5
  • Create event: 102

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 147
  • Total Committers: 11
  • Avg Commits per committer: 13.364
  • Development Distribution Score (DDS): 0.517
Past Year
  • Commits: 119
  • Committers: 8
  • Avg Commits per committer: 14.875
  • Development Distribution Score (DDS): 0.403
Top Committers
Name Email Commits
dependabot[bot] 4****] 71
Matt Raible m****e@c****m 26
Drew Neil d****l@c****m 13
johns31459 1****9 11
Praveen Bathala p****a@c****m 8
Johnny Steenbergen j****n@c****m 8
danb d****d@g****m 4
github-actions[bot] 4****] 3
Paul Rosset p****t@c****m 1
Ade Adesokan a****n@c****m 1
rlucha-crowdstrike r****a@c****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 2
  • Total pull requests: 268
  • Average time to close issues: 8 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 2
  • Total pull request authors: 12
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.18
  • Merged pull requests: 217
  • Bot issues: 1
  • Bot pull requests: 211
Past Year
  • Issues: 2
  • Pull requests: 255
  • Average time to close issues: 8 days
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 10
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 206
  • Bot issues: 1
  • Bot pull requests: 211
Top Authors
Issue Authors
  • mintemat000-shorse (1)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (192)
  • mraible (27)
  • github-actions[bot] (19)
  • jsteenb2 (15)
  • prvn (6)
  • rlucha-crowdstrike (2)
  • johns31459 (2)
  • cs-ade-adesokan (1)
  • rhinchey-cs (1)
  • dbutterfield77 (1)
  • javier-carrasco-crowdstrike (1)
  • danbfield (1)
Top Labels
Issue Labels
dependencies (1) javascript (1)
Pull Request Labels
dependencies (211) javascript (166) go (26)

Dependencies

functions/Func_Jobs/go.mod go
  • github.com/CrowdStrike/foundry-fn-go v0.6.1
  • github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
  • github.com/blang/semver/v4 v4.0.0
  • github.com/crowdstrike/gofalcon v0.5.0-rc1.0.20231018211136-aa9a14d480c8
  • github.com/go-logr/logr v1.2.3
  • github.com/go-logr/stdr v1.2.2
  • github.com/go-openapi/analysis v0.21.4
  • github.com/go-openapi/errors v0.20.4
  • github.com/go-openapi/jsonpointer v0.19.6
  • github.com/go-openapi/jsonreference v0.20.2
  • github.com/go-openapi/loads v0.21.2
  • github.com/go-openapi/runtime v0.26.0
  • github.com/go-openapi/spec v0.20.9
  • github.com/go-openapi/strfmt v0.21.7
  • github.com/go-openapi/swag v0.22.4
  • github.com/go-openapi/validate v0.22.1
  • github.com/golang/protobuf v1.5.3
  • 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/robfig/cron/v3 v3.0.1
  • github.com/sirupsen/logrus v1.9.3
  • github.com/spaolacci/murmur3 v1.1.0
  • go.mongodb.org/mongo-driver v1.11.3
  • go.opentelemetry.io/otel v1.14.0
  • go.opentelemetry.io/otel/trace v1.14.0
  • golang.org/x/net v0.16.0
  • golang.org/x/oauth2 v0.13.0
  • golang.org/x/sys v0.13.0
  • google.golang.org/appengine v1.6.7
  • google.golang.org/protobuf v1.31.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
functions/job_history/go.mod go
  • github.com/CrowdStrike/foundry-fn-go v0.6.1
  • github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
  • github.com/blang/semver/v4 v4.0.0
  • github.com/crowdstrike/gofalcon v0.5.0-rc1.0.20231018211136-aa9a14d480c8
  • github.com/eapache/go-resiliency v1.4.0
  • github.com/go-logr/logr v1.2.4
  • github.com/go-logr/stdr v1.2.2
  • github.com/go-openapi/analysis v0.21.4
  • github.com/go-openapi/errors v0.20.4
  • github.com/go-openapi/jsonpointer v0.20.0
  • github.com/go-openapi/jsonreference v0.20.2
  • github.com/go-openapi/loads v0.21.2
  • github.com/go-openapi/runtime v0.26.0
  • github.com/go-openapi/spec v0.20.9
  • github.com/go-openapi/strfmt v0.21.7
  • github.com/go-openapi/swag v0.22.4
  • github.com/go-openapi/validate v0.22.1
  • github.com/golang/protobuf v1.5.3
  • 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/robfig/cron/v3 v3.0.1
  • github.com/rogpeppe/go-internal v1.11.0
  • github.com/sirupsen/logrus v1.9.3
  • github.com/spaolacci/murmur3 v1.1.0
  • go.mongodb.org/mongo-driver v1.12.1
  • go.opentelemetry.io/otel v1.19.0
  • go.opentelemetry.io/otel/metric v1.19.0
  • go.opentelemetry.io/otel/trace v1.19.0
  • golang.org/x/oauth2 v0.13.0
  • golang.org/x/sys v0.13.0
  • google.golang.org/appengine v1.6.8
  • google.golang.org/protobuf v1.31.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
ui/pages/rapid-response-react/package.json npm
  • @testing-library/jest-dom ^6.1.3 development
  • @testing-library/react ^14.0.0 development
  • @types/react ^18.2.14 development
  • @types/react-dom ^18.2.6 development
  • @typescript-eslint/eslint-plugin ^5.61.0 development
  • @typescript-eslint/parser ^5.61.0 development
  • @vitejs/plugin-react ^4.0.1 development
  • autoprefixer ^10.4.14 development
  • eslint ^8.44.0 development
  • eslint-plugin-no-relative-import-paths ^1.5.2 development
  • eslint-plugin-prettier ^5.0.0 development
  • eslint-plugin-react ^7.33.1 development
  • eslint-plugin-react-hooks ^4.6.0 development
  • eslint-plugin-react-refresh ^0.4.1 development
  • jsdom ^22.1.0 development
  • postcss ^8.4.26 development
  • prettier 3.0.0 development
  • rollup-plugin-visualizer ^5.9.2 development
  • tailwindcss ^3.3.3 development
  • typescript ^5.0.2 development
  • vite ^4.4.0 development
  • vitest ^0.34.5 development
  • @crowdstrike/foundry-js 0.9.0
  • @shoelace-style/shoelace 2.5.2
  • framer-motion ^10.13.1
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-hook-form ^7.45.2
  • react-hot-toast ^2.4.1
  • react-router-dom 6.14.1
  • react-select ^5.7.4
  • temporal-polyfill ^0.1.1
  • zod ^3.21.4
ui/pages/rapid-response-react/yarn.lock npm
  • 587 dependencies