Conversation
ASH Security Scan Report
Scan Metadata
SummaryScanner ResultsThe table below shows findings by scanner, with status based on severity thresholds and dependencies:
Report generated by Automated Security Helper (ASH) at 2025-08-01T15:52:01+00:00 |
There was a problem hiding this comment.
AWS Labs - Automated Security Helper found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
src/automated_security_helper/reporters/ash_default/report_content_emitter.py
Fixed
Show fixed
Hide fixed
…ependency checking via the validate method on plugins
…ependency checking via the validate method on plugins
…asses still with coupling
v3/feat/cleanup
…or better clarity on intent
…for better clarity on intent
feat(aggregated_result): Renamed ASHARPModel to AshAggregatedResult for better clarity on intent
… column of the metrics_table
… column of the metrics_table
v3/fix/table results
fix: scan error result
awsmadi
previously approved these changes
Jul 31, 2025
Contributor
awsmadi
left a comment
There was a problem hiding this comment.
LGTM! Can't wait for this new release!
Contributor
|
It looks good to me, excited to see this get merged into main! |
awsntheule
previously approved these changes
Jul 31, 2025
Contributor
|
I have cut Issue #170 to investigate Grype soft fails. Thank you @rafaelpereyra for identifying this! This will not block merging at this time. |
…ulnerabilityFinding objects
V3/fix/ocsf doc structure
3e3eb6c
…flow
Updated GitHub Actions workflow to use proper bash variable expansion syntax by changing $VARIABLE to ${VARIABLE} format for:
- ASH_UVX_SOURCE variable references in uvx commands
- ASH_OUTPUT_DIR variable references in file paths and commands
- Add environment variables for ASH_MODE, ASH_ARGS, FAIL_ON_FINDINGS, and VERBOSE - Replace direct input substitution with environment variable references - Use ASH_OUTPUT_DIR environment variable for output directory - Improve shell safety by avoiding direct parameter expansion in command line
Convert the description field in the ASH Security Scan workflow from YAML description block to comment format to resolve workflow syntax issues.
Added explicit permissions configuration to the ASH Security Scan GitHub workflow, specifying contents: read, pull-requests: write, and security-events: write permissions.
- Convert single quotes to double quotes for consistency across all string values - Update expiration dates, rule IDs, paths, and reasons to use double quotes - Remove expired GitHub Actions security suppression rule - Maintain consistent formatting for better readability and YAML standards compliance
Added checks: write permission to the GitHub workflow permissions in .github/workflows/run-ash-security-scan.yml.
- Refactored fail-on-findings parameter handling by introducing FAIL_ON_FINDINGS_PARAM environment variable - Moved conditional logic for --fail-on-findings/--no-fail-on-findings flags from inline command to environment variable - Simplified the uvx command line by using the new environment variable instead of inline conditional expression
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ASH v3 Release
This PR includes the work comprising the next major version release of the Automated Security Helper.
aggregated_results.{txt,json}Structuregit-secretstodetect-secretsFeature Parity - Various Item Tracker
aggregated_results.txtexists in progressash_aggregated_results.jsonresults to generate new report formats withinspectoutputs to identify mapping gaps (WIP)ash_defaultsbuilt-in plugin modulesDrivers
The core drivers for the changes in this release are:
Breaking Changes
The following changes in this release could impact how you currently use ASH.
aggregated_results.{txt,json}StructureOne of the primary goals with this release has been to improve how ASH collects, processes, formats the outputs it produces across the suite of scanners ASH employs. The output format up until this release has been raw stdout/stderr redirection from the scanners themselves. This makes scan result processing manual, often including a large amount of "noise" due to capturing all of the scanner output.
This release changes the output format for the aggregated results to a standardized data model named the "ASHARP" model (ASH Aggregated Results Parser). This model is emitted as a JSON file to the output directory named
aggregated_results.json.*If you are not currently parsing the
aggregated_results.{txt,json}output of ASH, you are likely not going to be impacted by this change)Migration from
git-secretstodetect-secretsdetect-secretscurrently provides a full Python interface and can have the version pinned within our pyproject.toml.detect-secretsprovides the ability to baseline a directory or file so acknowledged findings do not continue to raise false positives.git-secretsfound far less findings thandetect-secretshas, with a sample directory showing 2 secrets detected bygit-secrets(AWS key pair) vs 157 bydetect-secrets(including the AWS key pair thatgit-secretsfound)git-secretsonly matching AWS credentials without custom rule/pattern authoringdetect-secretssupports a large variety of predefined rules that greatly increase overall secret-type detection support:New Features / Enhancements
SARIF as primary data structure for SAST reports
The Static Analysis Results Interchange Format (SARIF) defines a standard format for the output of static analysis tools. ASH uses the SARIF 2.1.0 schema specification as an intermediary data format for SAST scanner results to emit reports from.
Along with being open source itself, SARIF has been chosen for ASH's SAST data format due to its broad ecosystem and existing integration support with common enterprise tooling.
Links:
CycloneDX as primary data structure for SBOM reports
Similar to SARIF, OWASP CycloneDX is a full-stack Bill of Materials (BOM) standard that provides advanced supply chain capabilities for cyber risk reduction.
Links:
JSON output from ASHARP model for aggregated results
The ASHARP model is a lightweight metadata wrapper that allows collection of all relevant data from a scan necessary to produce scan reports.
Configuration Support
ASH now has a local configuration format with a backing ASHConfig model JSON schema. The configuration can be authored in either JSON or YAML. ASH looks in the source directory of the scan for the following configuration file paths, if an explicit path was not provided by default:
ASH_CONFIGenvironment variable, if set to a valid path to an ASH configuration file.ash.yamlorash.ymlin the root of the source directory of the scan.ash.jsonin the root of the source directory of the scan.Plugin Support / Extensibility
ASH v3 introduces support for custom plugins in the form of Python modules extending the following module namespaces:
automated_security_helper.convertersConverterPluginimplementations as of this release (checked means implemented, tested and ready to release):ArchiveConverter: Identifies zip, tar, and tar.gz files in the source directory, searches for scannable files within the archive, and extracts the scannable files into the temporary working directory of the scan.JupyterNotebookConverter: Identifies Jupyter Notebook (.ipynb) files and converts them to Python usingnbconvert, outputting the convertable Python files to the temporary working directory of the scan.automated_security_helper.scannersScannerPluginimplementations as of this release (checked means implemented, tested and ready to release):BanditScanner: Runsbanditto perform SAST scanning against Python files.CdkNagScanner: Evaluates rendered CloudFormation YAML/JSON templates against CDK Nag's provided NagPacks. Defaults to including the AWS Solutions NagPack, but allows enabling any other CDK NagPack: HIPAA Security, NIST 800-53 rev 4, NIST 800-53 rev 5, and PCI DSS 3.2.1 NagPacks.CfnNagScanner: Runscfn-nagagainst rendered CloudFormation templates for IaC analysis.CheckovScanner: Runscheckovto perform IaC/SAST scanning against applicable content in the source directory.DetectSecretsScanner: Runsdetect-secretstool against scannable files in the source directory to identify secrets in code. Replacesgit-secretsin ASH's scanner stack.NpmAuditScanner: Runsnpm/yarn/pnpm auditbased on which package lock(s) are discovered in the source directory.SemgrepScanner: Runssemgrepto perform SAST scans.GrypeScanner: Runsgrypeto perform SAST scans.SyftScanner: Runssyftto perform SBOM scans.CustomScanner: Configuration-driven implementation that allows easy integration of custom scanner tools that emit SARIF and/or CycloneDX outputs.automated_security_helper.reportersReporterPluginimplementations as of this release (checked means implemented, tested and ready to release):ASFFReporter: Converts report to ASFF (Amazon Security Findings Format), saves asash.asffin the output directory.CSVReporter: Converts report to simple CSV format, saves asash.csvin the output directory.CycloneDXReporter: Converts SBOM report to CycloneDX JSON format, saves asash.cdx.jsonin the output directory.HTMLReporter: Converts report to simple HTML format, saves asash.htmlin the output directory.JSONReporter: Converts report to simple JSON format, saves asash.jsonin the output directory.JUnitXMLReporter: Converts report to JUnitXML format, saves asash.junit.xmlin the output directory.MarkdownReporter: Converts report to Markdown format, saves asash.mdin the output directory. Provides useful top-level information around the scan results, including listing the file locations with based on finding count to identify hotspots to focus on.OCSFReporter: Converts report to OCSF (Open Cybersecurity Schema Framework) format, saves asash.ocsfin the output directory.SARIFReporter: Converts Sreport to SARIF format, saves asash.sarifin the output directory.SPDXReporter: Converts SBOM report to SPDF JSON format, saves asash.spdf.jsonin the output directory.TextReporter: Converts report to a simple text-based report, saves asash.txtin the output directory.YAMLReporter: Converts report to simple YAML format, saves asash.yamlin the output directory.