Creative Commons Zero v1.0 Universal

项目介绍

cisagov/ScubaGear 是一个托管在 GitHub 上的开源项目,主要使用 PowerShell 编写,采用 Creative Commons Zero v1.0 Universal 许可证,目前获得 2.8k 个 Star、408 次 Fork。

仓库全名
cisagov/ScubaGear
开源许可证
Creative Commons Zero v1.0 Universal
Star 数
2.8k
Fork 数
408
未关闭 Issue
263

README 摘要

ScubaGear is an assessment tool that verifies that a Microsoft 365 (M365) tenant’s configuration conforms to the policies described in the Secure Cloud Business Applications (SCuBA) Secure Configuration Baseline documents. [!NOTE] This documentation can be read using GitHub Pages. Target Audience ScubaGear is for M365 administrators who want to assess their tenant environments against CISA Secure Configuration…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ScubaGear 用什么语言开发?

主要使用 PowerShell 编写,采用 Creative Commons Zero v1.0 Universal 许可证,目前有 2.8k 个 Star。

ScubaGear 可以免费商用吗?

仓库标注的许可证为 Creative Commons Zero v1.0 Universal,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 ScubaGear 的源码?

可以直接克隆仓库:git clone https://github.com/cisagov/ScubaGear.git,默认分支为 main;安装与运行步骤见仓库 README。

ScubaGear 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 263 个未关闭 Issue;Star 数为 2.8k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Automation to assess the state of your M365 tenant against CISA's baselines

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

CSS
HTML
JavaScript
Open Policy Agent
PowerShell

Release

README

ScubaGear Logo

GitHub Release PSGallery Release CI Pipeline Functional Tests GitHub License GitHub Downloads PSGallery Downloads GitHub Issues

ScubaGear is an assessment tool that verifies that a Microsoft 365 (M365) tenant’s configuration conforms to the policies described in the Secure Cloud Business Applications (SCuBA) Secure Configuration Baseline documents.

Note 注意

This documentation can be read using GitHub Pages.

Target Audience

ScubaGear is for M365 administrators who want to assess their tenant environments against CISA Secure Configuration Baselines.

Overview

ScubaGear uses a three-step process:

  • Step One - PowerShell code queries M365 APIs for various configuration settings.
  • Step Two - It then calls Open Policy Agent (OPA) to compare these settings against Rego security policies written per the baseline documents.
  • Step Three - Finally, it reports the results of the comparison as HTML, JSON, and CSV.

ScubaGear Assessment Process Diagram

Key Features

Baseline Security Coverage

SCuBA controls have been mapped to both NIST SP 800-53 and the MITRE ATT&CK framework.

Scuba Configuration UI

SCuBA now includes a graphical user interface that makes it easier than ever to create and manage your YAML configuration files. This intuitive tool helps reduce the complexity of manual editing and streamlines the configuration process for your organization. For more information review the Configuration UI documentation.

UI Key Features:
  • Launch with Start-ScubaConfigApp
  • Step-by-step setup wizard covering all configuration options
  • Real-time validation with live YAML preview
  • Microsoft Graph integration for user and group selection
  • Seamless import/export of existing configuration files

Ideal for users who prefer a visual interface over command-line tools.

ScubaGear Output

Getting Started

Before launching ScubaGear, it’s important to ensure your environment is properly configured. This includes having the necessary dependencies and permissions in place.

Please review the prerequisites section to verify that your system meets all requirements. This will help avoid errors during execution and ensure a smooth experience when using ScubaGear.

Note 注意

After installing ScubaGear in your environment, we recommend using the built-in update functions and features when you need to update to the latest version. See the Update Guide for more information.

Quick Start Guide

ScubaGear can be run multiple times to properly evaluate baseline settings.

  1. First Run (No Configuration File): Start ScubaGear without a configuration file. This initial run generates a baseline template of your environment’s current settings. It does not make changes but helps you understand the default posture.

  2. Subsequent Runs (With Configuration File): After reviewing and editing the generated configuration file, run ScubaGear again with the configuration file as input. This allows ScubaGear to compare your intended settings against the actual environment and elevate discrepancies accordingly.

[!IMPORTANT] ScubaGear has specific prerequisites and relies on defined configuration values to properly evaluate your Microsoft 365 tenant. After your initial assessment run, review the results thoroughly. Address any identified gaps by updating your tenant configuration or documenting risk acceptances in a YAML configuration file using exclusions, annotations, or omissions. Refer to the sections below for detailed guidance.

This iterative approach ensures ScubaGear is aligned with your environment and that all policy evaluations are based on your customized baseline.

1. Install ScubaGear

To install ScubaGear from PSGallery, open a PowerShell 5 terminal on a Windows computer and install the module:

# Install ScubaGear
Install-Module -Name ScubaGear

2. Install Dependencies

# Install the minimum required dependencies
Install-ScubaDependencies

3. Verify Installation

# Check the version
Invoke-SCuBA -Version

4. Run Your First Assessment

Important 重要

If you are running v2.0.0 with interactive login against a non-commercial tenant such as gcc or gcchigh, include the -M365Environment parameter. In a future release ScubaGear will auto-detect the M365 environment and this won’t be necessary.

# Assess all products (basic command)
Invoke-SCuBA -ProductNames *
Tip 提示

To confirm which account and tenant a run used, run Get-ScubaGearContext. ScubaGear does not print them to the console. See Confirming Which Account and Tenant Were Used.

5. Build YAML configuration file

ScubaGear uses a YAML configuration file to define how your environment should be evaluated. This file serves several important purposes:

  • Customization – Specify which products, baselines, and rules apply to your environment.
  • Configuration Mapping – Align ScubaGear’s policies with your tenant’s current settings.
  • Risk Acceptance – Document intentional deviations from baselines using exclusions, annotations, or omissions.
  • Traceability – Maintain a clear record of accepted risks and policy decisions for audits or internal reviews.
  • Repeatability – Run consistent assessments over time or across environments using the same configuration.
Important 重要

Without a properly defined YAML file, ScubaGear will assume a default configuration that may not reflect your organization’s actual policies or risk posture. It is required if the usage is for CISA’s Binding Operational Directive (BOD) 25-01

Reuse provided sample files

Tip 提示

full_config.yaml is included to help you get started. This file should be customized to reflect your tenant’s unique configuration before using it with the ScubaGear module.

6. Run ScubaGear with a configuration File

When running Invoke-SCuBA for BOD 25-01 submissions:

# Run with a configuration file
Invoke-SCuBA -ConfigFilePath "path/to/your/config.yaml" -Organization 'example.onmicrosoft.com'

For all other instances:

# Run with a configuration file (no-BOD)
Invoke-SCuBA -ConfigFilePath "path/to/your/config.yaml" -SilenceBODWarnings

7. Update ScubaGear

The following will update ScubaGear.

# The following will update ScubaGear to the latest version
Update-ScubaGear

The following will baseline all ScubaGear dependencies, please review the Update Guide in detail before running.

# The follwing will remove and re-install all ScubaGear dependencies
Reset-ScubaGearDependencies

Table of Contents

Getting Started

Installation
Prerequisites

Configuration & Usage

Running Assessments

Troubleshooting & Support

Automation

  • ScubaConnect - ScubaConnect is cloud-native infrastructure, developed by CISA, that automates the execution of assessment tools ScubaGear and ScubaGoggles.

Additional Resources

Project License

Unless otherwise noted, this project is distributed under the Creative Commons Zero license. With developer approval, contributions may be submitted with an alternate compatible license. If accepted, those contributions will be listed herein with the appropriate license.

评论

暂无评论