-
Notifications
You must be signed in to change notification settings - Fork 2k
feat(sdk): add Vercel provider with 30 security checks #10189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
alejandrobailo
wants to merge
24
commits into
master
Choose a base branch
from
feat/vercel-sdk
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+9,071
−3
Open
Changes from 3 commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
ba54da2
chore: init feature branch for Vercel provider
alejandrobailo 5c2b51d
feat(sdk): add Vercel provider with 30 security checks
alejandrobailo 842dfc1
fix(vercel): remove __init__.py from test directories
alejandrobailo 49841dd
refactor(sdk): rename environment checks to project_environment
alejandrobailo 67fb058
fix(sdk): normalize check metadata format
alejandrobailo 786d00d
feat(sdk): make stable branches configurable via audit_config
alejandrobailo f363e74
chore(sdk): remove Vercel compliance files
alejandrobailo 1a1317c
Merge branch 'master' into feat/vercel-sdk
danibarranqueroo a97a8b6
chore: vercel provider revision
danibarranqueroo 109ee80
chore: update metadata
danibarranqueroo a25c5d4
chore: add missing check tests
danibarranqueroo e583cfd
feat(vercel): add example mutelist
danibarranqueroo 6cfa67d
chore: add vercel to outputs and to html
danibarranqueroo 0186e9f
chore: remove cli authentication flags
danibarranqueroo 29cc9ea
fix: remove init from tests files
danibarranqueroo fb62b81
fix: parser tests
danibarranqueroo cc7fa7d
chore: update asserts in every unit test
danibarranqueroo 274cd07
chore: update services format
danibarranqueroo 273c8e4
Merge branch 'master' into feat/vercel-sdk
danibarranqueroo f8beded
chore: fix black
danibarranqueroo f9ccc89
chore: update metadata
danibarranqueroo 2d5e948
feat: scan all teams when no team is specified
danibarranqueroo ea5ba82
fix tests
danibarranqueroo db18e47
feat: add docs and modify gh workflows
danibarranqueroo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| { | ||
| "Framework": "CIS-Controls-v8", | ||
| "Name": "CIS Controls v8 - Vercel", | ||
| "Version": "8", | ||
| "Provider": "vercel", | ||
| "Description": "CIS Controls v8 mapping for Vercel provider checks. Maps Vercel security checks to CIS Controls for establishing a secure baseline configuration.", | ||
| "Requirements": [ | ||
| { | ||
| "Id": "3.3", | ||
| "Name": "3.3 Configure Data Access Control Lists", | ||
| "Description": "Configure data access control lists based on a user's need to know. Apply data access control lists, also known as access permissions, to local and remote file systems, databases, and applications.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "3.3", | ||
| "Section": "3 - Data Protection", | ||
| "Service": "project", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "environment_sensitive_vars_encrypted", | ||
| "environment_no_secrets_in_plain_type", | ||
| "environment_production_vars_not_in_preview", | ||
| "environment_no_overly_broad_target" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "4.1", | ||
| "Name": "4.1 Establish and Maintain a Secure Configuration Process", | ||
| "Description": "Establish and maintain a secure configuration process for enterprise assets (end-user devices, including portable and mobile, non-computing/IoT devices, and servers) and software (operating systems and applications).", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "4.1", | ||
| "Section": "4 - Secure Configuration of Enterprise Assets and Software", | ||
| "Service": "project", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "project_auto_expose_system_env_disabled", | ||
| "project_directory_listing_disabled", | ||
| "project_skew_protection_enabled", | ||
| "project_git_fork_protection_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "5.4", | ||
| "Name": "5.4 Restrict Administrator Privileges to Dedicated Administrator Accounts", | ||
| "Description": "Restrict administrator privileges to dedicated administrator accounts on enterprise assets. Conduct general computing activities, such as internet browsing, email, and productivity suite use, from the user's primary, non-privileged account.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "5.4", | ||
| "Section": "5 - Account Management", | ||
| "Service": "team", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "team_member_role_least_privilege", | ||
| "team_member_no_stale_access", | ||
| "team_no_stale_invitations" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "6.3", | ||
| "Name": "6.3 Require MFA for Externally-Exposed Applications", | ||
| "Description": "Require all externally-exposed enterprise or third-party applications to enforce MFA, where supported. Enforcing MFA through a directory service or SSO provider is a satisfactory implementation of this Safeguard.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "6.3", | ||
| "Section": "6 - Access Control Management", | ||
| "Service": "team", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "team_saml_sso_enabled", | ||
| "team_saml_sso_enforced", | ||
| "team_directory_sync_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "6.5", | ||
| "Name": "6.5 Require MFA for Administrative Access", | ||
| "Description": "Require MFA for all administrative access accounts, where supported, on all enterprise assets, whether managed on-site or through a third-party provider.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "6.5", | ||
| "Section": "6 - Access Control Management", | ||
| "Service": "project", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "project_deployment_protection_enabled", | ||
| "project_production_deployment_protection_enabled", | ||
| "deployment_preview_not_publicly_accessible", | ||
| "project_password_protection_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "13.6", | ||
| "Name": "13.6 Deploy a WAF", | ||
| "Description": "Deploy a WAF in front of all web applications and configure to block common web application attacks.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "13.6", | ||
| "Section": "13 - Network Monitoring and Defense", | ||
| "Service": "security", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "security_waf_enabled", | ||
| "security_managed_rulesets_enabled", | ||
| "security_rate_limiting_configured", | ||
| "security_ip_blocking_rules_configured", | ||
| "security_custom_rules_configured" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "9.4", | ||
| "Name": "9.4 Protect Recovery Data with Strong Encryption", | ||
| "Description": "Ensure that recovery data is stored using strong encryption.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "9.4", | ||
| "Section": "9 - Data Recovery", | ||
| "Service": "domain", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "domain_ssl_certificate_valid", | ||
| "domain_verified", | ||
| "domain_dns_properly_configured", | ||
| "domain_no_wildcard_dns_exposure" | ||
| ] | ||
| } | ||
| ] | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| { | ||
| "Framework": "ISO27001", | ||
| "Name": "ISO/IEC 27001:2013 - Vercel", | ||
| "Version": "2013", | ||
| "Provider": "vercel", | ||
| "Description": "ISO/IEC 27001:2013 mapping for Vercel provider checks. Vercel holds ISO 27001:2013 certification; these mappings assess the customer-side of Vercel's shared responsibility model.", | ||
| "Requirements": [ | ||
| { | ||
| "Id": "A.9.1", | ||
| "Name": "A.9.1 Business Requirements of Access Control", | ||
| "Description": "To limit access to information and information processing facilities.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.9.1", | ||
| "Section": "A.9 Access Control", | ||
| "Service": "team", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "team_saml_sso_enabled", | ||
| "team_saml_sso_enforced", | ||
| "project_deployment_protection_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "A.9.2", | ||
| "Name": "A.9.2 User Access Management", | ||
| "Description": "To ensure authorized user access and to prevent unauthorized access to systems and services.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.9.2", | ||
| "Section": "A.9 Access Control", | ||
| "Service": "team", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "team_member_role_least_privilege", | ||
| "team_member_no_stale_access", | ||
| "team_no_stale_invitations", | ||
| "team_directory_sync_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "A.9.4", | ||
| "Name": "A.9.4 System and Application Access Control", | ||
| "Description": "To prevent unauthorized access to systems and applications.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.9.4", | ||
| "Section": "A.9 Access Control", | ||
| "Service": "authentication", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "authentication_token_not_expired", | ||
| "authentication_no_stale_tokens", | ||
| "project_password_protection_enabled" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "A.10.1", | ||
| "Name": "A.10.1 Cryptographic Controls", | ||
| "Description": "To ensure proper and effective use of cryptography to protect the confidentiality, authenticity and/or integrity of information.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.10.1", | ||
| "Section": "A.10 Cryptography", | ||
| "Service": "project", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "environment_sensitive_vars_encrypted", | ||
| "environment_no_secrets_in_plain_type", | ||
| "domain_ssl_certificate_valid" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "A.13.1", | ||
| "Name": "A.13.1 Network Security Management", | ||
| "Description": "To ensure the protection of information in networks and its supporting information processing facilities.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.13.1", | ||
| "Section": "A.13 Communications Security", | ||
| "Service": "security", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "security_waf_enabled", | ||
| "security_managed_rulesets_enabled", | ||
| "security_rate_limiting_configured", | ||
| "security_ip_blocking_rules_configured", | ||
| "domain_dns_properly_configured" | ||
| ] | ||
| }, | ||
| { | ||
| "Id": "A.14.2", | ||
| "Name": "A.14.2 Security in Development and Support Processes", | ||
| "Description": "To ensure that information security is designed and implemented within the development lifecycle of information systems.", | ||
| "Attributes": [ | ||
| { | ||
| "ItemId": "A.14.2", | ||
| "Section": "A.14 System Acquisition, Development and Maintenance", | ||
| "Service": "project", | ||
| "Type": "automated" | ||
| } | ||
| ], | ||
| "Checks": [ | ||
| "project_git_fork_protection_enabled", | ||
| "project_auto_expose_system_env_disabled", | ||
| "environment_production_vars_not_in_preview", | ||
| "deployment_production_uses_stable_target" | ||
| ] | ||
| } | ||
| ] | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.