Skip to content

Protect AWS account IDs exposed by taskcat logs #2

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
ShahradR opened this issue Mar 14, 2020 · 0 comments
Open

Protect AWS account IDs exposed by taskcat logs #2

ShahradR opened this issue Mar 14, 2020 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@ShahradR
Copy link
Owner

taskcat includes the account ID in its output and logs. While the account ID is not as sensitive as a password or an access key, and is even shared when configuring cross-account access, an attacker can use that information to identify and exploit vulnerable IAM resources, as outlined in this Rhino Security Labs blog post.

Exposing an account ID could make it unsuitable for use in open-source projects, where the pipeline's output, including the would be made available to anyone on the internet.

This issue is to determine a methodology for creating AWS accounts for taskcat's end-to-end tests, whereas the build pipeline would run using GitHub Actions, but while limiting the attack surface.

@ShahradR ShahradR self-assigned this Mar 14, 2020
@ShahradR ShahradR added the enhancement New feature or request label Mar 14, 2020
ShahradR added a commit to ShahradR/s3-logging that referenced this issue Jun 27, 2020
Add integration tests to the CI pipeline using the action-taskcat
GitHub Action (see ShahradR/action-taskcat).

This workflow additionally leverages the configure-aws-credentials (see
aws-actions/configure-aws-credentials) to manage AWS credentials. That
action should mask the AWS account ID as a side-effect, which should
help mitigate some security issues.

Because the action is still in development, the current version of
action-taskcat is referenced using the commit ID. This will need to
updated once the action is released and properly tagged.

Associated issues: #3, ShahradR/action-taskcat#2
ShahradR added a commit that referenced this issue Sep 27, 2020
Add a UML sequence diagram outlining the logic for the post-entrypoint
script, which is responsible for:

 - masking the AWS account ID from the taskcat_output logs
 - publishing the sanitized taskcat_output logs as artifacts

Associated issue: #2
ShahradR added a commit that referenced this issue Sep 27, 2020
Add the replace-in-file Node module (https://git.io/JUBEz) as a
dependency to this project. This module will be used to mask the AWS
account ID in the files under the taskcat_outputs directory, should the
ID have been printed in the logs.

Associated issue: #2
ShahradR added a commit that referenced this issue Sep 27, 2020
Add the glob Node module (https://git.io/v5fMF) as a dev dependency to
this project. This module is used by replace-in-file to match patterns
when searching for files and folders.

While the module is not directly used in the project, we reference glob
in unit tests to mock different paths without hitting the filesystem,
ensuring that the configuration passed to replace-in-file matches log
files in the taskcat_outputs/ directory.

Associated issue: #2
ShahradR added a commit that referenced this issue Sep 27, 2020
Implement the maskAccountId function, which is responsible for replacing
instances of the AWS account ID found in the taskcat_output logs with
"***", masking them before publishing the artifacts.

This commit also introduces unit tests covering the new function.

Associated issue: #2
ShahradR added a commit that referenced this issue Sep 27, 2020
Update the end-to-end tests in action-taskcat.test.ts to fix the code
breaking the "no-var" and "@typescript-eslint/no-inferrable-types"
ESLint rules.

Associated issue: #2
ShahradR added a commit that referenced this issue Nov 29, 2020
Baseline pre-commit hooks and Git files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant