* darker note color for increase contrast
* use same note color from roys branch
* implement 1.9
* Add BOD badge
* Remove BOD badge
---------
Co-authored-by: Hilton <Alden>
* allow imap exceptions
* just import package to make the linter happy
* more changes for linter
* add log to class
* make linter happy try 3
* try 4
* improve non-existent ou/group warnings
* fix long line
* Commit docs and spelling fixes
* Apply logging suggestions
Co-authored-by: Roy Lane <rlane@mitre.org>
* fixes for pylint
* fix for pylint try 2
* try 3
* check is imapexceptions is none
---------
Co-authored-by: Hilton <Alden>
Co-authored-by: Roy Lane <rlane@mitre.org>
* Add assured controls as a baseline option
* implement 1.2
* implement 1.1
* Check for groups for 1.1.
* implement 2.1
* remove unused var
* Add unit tests
* add note to assured controls report
* fix file capitalization
* fix smoke test
* Use helper functions for unit tests
Co-authored-by: Roy Lane <rlane@mitre.org>
---------
Co-authored-by: Roy Lane <rlane@mitre.org>
* update robust_dns functions
* Add tables to Gmail report describing the DNS queries made
* Add JS to truncate the DNS tables if needed
* Adjust smoke test to handle DNS tables
* Draft the gemini baseline
* Implement code for Gemini
* Check service status and add unit tests
* Remove print statement
* Minor wording adjustments
* Increment expected row count in the summary table in smoke test
* Reference terms in rationale
* Remove 1.2
* Add Gemini mappings to mapping csv
* Add unit tests for changes applied to groups
* Remove print function
* missing comma
---------
Co-authored-by: Andrew Huynh <trung-hieu.huynh@ecstech.com>
* Add annotation capability
* Add AnnotatedFailedPolicies and warn if no justification
* Remove else to make the linter happy
* Add warnings
* Minor tweaks for linter
* Accept either orgname or OrgName
* Prevent the extra csv fields from being added to the json
* Change scubagear to scubagoggles
* Fix date error handling
* Update drive prereqs
* Remove sharing mode prereq from 1.6
Co-authored-by: Roy Lane <rlane@mitre.org>
---------
Co-authored-by: Roy Lane <rlane@mitre.org>
* Update error handling logic for policy api and list policy prereqs for common controls
* Ignore TODO warning
* Update typo in comment
Co-authored-by: Roy Lane <rlane@mitre.org>
---------
Co-authored-by: Roy Lane <rlane@mitre.org>
* Incorporated rules counts into Common Controls
* Add basic alerts table
* Add alerts table
* Update rego unit tests
* Change SHALL to Shall
* Sample report
* Correct minor typo in comment
* Tweak smoke test to allow rules table
* Change in to ==
* Update number of rows in comment
Co-authored-by: Kim Winters (MITRE) <kwinters@mitre.org>
* Remove unnecessary reference to rules
* Save the results table to the raw JSON output
* Remove rules reference from scuba_argument_parser.py
* Correct spelling
* Change requirements to requirement
---------
Co-authored-by: Kim Winters (MITRE) <kwinters@mitre.org>
* Update instructions in markdown
* Minor documentation tweaks
* Rename paramter for consistency
* Refine default config instructions
* Update README.md with link to config default values page
* Update OPA.md correct link typo
* Change ~/.scubagoggles to ~/.scubagoggles/userdefaults.yaml
* Change OPA default location to ~/.scubagoggles
* Remove prompt for opa path
* correct linter errors
* Remove prompts for credentials
* Remove legacy function
* Change cliargs for consistency
* linter corrections
* minor comment tweak
* Update OAuth.md clarify default credentials location
* Update ServiceAccount.md to clarify default credentials location
* Update OPA.md correct typo
* Update OPA.md Correct argument name
* add debug to setup action and use nocheck parameter
* Setup create output folder if not exists
* Create creds file before installing scubagoggles in workflow
* Move all checks for file existance to user_setup.py for consistency and to respect the nocheck parameter
* Refine setup code
* Create defaults file if opa downloaded to default location
* Updated Development Guide with installation instructions
* Added Cloud Identity API to OAuth instructions
* Changed capitalization of Development Guide and Branching Strucure md files
* Fixed link redirects
* Fixed link redirects
* Fixed image redirect in BRANCHINGSTRUCTURE.md
* Fixed image redirect in DevelopmentGuide.md
* Format Development Guide
* Format Development Guide
* minor bug fixes
* Remove unused import
* Removed hardcoded ScubaGoggles version number
* Added note that the setup utiltiy only needs to run once
* Added instruction to rename opa executable
* Added instruction to rename opa executable
* Merge two notes
* Correct 'exist()' to 'exists()'
* Grammatical fixes
Co-authored-by: Roy Lane <rlane@mitre.org>
* Correct typo "getupa"
Co-authored-by: Roy Lane <rlane@mitre.org>
* config: add _transition_config_file() for moving user config file from 0.4 location to current location
* Add print after setup
* Remove manual rename opa step
* Make credentials required unless saved via setup util
* Make note for developers more prominent
* Revise develop install
* Add missing steps to enable APIs
* Remove unused f string
* Restore the validate function
* Add trailing newline for linter
* Add back venv activation, accidentally removed in rebase
* Change input to env
* Change hyphen to underscore
* Remove -v
* Update DownloadAndInstall.md
* Add more helpful message if creds aren't configured after setup
* Remove unused f string
---------
Co-authored-by: Angela Tuo <atuo@mitre.org>
Co-authored-by: Roy Lane <rlane@mitre.org>
* Update sample report
* Remove sample config for smoke test
* Add example DKIM record
* Add example DKIM record to TestResults.json
* Add example OU IDs
* Update Config.md with section on omitting policies
* Create omit_policies.yaml
* Update Config.md with example config specific to scubagoggles
* Update Config.md minor grammatical changes
* Update Config.md correct link
* Update Config.md correct minor typo
* Add config file support for omitting policies
* Correct some linter errors
* Correct more linter errors
* Move pylint disable comment
* Update Config.md, clarify usage of single config file
* Update omit_policies.yaml, comment about usage of anchors
* Warn for unexpected control ids
* must appease the linter
* Remove commented out code
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Break out omitpolicy validation into separate function.
* Add final newline to file for the linter
* Add special handling for rules
* Remove duplicate word
Co-authored-by: mitchelbaker-cisa <149098823+mitchelbaker-cisa@users.noreply.github.com>
* Create warn wrapper function to clean tqdm output
---------
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
Co-authored-by: mitchelbaker-cisa <149098823+mitchelbaker-cisa@users.noreply.github.com>
* Update Troubleshooting.md with upgrading instructions
* Update DownloadAndInstall.md with link to troubleshooting
* Update README.md
* Update README.md with new upgrading section
* Rework documentation for new upgrading section
* Add pyyaml to requirements
* Add basic config file support
* Update Parameters.md with config file parameter
* Expand help string for config parameter
* Create Config.md file
* Update README.md with link to config file docs
* Document config file support
* Remove note about config not supporting aliases
* Correct link syntax
* minor grammatical tweak
* Add navigation section
* Reformat notes to make clear not part of any one example
* Pylint corrections
* Refactor ScubaConfig glass into ScubaArgumentParser
* linter tweaks
* Correct return type hint
* Clarify list parameters
* Pin pylint version
* Invert no such event rule for 7.6
* Invert no such event rule for gmail 5.5
* Change to default per regal rule
* Add new test cases to cover partial no such event edge case
* Remove original GWS.GMAIL.3.1v0.1
* Clarify that SPF policy should fail for non-approved senders
* Modify rego to check for -all for SPF
* Clarify hard vs soft fail.
* Enhance SPF unit test cases
* Implement warning for missing output
* Add missing reo spf check
* Add rego check for 10.2
* Add rego check for 15.2
* Add rego check for 16.2
* Add missing rego checks for group 18
* Broke up the run_reporter function to satisfy linter
* Initial commit of error handling code
* Merge latest changes from main
* Fix bad merge
* Simplify Tenant Metadata (#152)
* Simplify tenant metadata section and correct groups bug
* Remove scope that is no longer needed
* Remove unneeded OAUTH scope from readme
* Merge latest changes from #158, Ensure Each Control Is Included in the
Reports
* Fix bad merge
* Correct gmail bug, forgot to preface the dns function calls with self
* Refactor long lines
* Broke out error handling code into separate functions
* correct error with f string
* Add special case prereqs to rego files
* Modify groups prereqs
* Correct typo in reports API reference
* If prereqs not defined, assume dependence on reports api
* Fix error in provider from merge
* Add missing tests for gws 18
* Fix other regressions caused by merge
* Make the linter happy
* Refactor long lines
* Fix groups API reference links
* Refactor services object to a state variable
* Make customer_id and dnsclient state variables
* Ensure the domains() API is called only once
* Changes to satisfy the linter
* Convert API reference to enums
* Correct URL bugs
* Add documentation
* Rename api_reference to types
* Remove the hard-dependency on IPv4 for the DoH call
* Adjust the DoH logic so that DoH calls are not made when DoH is blocked
* Adjust DNS query logic so that a retry over DoH is not triggered by NXDOMAIN.
* Refactor DNS code into its own class
* Correct a few stray bugs in the DoH request
* Refactor long lines; refactor GetTopLevelOU function
* Unify comment style
* Remove 'no domain' helper rules
* Change ServiceName to SettingName
* Refactor test cases
* Change lists to sets where possible
* Chat change to for in syntax
* Chat change to rule contains syntax
* Refactor GetTopLevelOU function
* Change lists to sets where possible chat
* Remove trailing whitespace
* Change ServiceName to SettingName
* Standardize comment syntax chat
* Refactor chat unit tests
* Change to for in syntax
* Change to rule contains syntax classroom
* Change ServiceName to SettingName
* Classroom change lists to sets where possible
* Classroom standardize comments
* Refactor GetTopLevelOU function Classroom
* Refactor Classroom unit tests
* Remove stray blank lines classroom
* Refactor common functions Drive
* Drive change to some in syntax
* Remove trailing whitespace
* Remove more trailing whitespace
* Change to rule contains syntax Drive
* Refactor long lines Drive
* Drive standardize comments
* Refactor Drive unit tests
* Refactor drive 2 long lines
* Refactor groups unit tests
* Groups standardize comments
* Rego refactor meet
* Refactor 'or' Drive
* Refactor sites rego
* Refactor utils rego
* Move OUsWithEvents rule to the utils file
* Calendar fill in topLevelOU in test cases with multiple OU as it cannot be blank in those cases
* Chat fill in empty topLevelOU in test cases where needed
* Classroom fill in empty topLevelOU in test cases where needed
* Drive unit tests fill in topLevelOU where required
* Gmail test cases add topLevelOU when needed
* groups test cases add topLevelOU when needed
* Meet test cases add topLevelOU when needed
* Move TopLevelOU rule to utils file
* Remove print statements
* Move GetLastEvent function to utils file
* Moved all shared rego code to the utils file
* Import utils package instead of individual rules
* push unsaved change
* Remove duplicates from list
* Change SettingChangeEvents back to filter by log name for efficiency
* Refactor groups 7
* Ensure test names are unique
* Add regal config file
* Add github workflow for regal
* Add missing ifs
* Bump the version of the regal exe
* Trim trailing whitespace rego/Utils.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Trim trailing whitespace rego/Utils.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Correct the ID used in comment rego/Chat.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Move TopLevelOU comments for consistency
* Remove trailing whitespace rego/Utils.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Add new line for readability and consistency
* Sites change lists to sets
* Remove leading whitespace rego/Groups.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Align whitespace rego/Classroom.rego
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>
* Groups align whitespace
* Refactor 'ignore ous without events' comment
* Remove trailing whitespace from Rego unit tests
---------
Co-authored-by: David Bui <105074908+buidav@users.noreply.github.com>